package minefantasy.client.entityrender;
import org.lwjgl.opengl.GL11;
import minefantasy.entity.EntityDrake;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;
import net.minecraft.util.MathHelper;
public class ModelDrake extends ModelBiped
{
//fields
ModelRenderer Lthigh;
ModelRenderer LToe2;
ModelRenderer Lleg;
ModelRenderer LFoot;
ModelRenderer LToe1;
ModelRenderer Rthigh;
ModelRenderer RToe2;
ModelRenderer Rleg;
ModelRenderer RFoot;
ModelRenderer RToe1;
ModelRenderer TailEnd;
ModelRenderer Belly;
ModelRenderer Body;
ModelRenderer Mouth;
ModelRenderer Tail;
ModelRenderer TailTip;
ModelRenderer Neck;
ModelRenderer Head;
ModelRenderer Jaw;
ModelRenderer RThumb;
ModelRenderer RArm;
ModelRenderer RClaw;
ModelRenderer LArm;
ModelRenderer LThumb;
ModelRenderer LClaw;
ModelRenderer Back;
public ModelDrake()
{
textureWidth = 128;
textureHeight = 128;
Lthigh = new ModelRenderer(this, 0, 0);
LToe2 = new ModelRenderer(this, 0, 55);
Lleg = new ModelRenderer(this, 0, 20);
LFoot = new ModelRenderer(this, 0, 34);
LToe1 = new ModelRenderer(this, 0, 55);
Rthigh = new ModelRenderer(this, 0, 0);
RToe2 = new ModelRenderer(this, 0, 55);
Rleg = new ModelRenderer(this, 0, 20);
RFoot = new ModelRenderer(this, 0, 34);
RToe1 = new ModelRenderer(this, 0, 55);
TailEnd = new ModelRenderer(this, 70, 45);
Belly = new ModelRenderer(this, 108, 105);
Body = new ModelRenderer(this, 84, 0);
Mouth = new ModelRenderer(this, 0, 77);
Tail = new ModelRenderer(this, 102, 41);
TailTip = new ModelRenderer(this, 82, 45);
Neck = new ModelRenderer(this, 52, 0);
Head = new ModelRenderer(this, 44, 21);
Jaw = new ModelRenderer(this, 0, 64);
RThumb = new ModelRenderer(this, 0, 102);
RArm = new ModelRenderer(this, 12, 90);
RClaw = new ModelRenderer(this, 0, 110);
LArm = new ModelRenderer(this, 12, 90);
LThumb = new ModelRenderer(this, 0, 102);
LClaw = new ModelRenderer(this, 0, 110);
Back = new ModelRenderer(this, 108, 64);
Lthigh.mirror = true;
Lthigh.addBox(-1F, -2F, -4F, 5, 11, 9);
Lthigh.setRotationPoint(4F, 2F, 0F);
Lthigh.setTextureSize(128, 128);
Lthigh.mirror = true;
setRotation(Lthigh, 0F, 0F, 0F);
Lthigh.mirror = false;
LToe2.mirror = true;
LToe2.addBox(2.5F, 19F, -8F, 3, 3, 6);
LToe2.setRotationPoint(4F, 2F, 0F);
LToe2.setTextureSize(128, 128);
LToe2.mirror = true;
setRotation(LToe2, 0F, 0F, 0F);
LToe2.mirror = false;
Lleg.mirror = true;
Lleg.addBox(2F, 9F, 1F, 4, 9, 5);
Lleg.setRotationPoint(3F, 2F, 0F);
Lleg.setTextureSize(128, 128);
Lleg.mirror = true;
setRotation(Lleg, 0F, 0F, 0F);
Lleg.mirror = false;
LFoot.mirror = true;
LFoot.addBox(-0.5F, 18F, -2F, 5, 4, 8);
LFoot.setRotationPoint(4F, 2F, 0F);
LFoot.setTextureSize(128, 128);
LFoot.mirror = true;
setRotation(LFoot, 0F, 0F, 0F);
LFoot.mirror = false;
LToe1.mirror = true;
LToe1.addBox(-1.5F, 19F, -8F, 3, 3, 6);
LToe1.setRotationPoint(4F, 2F, 0F);
LToe1.setTextureSize(128, 128);
LToe1.mirror = true;
setRotation(LToe1, 0F, 0F, 0F);
LToe1.mirror = false;
Rthigh.addBox(-5F, -2F, -4F, 5, 11, 9);
Rthigh.setRotationPoint(-4F, 2F, 0F);
Rthigh.setTextureSize(128, 128);
Rthigh.mirror = true;
setRotation(Rthigh, 0F, 0F, 0F);
RToe2.addBox(-1.5F, 19F, -8F, 3, 3, 6);
RToe2.setRotationPoint(-4F, 2F, 0F);
RToe2.setTextureSize(128, 128);
RToe2.mirror = true;
setRotation(RToe2, 0F, 0F, 0F);
Rleg.addBox(-4F, 9F, 1F, 4, 9, 5);
Rleg.setRotationPoint(-6F, 2F, 0F);
Rleg.setTextureSize(128, 128);
Rleg.mirror = true;
setRotation(Rleg, 0F, 0F, 0F);
RFoot.addBox(-4.5F, 18F, -2F, 5, 4, 8);
RFoot.setRotationPoint(-4F, 2F, 0F);
RFoot.setTextureSize(128, 128);
RFoot.mirror = true;
setRotation(RFoot, 0F, 0F, 0F);
RToe1.addBox(-5.5F, 19F, -8F, 3, 3, 6);
RToe1.setRotationPoint(-4F, 2F, 0F);
RToe1.setTextureSize(128, 128);
RToe1.mirror = true;
setRotation(RToe1, 0F, 0F, 0F);
TailEnd.addBox(-1F, 30F, -18F, 2, 15, 4);
TailEnd.setRotationPoint(0F, 2F, 0F);
TailEnd.setTextureSize(128, 128);
TailEnd.mirror = true;
setRotation(TailEnd, 1.570796F, 0F, 0F);
Belly.addBox(-4F, -10F, -7F, 8, 21, 2);
Belly.setRotationPoint(0F, 2F, 0F);
Belly.setTextureSize(128, 128);
Belly.mirror = true;
setRotation(Belly, 0.8726646F, 0F, 0F);
Body.addBox(-5F, -12F, -5F, 10, 25, 12);
Body.setRotationPoint(0F, 2F, 0F);
Body.setTextureSize(128, 128);
Body.mirror = true;
setRotation(Body, 0.8726646F, 0F, 0F);
Mouth.addBox(-3F, -2F, -14F, 6, 4, 9);
Mouth.setRotationPoint(0F, -10F, -16F);
Mouth.setTextureSize(128, 128);
Mouth.mirror = true;
setRotation(Mouth, 0F, 0F, 0F);
Tail.addBox(-2F, 8F, -8F, 4, 14, 9);
Tail.setRotationPoint(0F, 2F, 0F);
Tail.setTextureSize(128, 128);
Tail.mirror = true;
setRotation(Tail, 1.22173F, 0F, 0F);
TailTip.addBox(-1.5F, 22F, -8F, 3, 12, 7);
TailTip.setRotationPoint(0F, 2F, 0F);
TailTip.setTextureSize(128, 128);
TailTip.mirror = true;
setRotation(TailTip, 1.22173F, 0F, 0F);
Neck.addBox(-2F, -20F, 2F, 4, 11, 8);
Neck.setRotationPoint(0F, 2F, 0F);
Neck.setTextureSize(128, 128);
Neck.mirror = true;
setRotation(Neck, 1.22173F, 0F, 0F);
Head.addBox(-3F, -6F, -6F, 6, 10, 9);
Head.setRotationPoint(0F, -10F, -16F);
Head.setTextureSize(128, 128);
Head.mirror = true;
setRotation(Head, 0F, 0F, 0F);
Jaw.addBox(-2F, 2F, -12F, 4, 2, 7);
Jaw.setRotationPoint(0F, -10F, -16F);
Jaw.setTextureSize(128, 128);
Jaw.mirror = true;
setRotation(Jaw, 0F, 0F, 0F);
RThumb.addBox(0F, 6F, -4F, 2, 5, 2);
RThumb.setRotationPoint(-3F, 5F, -9F);
RThumb.setTextureSize(128, 128);
RThumb.mirror = true;
setRotation(RThumb, 0F, 0F, 0F);
RArm.addBox(-2F, -2F, -2F, 3, 9, 3);
RArm.setRotationPoint(-3F, 5F, -9F);
RArm.setTextureSize(128, 128);
RArm.mirror = true;
setRotation(RArm, -0.418879F, 0F, 0F);
RClaw.addBox(-3F, 6F, -4F, 2, 6, 2);
RClaw.setRotationPoint(-3F, 5F, -9F);
RClaw.setTextureSize(128, 128);
RClaw.mirror = true;
setRotation(RClaw, 0F, 0F, 0F);
LArm.mirror = true;
LArm.addBox(-1F, -2F, -2F, 3, 9, 3);
LArm.setRotationPoint(3F, 5F, -9F);
LArm.setTextureSize(128, 128);
LArm.mirror = true;
setRotation(LArm, -0.418879F, 0F, 0F);
LArm.mirror = false;
LThumb.mirror = true;
LThumb.addBox(-2F, 6F, -4F, 2, 5, 2);
LThumb.setRotationPoint(3F, 5F, -9F);
LThumb.setTextureSize(128, 128);
LThumb.mirror = true;
setRotation(LThumb, 0F, 0F, 0F);
LThumb.mirror = false;
LClaw.mirror = true;
LClaw.addBox(1F, 6F, -4F, 2, 6, 2);
LClaw.setRotationPoint(3F, 5F, -9F);
LClaw.setTextureSize(128, 128);
LClaw.mirror = true;
setRotation(LClaw, 0F, 0F, 0F);
LClaw.mirror = false;
Back.addBox(-4F, -12F, 7F, 8, 25, 2);
Back.setRotationPoint(0F, 2F, 0F);
Back.setTextureSize(128, 128);
Back.mirror = true;
setRotation(Back, 0.8726646F, 0F, 0F);
}
public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
{
setRotationAngles(f, f1, f2, f3, f4, f5, (EntityDrake)entity);
Lthigh.render(f5);
LToe2.render(f5);
Lleg.render(f5);
LFoot.render(f5);
LToe1.render(f5);
Rthigh.render(f5);
RToe2.render(f5);
Rleg.render(f5);
RFoot.render(f5);
RToe1.render(f5);
TailEnd.render(f5);
Belly.render(f5);
Body.render(f5);
Mouth.render(f5);
Tail.render(f5);
TailTip.render(f5);
Neck.render(f5);
Head.render(f5);
Jaw.render(f5);
RThumb.render(f5);
RArm.render(f5);
RClaw.render(f5);
LArm.render(f5);
LThumb.render(f5);
LClaw.render(f5);
Back.render(f5);
}
private void setRotation(ModelRenderer model, float x, float y, float z)
{
model.rotateAngleX = x;
model.rotateAngleY = y;
model.rotateAngleZ = z;
}
public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, EntityDrake entity)
{
float headX = bipedHead.rotateAngleX;
float mouth = (float)Math.toRadians(entity.getMouthAngle());
float tailY = (float)Math.toRadians(entity.getTailYAngle());
float tailY1 = (float)Math.toRadians(entity.getTailYAngle());
float tailY2 = (float)Math.toRadians(entity.getTailYAngle());
super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
Rthigh.rotateAngleX = Rleg.rotateAngleX = RFoot.rotateAngleX = RToe1.rotateAngleX = RToe2.rotateAngleX = bipedRightLeg.rotateAngleX;
Lthigh.rotateAngleX = Lleg.rotateAngleX = LFoot.rotateAngleX = LToe1.rotateAngleX = LToe2.rotateAngleX = bipedLeftLeg.rotateAngleX;
Head.rotateAngleX = headX;
Mouth.rotateAngleX = headX - mouth;
Jaw.rotateAngleX = headX + mouth;
Head.rotateAngleY = Mouth.rotateAngleY = Jaw.rotateAngleY = bipedHead.rotateAngleY;
if(tailY < -6)tailY = -6;if(tailY > 6)tailY = 6;
if(tailY1 < -12)tailY1 = -12;if(tailY1 > 12)tailY1 = 12;
Tail.rotateAngleY = tailY;
TailEnd.rotateAngleY = tailY1;
TailTip.rotateAngleY = tailY2;
if(entity.scratchTime > 0)
{
float armS = 30-(float)Math.toRadians(entity.getScratchForDisplay());
Head.rotateAngleY = Mouth.rotateAngleY = Jaw.rotateAngleY = (float)Math.toRadians(0);
Head.rotateAngleX = Mouth.rotateAngleX = Jaw.rotateAngleX = (float)Math.toRadians(90);
RArm.rotateAngleX = RClaw.rotateAngleX = RThumb.rotateAngleX = armS;
}
else
{
RArm.rotateAngleX = -0.418879F;
RClaw.rotateAngleX = RThumb.rotateAngleX = 0;
}
}
}