예제 #1
0
 public final void renderMD3(
     EntityLiving entity, float f, float f1, float f2, float f3, float f4) {
   f3 = f2;
   f2 = f1 - (float) entity.yOffset;
   f1 = f;
   GL11.glPushMatrix();
   float f5 =
       entity.prevRenderYawOffset + (entity.renderYawOffset - entity.prevRenderYawOffset) * f4;
   GL11.glTranslatef(f1, f2, f3);
   func_110776_a(textures[getTextureIndex(entity) % textures.length]);
   GL11.glRotatef(-f5 + 180F, 0.0F, 1.0F, 0.0F);
   GL11.glRotatef(-90F, 1.0F, 0.0F, 0.0F);
   GL11.glScalef(0.02F, -0.02F, 0.02F);
   float rotation = handleRotationFloat(entity, f4) * getSpeedMultiplier(entity);
   try {
     int frame1 = (int) rotation % renderer.getAnimFrames();
     int frame2 = (frame1 + 1) % renderer.getAnimFrames();
     GL11.glShadeModel(GL11.GL_SMOOTH);
     GL11.glEnable(GL11.GL_NORMALIZE);
     renderer.render(frame1, frame2, rotation - (int) rotation);
     GL11.glDisable(GL11.GL_NORMALIZE);
   } catch (Exception e) {
     e.printStackTrace();
   }
   GL11.glPopMatrix();
   passSpecialRender(entity, f1, f2, f3);
 }
예제 #2
0
 public RenderMD3(boolean anim, String modelname, String... textures) {
   super(null, 0.5F);
   if (textures.length > 0) {
     this.textures = new ResourceLocation[textures.length];
     for (int i = 0; i < textures.length; i++) {
       this.textures[i] = new ResourceLocation(textures[i]);
     }
   } else {
     return;
   }
   try {
     renderer = new MD3Renderer((new MD3Loader()).load(modelname), anim);
     System.out.println("Animation frames: " + renderer.getAnimFrames());
   } catch (IOException var2) {
     var2.printStackTrace();
   }
 }