package com.bioxx.tfc2.rendering.model;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.entity.Entity;
import net.minecraft.util.math.MathHelper;
public class ModelElk extends ModelBase
{
ModelRenderer Body;
ModelRenderer Rump;
ModelRenderer Tail;
ModelRenderer Neck;
ModelRenderer Leg4a;
ModelRenderer Leg3a;
ModelRenderer Leg1;
ModelRenderer Leg2;
ModelRenderer Belly;
public ModelElk()
{
textureWidth = 64;
textureHeight = 128;
setTextureOffset("RightEar.RightEar", 26, 16);
setTextureOffset("LeftEar.LeftEar", 26, 16);
setTextureOffset("Neck1.Neck1", 0, 78);
setTextureOffset("Neck2.Neck2", 25, 78);
setTextureOffset("Neck3.Neck3", 0, 93);
setTextureOffset("Head.Head", 0, 28);
setTextureOffset("Dome.Dome", 0, 23);
setTextureOffset("Nose.Nose", 11, 39);
setTextureOffset("Jaw.Jaw", 0, 39);
setTextureOffset("RightAntler1.RightAntler1", 0, 45);
setTextureOffset("RightAntler1_1.RightAntler1_1", 5, 51);
setTextureOffset("RightAntler1_2.RightAntler1_2", 42, 0);
setTextureOffset("RightAntler1_3.RightAntler1_3", 37, 0);
setTextureOffset("RightAntler2.RightAntler2", 5, 45);
setTextureOffset("LeftAntler1.LeftAntler1", 0, 45);
setTextureOffset("LeftAntler1_1.LeftAntler1_1", 5, 51);
setTextureOffset("LeftAntler1_2.LeftAntler1_2", 42, 0);
setTextureOffset("LeftAntler1_3.LeftAntler1_3", 37, 0);
setTextureOffset("LeftAntler2.LeftAntler2", 5, 45);
setTextureOffset("Leg4b.Leg4b", 42, 11);
setTextureOffset("Leg4c.Leg4c", 47, 0);
setTextureOffset("Leg3b.Leg3b", 42, 11);
setTextureOffset("Leg3c.Leg3c", 47, 0);
setTextureOffset("Leg1c.Leg1c", 13, 14);
setTextureOffset("Box42.Box42", 0, 0);
setTextureOffset("Leg1a.Leg1a", 0, 0);
setTextureOffset("Leg1b.Leg1b", 0, 14);
setTextureOffset("Box42.Box42", 0, 0);
setTextureOffset("Leg2a.Leg2a", 0, 0);
setTextureOffset("Leg2b.Leg2b", 0, 14);
setTextureOffset("Leg2c.Leg2c", 13, 14);
Body = new ModelRenderer(this,"Body");
Body.addBox(-5F, -10F, -8F, 10, 19, 12);
Body.setRotationPoint(0F ,4F, -2F);
setRotation(Body, 1.570796F, 0F, 0F);
Rump = new ModelRenderer(this,"Rump");
Rump.addBox(-5F, 0F, -9F, 10, 6, 9);
Rump.setRotationPoint(0F ,0F, 7F);
setRotation(Rump, 1.570796F, 0F, 0F);
Tail = new ModelRenderer(this,"Tail");
Tail.addBox(-1F, 0F, 0F, 2, 3, 1);
Tail.setRotationPoint(0F ,1F, 13F);
setRotation(Tail, 0F, 0F, 0F);
Neck = new ModelRenderer(this,"Neck");
Neck.setRotationPoint(0F ,8.5F, -5F);
setRotation(Neck, 0F, 0F, 0F);
ModelRenderer Neck_Neck1 = new ModelRenderer(this,"Neck1");
Neck_Neck1.addBox("Neck1", -3F, -7.5F, -13F, 6, 8, 5);
Neck_Neck1.setRotationPoint(0F, 0F, 0F);
setRotation(Neck_Neck1, 0F, 0F, 0F);
Neck.addChild(Neck_Neck1);
ModelRenderer Neck_Neck2 = new ModelRenderer(this,"Neck2");
Neck_Neck2.addBox("Neck2", -4F, -8F, -8F, 8, 10, 8);
Neck_Neck2.setRotationPoint(0F, 0F, 0F);
setRotation(Neck_Neck2, 0F, 0F, 0F);
Neck.addChild(Neck_Neck2);
ModelRenderer Neck_Neck3 = new ModelRenderer(this,"Neck3");
Neck_Neck3.addBox("Neck3", -4.5F, 0F, 0F, 9, 3, 6);
Neck_Neck3.setRotationPoint(0F, -8F, 0F);
setRotation(Neck_Neck3, -0.3490658F, 0F, 0F);
Neck.addChild(Neck_Neck3);
ModelRenderer Neck1_Head = new ModelRenderer(this,"Head");
Neck1_Head.addBox("Head", -2F, -1F, -4F, 4, 5, 5);
Neck1_Head.setRotationPoint(0F, -6.7F, -13.8F);
setRotation(Neck1_Head, 0F, 0F, 0F);
Neck_Neck1.addChild(Neck1_Head);
ModelRenderer Head_Dome = new ModelRenderer(this,"Dome");
Head_Dome.addBox("Dome", -1.5F, -2F, -1.5F, 3, 2, 2);
Head_Dome.setRotationPoint(0F, 0F, 0F);
setRotation(Head_Dome, 0F, 0F, 0F);
Neck1_Head.addChild(Head_Dome);
ModelRenderer Head_Nose = new ModelRenderer(this,"Nose");
Head_Nose.addBox("Nose", -1.5F, 0F, -4F, 3, 2, 4);
Head_Nose.setRotationPoint(0F, -1F, -4F);
setRotation(Head_Nose, 0.5235988F, 0F, 0F);
Neck1_Head.addChild(Head_Nose);
ModelRenderer Head_Jaw = new ModelRenderer(this,"Jaw");
Head_Jaw.addBox("Jaw", -1F, -1F, -3F, 2, 2, 3);
Head_Jaw.setRotationPoint(0F, 2.2F, -3.3F);
setRotation(Head_Jaw, 0.08726646F, -0.02792527F, 0F);
Neck1_Head.addChild(Head_Jaw);
ModelRenderer Head_RightEar = new ModelRenderer(this,"RightEar");
Head_RightEar.addBox("RightEar", -3F, -1F, -0.5F, 4, 2, 1);
Head_RightEar.setRotationPoint(-2.3F, -0.5F, 0F);
setRotation(Head_RightEar, 0F, 0.1745329F, 0.5235988F);
Neck1_Head.addChild(Head_RightEar);
ModelRenderer Head_LeftEar = new ModelRenderer(this,"LeftEar");
Head_LeftEar.addBox("LeftEar", -1F, -1F, -0.5F, 4, 2, 1);
Head_LeftEar.setRotationPoint(2.3F, -0.5F, 0F);
setRotation(Head_LeftEar, 0F, -0.1745329F, -0.5235988F);
Neck1_Head.addChild(Head_LeftEar);
ModelRenderer Head_RightAntler1 = new ModelRenderer(this,"RightAntler1");
Head_RightAntler1.addBox("RightAntler1", -0.5F, -7F, -0.5F, 1, 8, 1);
Head_RightAntler1.setRotationPoint(-1F, -1.8F, -0.2F);
setRotation(Head_RightAntler1, -1.047198F, -1.047198F, 0F);
Neck1_Head.addChild(Head_RightAntler1);
ModelRenderer RightAntler1_RightAntler1_1 = new ModelRenderer(this,"RightAntler1_1");
RightAntler1_RightAntler1_1.addBox("RightAntler1_1", -0.5F, -3F, -0.5F, 1, 3, 1);
RightAntler1_RightAntler1_1.setRotationPoint(0F, -3F, 0F);
setRotation(RightAntler1_RightAntler1_1, 1.22173F, 1.047198F, 0F);
Head_RightAntler1.addChild(RightAntler1_RightAntler1_1);
ModelRenderer RightAntler1_RightAntler1_2 = new ModelRenderer(this,"RightAntler1_2");
RightAntler1_RightAntler1_2.addBox("RightAntler1_2", 0F, -6F, -0.5F, 1, 6, 1);
RightAntler1_RightAntler1_2.setRotationPoint(-0.5F, -7F, 0F);
setRotation(RightAntler1_RightAntler1_2, 0F, 0F, 1.047198F);
Head_RightAntler1.addChild(RightAntler1_RightAntler1_2);
ModelRenderer RightAntler1_RightAntler1_3 = new ModelRenderer(this,"RightAntler1_3");
RightAntler1_RightAntler1_3.addBox("RightAntler1_3", -0.5F, -4F, -0.5F, 1, 4, 1);
RightAntler1_RightAntler1_3.setRotationPoint(0F, -6.5F, 0F);
setRotation(RightAntler1_RightAntler1_3, 0F, -0.7853982F, -1.047198F);
Head_RightAntler1.addChild(RightAntler1_RightAntler1_3);
ModelRenderer Head_RightAntler2 = new ModelRenderer(this,"RightAntler2");
Head_RightAntler2.addBox("RightAntler2", -0.5F, -4F, -0.5F, 1, 4, 1);
Head_RightAntler2.setRotationPoint(-1F, -1.8F, -0.2F);
setRotation(Head_RightAntler2, 1.22173F, 0.5235988F, 0F);
Neck1_Head.addChild(Head_RightAntler2);
ModelRenderer Head_LeftAntler1 = new ModelRenderer(this,"LeftAntler1");
Head_LeftAntler1.addBox("LeftAntler1", -0.5F, -7F, -0.5F, 1, 8, 1);
Head_LeftAntler1.setRotationPoint(1F, -1.8F, -0.2F);
setRotation(Head_LeftAntler1, -1.047198F, 1.047198F, 0F);
Neck1_Head.addChild(Head_LeftAntler1);
ModelRenderer LeftAntler1_LeftAntler1_1 = new ModelRenderer(this,"LeftAntler1_1");
LeftAntler1_LeftAntler1_1.addBox("LeftAntler1_1", -0.5F, -3F, -0.5F, 1, 3, 1);
LeftAntler1_LeftAntler1_1.setRotationPoint(0F, -3F, 0F);
setRotation(LeftAntler1_LeftAntler1_1, 1.22173F, -1.047198F, 0F);
Head_LeftAntler1.addChild(LeftAntler1_LeftAntler1_1);
ModelRenderer LeftAntler1_LeftAntler1_2 = new ModelRenderer(this,"LeftAntler1_2");
LeftAntler1_LeftAntler1_2.addBox("LeftAntler1_2", -1F, -6F, -0.5F, 1, 6, 1);
LeftAntler1_LeftAntler1_2.setRotationPoint(0.5F, -7F, 0F);
setRotation(LeftAntler1_LeftAntler1_2, 0F, 0F, -1.047198F);
Head_LeftAntler1.addChild(LeftAntler1_LeftAntler1_2);
ModelRenderer LeftAntler1_LeftAntler1_3 = new ModelRenderer(this,"LeftAntler1_3");
LeftAntler1_LeftAntler1_3.addBox("LeftAntler1_3", -0.5F, -4F, -0.5F, 1, 4, 1);
LeftAntler1_LeftAntler1_3.setRotationPoint(0F, -6.5F, 0F);
setRotation(LeftAntler1_LeftAntler1_3, 0F, 0.7853982F, 1.047198F);
Head_LeftAntler1.addChild(LeftAntler1_LeftAntler1_3);
ModelRenderer Head_LeftAntler2 = new ModelRenderer(this,"LeftAntler2");
Head_LeftAntler2.addBox("LeftAntler2", -0.5F, -4F, -0.5F, 1, 4, 1);
Head_LeftAntler2.setRotationPoint(1F, -1.8F, -0.2F);
setRotation(Head_LeftAntler2, 1.22173F, -0.5235988F, 0F);
Neck1_Head.addChild(Head_LeftAntler2);
Leg4a = new ModelRenderer(this,"Leg4a");
Leg4a.addBox(-2F, -2F, -3F, 4, 9, 6);
Leg4a.setRotationPoint(3.5F ,6F, -8F);
setRotation(Leg4a, 0F, 0F, 0F);
ModelRenderer Leg4a_Leg4b = new ModelRenderer(this,"Leg4b");
Leg4a_Leg4b.addBox("Leg4b", -1.5F, 7F, -1.5F, 3, 5, 3);
Leg4a_Leg4b.setRotationPoint(0F, 0F, 0F);
setRotation(Leg4a_Leg4b, 0F, 0F, 0F);
Leg4a.addChild(Leg4a_Leg4b);
ModelRenderer Leg4a_Leg4c = new ModelRenderer(this,"Leg4c");
Leg4a_Leg4c.addBox("Leg4c", -1F, 12F, -1.5F, 2, 6, 2);
Leg4a_Leg4c.setRotationPoint(0F, 0F, 0F);
setRotation(Leg4a_Leg4c, 0F, 0F, 0F);
Leg4a.addChild(Leg4a_Leg4c);
Leg3a = new ModelRenderer(this,"Leg3a");
Leg3a.mirror = true;
Leg3a.addBox(-2F, -2F, -3F, 4, 9, 6);
Leg3a.mirror = false;
Leg3a.setRotationPoint(-3.5F ,6F, -8F);
setRotation(Leg3a, 0F, 0F, 0F);
ModelRenderer Leg3a_Leg3b = new ModelRenderer(this,"Leg3b");
Leg3a_Leg3b.mirror = true;
Leg3a_Leg3b.addBox("Leg3b", -1.5F, 7F, -1.5F, 3, 5, 3);
Leg3a_Leg3b.mirror = false;
Leg3a_Leg3b.setRotationPoint(0F, 0F, 0F);
setRotation(Leg3a_Leg3b, 0F, 0F, 0F);
Leg3a.addChild(Leg3a_Leg3b);
ModelRenderer Leg3a_Leg3c = new ModelRenderer(this,"Leg3c");
Leg3a_Leg3c.mirror = true;
Leg3a_Leg3c.addBox("Leg3c", -1F, 12F, -1.5F, 2, 6, 2);
Leg3a_Leg3c.mirror = false;
Leg3a_Leg3c.setRotationPoint(0F, 0F, 0F);
setRotation(Leg3a_Leg3c, 0F, 0F, 0F);
Leg3a.addChild(Leg3a_Leg3c);
Leg1 = new ModelRenderer(this,"Leg1");
Leg1.setRotationPoint(-3.5F ,7F, 7F);
setRotation(Leg1, 0F, 0F, 0F);
ModelRenderer Leg1_Leg1c = new ModelRenderer(this,"Leg1c");
Leg1_Leg1c.mirror = true;
Leg1_Leg1c.addBox("Leg1c", -1F, 8F, 3.5F, 2, 9, 2);
Leg1_Leg1c.mirror = false;
Leg1_Leg1c.setRotationPoint(0F, 0F, 0F);
setRotation(Leg1_Leg1c, 0F, 0F, 0F);
Leg1.addChild(Leg1_Leg1c);
ModelRenderer Leg1_Box42 = new ModelRenderer(this,"Box42");
Leg1_Box42.addBox("Box42", 0F, 0F, 0F, 1, 1, 1);
Leg1_Box42.setRotationPoint(0F, 0F, 0F);
setRotation(Leg1_Box42, 0F, 0F, 0F);
Leg1.addChild(Leg1_Box42);
ModelRenderer Leg1_Leg1a = new ModelRenderer(this,"Leg1a");
Leg1_Leg1a.mirror = true;
Leg1_Leg1a.addBox("Leg1a", -2F, -2F, -2F, 4, 7, 6);
Leg1_Leg1a.mirror = false;
Leg1_Leg1a.setRotationPoint(0F, 0F, 0F);
setRotation(Leg1_Leg1a, 0.5235988F, 0F, 0F);
Leg1.addChild(Leg1_Leg1a);
ModelRenderer Leg1_Leg1b = new ModelRenderer(this,"Leg1b");
Leg1_Leg1b.mirror = true;
Leg1_Leg1b.addBox("Leg1b", -1.5F, 4.8F, -1.5F, 3, 5, 3);
Leg1_Leg1b.mirror = false;
Leg1_Leg1b.setRotationPoint(0F, 0F, 0F);
setRotation(Leg1_Leg1b, 0.5235988F, 0F, 0F);
Leg1.addChild(Leg1_Leg1b);
Leg2 = new ModelRenderer(this,"Leg2");
Leg2.setRotationPoint(3.5F ,7F, 7F);
setRotation(Leg2, 0F, 0F, 0F);
ModelRenderer Leg2_Box42 = new ModelRenderer(this,"Box42");
Leg2_Box42.addBox("Box42", 0F, 0F, 0F, 1, 1, 1);
Leg2_Box42.setRotationPoint(0F, 0F, 0F);
setRotation(Leg2_Box42, 0F, 0F, 0F);
Leg2.addChild(Leg2_Box42);
ModelRenderer Leg2_Leg2a = new ModelRenderer(this,"Leg2a");
Leg2_Leg2a.addBox("Leg2a", -2F, -2F, -2F, 4, 7, 6);
Leg2_Leg2a.setRotationPoint(0F, 0F, 0F);
setRotation(Leg2_Leg2a, 0.5235988F, 0F, 0F);
Leg2.addChild(Leg2_Leg2a);
ModelRenderer Leg2_Leg2b = new ModelRenderer(this,"Leg2b");
Leg2_Leg2b.addBox("Leg2b", -1.5F, 4.8F, -1.5F, 3, 5, 3);
Leg2_Leg2b.setRotationPoint(0F, 0F, 0F);
setRotation(Leg2_Leg2b, 0.5235988F, 0F, 0F);
Leg2.addChild(Leg2_Leg2b);
ModelRenderer Leg2_Leg2c = new ModelRenderer(this,"Leg2c");
Leg2_Leg2c.addBox("Leg2c", -1F, 8F, 3.5F, 2, 9, 2);
Leg2_Leg2c.setRotationPoint(0F, 0F, 0F);
setRotation(Leg2_Leg2c, 0F, 0F, 0F);
Leg2.addChild(Leg2_Leg2c);
Belly = new ModelRenderer(this,"Belly");
Belly.addBox(-4.5F, 0F, -2F, 9, 7, 2);
Belly.setRotationPoint(0F ,9F, 13F);
setRotation(Belly, -1.134464F, 0F, 0F);
}
private void setRotation(ModelRenderer model, float x, float y, float z)
{
model.rotateAngleX = x;
model.rotateAngleY = y;
model.rotateAngleZ = z;
}
/**
* Sets the models various rotation angles then renders the model.
*/
@Override
public void render(Entity entityIn, float p_78088_2_, float p_78088_3_, float p_78088_4_, float p_78088_5_, float p_78088_6_, float scale)
{
this.setRotationAngles(p_78088_2_, p_78088_3_, p_78088_4_, p_78088_5_, p_78088_6_, scale, entityIn);
GlStateManager.pushMatrix();
GlStateManager.translate(0.0F, 0.0F, -0.5F);
Leg4a.render(scale);
Leg1.render(scale);
Leg3a.render(scale);
Leg2.render(scale);
Neck.render(scale);
Body.render(scale);
Rump.render(scale);
Tail.render(scale);
Belly.render(scale);
GlStateManager.popMatrix();
}
/**
* Sets the model's various rotation angles. For bipeds, par1 and par2 are used for animating the movement of arms
* and legs, where par1 represents the time(so that arms and legs swing back and forth) and par2 represents how
* "far" arms and legs can swing at most.
*/
@Override
public void setRotationAngles(float p_78087_1_, float p_78087_2_, float p_78087_3_, float p_78087_4_, float p_78087_5_, float p_78087_6_, Entity p_78087_7_)
{
float f6 = (180F / (float)Math.PI);
float rotationDiv = 2;
this.Neck.rotateAngleX = p_78087_5_ / (180F / (float)Math.PI);
this.Neck.rotateAngleY = p_78087_4_ / (180F / (float)Math.PI);
this.Leg4a.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.6662F) * 1.4F * p_78087_2_/ rotationDiv;
this.Leg2.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.6662F + (float)Math.PI) * 1.4F * p_78087_2_/ rotationDiv;
this.Leg3a.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.6662F + (float)Math.PI) * 1.4F * p_78087_2_/ rotationDiv;
this.Leg1.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.6662F) * 1.4F * p_78087_2_/ rotationDiv;
}
}