Advertisement
Guest User

Untitled

a guest
Apr 25th, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     instanceProto.tick = function()
  2.     {
  3.         if(this.pack_data)
  4.         {
  5.             //console.log("tick");
  6.            
  7.             this.pack_renderer.stepTime(1);
  8.             this.dirty = true;
  9.             this.runtime.redraw = true;
  10.  
  11.  
  12.             if(this.first_run)
  13.             {
  14.                 /*this.first_run = false;
  15.                 // Compute Pixel Scaling
  16.                 var target_creature = this.creature_manager["target_creature"];
  17.                 target_creature["ComputeBoundaryMinMax"]();
  18.                 var mesh_size_x = target_creature["boundary_max"][0] - target_creature["boundary_min"][0];
  19.                 var mesh_size_y = target_creature["boundary_max"][1] - target_creature["boundary_min"][1];
  20.  
  21.                 this.pixel_scale_x = 1.0 / mesh_size_x;
  22.                 this.pixel_scale_y = 1.0 / mesh_size_y;*/
  23.  
  24.                 this.pixel_scale_x = 0.1;
  25.                 this.pixel_scale_y = 0.1;      
  26.             }
  27.        
  28.         }
  29.     };
  30.    
  31.  
  32.    
  33.     instanceProto.drawGL = function (glw)
  34.     {
  35.         if(!this.pack_renderer)
  36.             return;
  37.        
  38.         glw.endBatch();
  39.         var gl = glw.gl;
  40.        
  41.         //init buffers
  42.         if(!this._vertexBuffer)
  43.         {
  44.             this._vertexBuffer = gl.createBuffer();
  45.             this._indexBuffer = gl.createBuffer();
  46.             this._uvBuffer = gl.createBuffer();
  47.            
  48.             gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer);
  49.             gl.bufferData(gl.ARRAY_BUFFER, this.verticies, gl.DYNAMIC_DRAW);
  50.  
  51.             gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer);
  52.             gl.bufferData(gl.ARRAY_BUFFER,  this.uvs, gl.DYNAMIC_DRAW);
  53.          
  54.         }
  55.  
  56.         gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer);
  57.         gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices, gl.DYNAMIC_DRAW);
  58.  
  59.         //c2 setup
  60.         glw.setTexture(this.webGL_texture);
  61.         glw.setOpacity(this.opacity);
  62.        
  63.         // save matrix
  64.         mat4.set(glw.matMV, this.saved_mat);
  65.        
  66.         glw.translate(this.x, this.y);
  67.         glw.rotateZ(this.angle);
  68.         glw.scale(this.width * this.pixel_scale_x * this.xFlip, this.height * this.pixel_scale_y * this.yFlip);
  69.         glw.updateModelView();
  70.         glw.endBatch();
  71.        
  72.         // update
  73.         if(!this.dirty)
  74.         {
  75.            
  76.             gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer);
  77.             //gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.verticies);
  78.             gl.vertexAttribPointer(glw.currentShader.locAPos, 2, gl.FLOAT, false, 0, 0);
  79.            
  80.             // update the uvs
  81.             gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer);
  82.             gl.vertexAttribPointer(glw.currentShader.locATex, 2, gl.FLOAT, false, 0, 0);
  83.         }
  84.         else
  85.         {
  86.             //var target_creature = this.creature_manager["target_creature"];
  87.             var pt_index = 0;
  88.             var uv_index = 0;
  89.             var write_pt_index = 0;
  90.            
  91.             this.pack_renderer.syncRenderData();
  92.  
  93.  
  94.             for(var i = 0; i < this.pack_renderer.render_points.length; i+=2)
  95.             {
  96.                 this.verticies[i] = this.pack_renderer.render_points[i];
  97.                 this.verticies[i + 1] = -this.pack_renderer.render_points[i + 1];
  98.                
  99.                 this.uvs[i] = this.pack_renderer.render_uvs[i];
  100.                 this.uvs[i + 1] = this.pack_renderer.render_uvs[i + 1];    
  101.             }
  102.  
  103.  
  104.             /*for(var i = 0; i < this.pack_renderer.render_points.length; i++)
  105.             {
  106.                 this.verticies[write_pt_index] = this.pack_renderer["render_points"][pt_index];
  107.                 this.verticies[write_pt_index + 1] = -this.pack_renderer["render_points"][pt_index + 1];
  108.                
  109.                 this.uvs[uv_index] = this.pack_renderer["render_uvs"][uv_index];
  110.                 this.uvs[uv_index + 1] = this.pack_renderer["render_uvs"][uv_index + 1];
  111.                
  112.                 pt_index += 3;
  113.                 uv_index += 2;
  114.                
  115.                 write_pt_index += 2;
  116.             }*/
  117.  
  118.            
  119.             this.dirty = false;
  120.             gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer);
  121.             gl.bufferData(gl.ARRAY_BUFFER, this.verticies, gl.DYNAMIC_DRAW);
  122.             gl.vertexAttribPointer(glw.currentShader.locAPos, 2, gl.FLOAT, false, 0, 0);
  123.            
  124.             // update the uvs
  125.             gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer);
  126.             gl.bufferData(gl.ARRAY_BUFFER, this.uvs, gl.DYNAMIC_DRAW);
  127.             gl.vertexAttribPointer(glw.currentShader.locATex, 2, gl.FLOAT, false, 0, 0);
  128.         }
  129.         gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer);
  130.         gl.drawElements(gl.TRIANGLES, this.indices.length, gl.UNSIGNED_SHORT, 0);
  131.         //c2 post setup
  132.         // restore c2 index buffer
  133.         gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, glw.indexBuffer);
  134.        
  135.         // swap mat with saved
  136.         var tmp = glw.matMV
  137.         glw.matMV = this.saved_mat;
  138.         this.saved_mat = tmp;
  139.        
  140.         glw.updateModelView();
  141.     };
  142.  
  143.  
  144.     function Acts() {};
  145.  
  146.     instanceProto.postLoad = function(data){
  147.         this.pack_data = data;
  148.         this.creature_pack = new CreaturePackLoader(data);
  149.         this.pack_renderer = new CreatureHaxeBaseRenderer(this.creature_pack);
  150.         //this.pack_renderer.setActiveAnimation("dance");
  151.         this.pack_renderer.setActiveAnimation("run");
  152.  
  153.  
  154.         this.verticies = new Float32Array(this.pack_renderer.render_points.length);
  155.         this.uvs = new Float32Array(this.pack_renderer.render_uvs.length);
  156.         this.yFlip = 1.0;
  157.         this.xFlip = 1.0;
  158.        
  159.         this.indices = new Uint16Array(this.creature_pack.indices.length);
  160.         for(var i = 0; i < this.indices.length; i++)
  161.         {
  162.             this.indices[i] = this.creature_pack.indices[i];
  163.         }
  164.  
  165.        
  166.         this.dirty = true;
  167.     };
  168.  
  169.  
  170.     Acts.prototype.loadCreature2dPack = function (file)
  171.     {
  172.         var self = this;
  173.         JSZipUtils.getBinaryContent(file, function(err, data) {
  174.             console.log("creature pack downloaded");
  175.             //console.log(data);
  176.             self.postLoad(data);
  177.         });
  178.  
  179.     };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement