001 package net.minecraft.src;
002
003 import cpw.mods.fml.common.Side;
004 import cpw.mods.fml.common.asm.SideOnly;
005
006 @SideOnly(Side.CLIENT)
007 public class ModelBat extends ModelBase
008 {
009 private ModelRenderer field_82895_a;
010 private ModelRenderer field_82893_b;
011 private ModelRenderer field_82894_c;
012 private ModelRenderer field_82891_d;
013 private ModelRenderer field_82892_e;
014 private ModelRenderer field_82890_f;
015
016 public ModelBat()
017 {
018 this.textureWidth = 64;
019 this.textureHeight = 64;
020 this.field_82895_a = new ModelRenderer(this, 0, 0);
021 this.field_82895_a.addBox(-3.0F, -3.0F, -3.0F, 6, 6, 6);
022 ModelRenderer var1 = new ModelRenderer(this, 24, 0);
023 var1.addBox(-4.0F, -6.0F, -2.0F, 3, 4, 1);
024 this.field_82895_a.addChild(var1);
025 ModelRenderer var2 = new ModelRenderer(this, 24, 0);
026 var2.mirror = true;
027 var2.addBox(1.0F, -6.0F, -2.0F, 3, 4, 1);
028 this.field_82895_a.addChild(var2);
029 this.field_82893_b = new ModelRenderer(this, 0, 16);
030 this.field_82893_b.addBox(-3.0F, 4.0F, -3.0F, 6, 12, 6);
031 this.field_82893_b.setTextureOffset(0, 34).addBox(-5.0F, 16.0F, 0.0F, 10, 6, 1);
032 this.field_82894_c = new ModelRenderer(this, 42, 0);
033 this.field_82894_c.addBox(-12.0F, 1.0F, 1.5F, 10, 16, 1);
034 this.field_82892_e = new ModelRenderer(this, 24, 16);
035 this.field_82892_e.setRotationPoint(-12.0F, 1.0F, 1.5F);
036 this.field_82892_e.addBox(-8.0F, 1.0F, 0.0F, 8, 12, 1);
037 this.field_82891_d = new ModelRenderer(this, 42, 0);
038 this.field_82891_d.mirror = true;
039 this.field_82891_d.addBox(2.0F, 1.0F, 1.5F, 10, 16, 1);
040 this.field_82890_f = new ModelRenderer(this, 24, 16);
041 this.field_82890_f.mirror = true;
042 this.field_82890_f.setRotationPoint(12.0F, 1.0F, 1.5F);
043 this.field_82890_f.addBox(0.0F, 1.0F, 0.0F, 8, 12, 1);
044 this.field_82893_b.addChild(this.field_82894_c);
045 this.field_82893_b.addChild(this.field_82891_d);
046 this.field_82894_c.addChild(this.field_82892_e);
047 this.field_82891_d.addChild(this.field_82890_f);
048 }
049
050 public int func_82889_a()
051 {
052 return 36;
053 }
054
055 /**
056 * Sets the models various rotation angles then renders the model.
057 */
058 public void render(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7)
059 {
060 EntityBat var8 = (EntityBat)par1Entity;
061
062 if (var8.func_82235_h())
063 {
064 this.field_82895_a.rotateAngleX = par6 / (180F / (float)Math.PI);
065 this.field_82895_a.rotateAngleY = (float)Math.PI - par5 / (180F / (float)Math.PI);
066 this.field_82895_a.rotateAngleZ = (float)Math.PI;
067 this.field_82895_a.setRotationPoint(0.0F, -2.0F, 0.0F);
068 this.field_82894_c.setRotationPoint(-3.0F, 0.0F, 3.0F);
069 this.field_82891_d.setRotationPoint(3.0F, 0.0F, 3.0F);
070 this.field_82893_b.rotateAngleX = (float)Math.PI;
071 this.field_82894_c.rotateAngleX = -0.15707964F;
072 this.field_82894_c.rotateAngleY = -((float)Math.PI * 2F / 5F);
073 this.field_82892_e.rotateAngleY = -1.7278761F;
074 this.field_82891_d.rotateAngleX = this.field_82894_c.rotateAngleX;
075 this.field_82891_d.rotateAngleY = -this.field_82894_c.rotateAngleY;
076 this.field_82890_f.rotateAngleY = -this.field_82892_e.rotateAngleY;
077 }
078 else
079 {
080 this.field_82895_a.rotateAngleX = par6 / (180F / (float)Math.PI);
081 this.field_82895_a.rotateAngleY = par5 / (180F / (float)Math.PI);
082 this.field_82895_a.rotateAngleZ = 0.0F;
083 this.field_82895_a.setRotationPoint(0.0F, 0.0F, 0.0F);
084 this.field_82894_c.setRotationPoint(0.0F, 0.0F, 0.0F);
085 this.field_82891_d.setRotationPoint(0.0F, 0.0F, 0.0F);
086 this.field_82893_b.rotateAngleX = ((float)Math.PI / 4F) + MathHelper.cos(par4 * 0.1F) * 0.15F;
087 this.field_82893_b.rotateAngleY = 0.0F;
088 this.field_82894_c.rotateAngleY = MathHelper.cos(par4 * 1.3F) * (float)Math.PI * 0.25F;
089 this.field_82891_d.rotateAngleY = -this.field_82894_c.rotateAngleY;
090 this.field_82892_e.rotateAngleY = this.field_82894_c.rotateAngleY * 0.5F;
091 this.field_82890_f.rotateAngleY = -this.field_82894_c.rotateAngleY * 0.5F;
092 }
093
094 this.field_82895_a.render(par7);
095 this.field_82893_b.render(par7);
096 }
097 }