package net.tropicraft.client.entity.model; import java.util.Random; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.MathHelper; import net.tropicraft.entity.passive.VMonkey; public class ModelVMonkey extends ModelBase { public ModelRenderer body; public ModelRenderer lLegUpper; public ModelRenderer rLegUpper; public ModelRenderer rArmUpper; public ModelRenderer lArmUpper; public ModelRenderer tailBase; public ModelRenderer tailMid; public ModelRenderer tailTop; public ModelRenderer rArmLower; public ModelRenderer lArmLower; public ModelRenderer lLegLower; public ModelRenderer rLegLower; public ModelRenderer Face; public ModelRenderer Head; protected Random rand; public float herps; public ModelVMonkey() { body = new ModelRenderer(this, 0, 8); body.addBox(-1F, -2F, -4F, 2, 4, 9, 0F); body.setRotationPoint(0F, 16F, 0F); body.rotateAngleX = 0F; body.rotateAngleY = 3.141593F; body.rotateAngleZ = 0F; body.mirror = false; lLegUpper = new ModelRenderer(this, 7, 0); lLegUpper.addBox(-1F, 0F, -0.5F, 1, 5, 1, 0F); lLegUpper.setRotationPoint(-1F, 14F, -3.5F); lLegUpper.rotateAngleX = 0F; lLegUpper.rotateAngleY = 0F; lLegUpper.rotateAngleZ = 0F; lLegUpper.mirror = false; rLegUpper = new ModelRenderer(this, 0, 0); rLegUpper.addBox(0F, 0F, -0.5F, 1, 5, 1, 0F); rLegUpper.setRotationPoint(1F, 14F, -3.5F); rLegUpper.rotateAngleX = 0F; rLegUpper.rotateAngleY = 0F; rLegUpper.rotateAngleZ = 0F; rLegUpper.mirror = false; rArmUpper = new ModelRenderer(this, 0, 0); rArmUpper.addBox(0F, 0F, -0.5F, 1, 5, 1, 0F); rArmUpper.setRotationPoint(1F, 14F, 3.5F); rArmUpper.rotateAngleX = 0F; rArmUpper.rotateAngleY = 0F; rArmUpper.rotateAngleZ = 0F; rArmUpper.mirror = false; lArmUpper = new ModelRenderer(this, 7, 0); lArmUpper.addBox(-1F, 0F, -0.5F, 1, 5, 1, 0F); lArmUpper.setRotationPoint(-1F, 14F, 3.5F); lArmUpper.rotateAngleX = 0F; lArmUpper.rotateAngleY = 0F; lArmUpper.rotateAngleZ = 0F; lArmUpper.mirror = false; tailBase = new ModelRenderer(this, 20, 27); tailBase.addBox(-0.5F, -4F, -0.5F, 1, 3, 1, 0F); tailBase.setRotationPoint(0F, 15F, 3.5F); tailBase.rotateAngleX = 0F; tailBase.rotateAngleY = 3.141593F; tailBase.rotateAngleZ = 0F; tailBase.mirror = false; tailMid = new ModelRenderer(this, 20, 24); tailMid.addBox(-0.5F, -2F, -0.5F, 1, 2, 1, 0F); tailMid.setRotationPoint(0F, 11F, 3.5F); tailMid.rotateAngleX = 0F; tailMid.rotateAngleY = 3.141593F; tailMid.rotateAngleZ = 0F; tailMid.mirror = false; tailTop = new ModelRenderer(this, 20, 21); tailTop.addBox(-0.5F, -2F, -0.5F, 1, 2, 1, 0F); tailTop.setRotationPoint(0F, 9F, 3.5F); tailTop.rotateAngleX = 0F; tailTop.rotateAngleY = 3.141593F; tailTop.rotateAngleZ = 0F; tailTop.mirror = false; rArmLower = new ModelRenderer(this, 0, 7); rArmLower.addBox(0F, 0F, -0.5F, 1, 5, 1, 0F); rArmLower.setRotationPoint(1F, 19F, 3.5F); rArmLower.rotateAngleX = 0F; rArmLower.rotateAngleY = 0F; rArmLower.rotateAngleZ = 0F; rArmLower.mirror = false; lArmLower = new ModelRenderer(this, 12, 0); lArmLower.addBox(-1F, 0F, -0.5F, 1, 5, 1, 0F); lArmLower.setRotationPoint(-1F, 19F, 3.5F); lArmLower.rotateAngleX = 0F; lArmLower.rotateAngleY = 0F; lArmLower.rotateAngleZ = 0F; lArmLower.mirror = false; lLegLower = new ModelRenderer(this, 12, 0); lLegLower.addBox(-1F, 0F, -0.5F, 1, 5, 1, 0F); lLegLower.setRotationPoint(-1F, 19F, -3.5F); lLegLower.rotateAngleX = 0F; lLegLower.rotateAngleY = 0F; lLegLower.rotateAngleZ = 0F; lLegLower.mirror = false; rLegLower = new ModelRenderer(this, 0, 7); rLegLower.addBox(0F, 0F, -0.5F, 1, 5, 1, 0F); rLegLower.setRotationPoint(1F, 19F, -3.5F); rLegLower.rotateAngleX = 0F; rLegLower.rotateAngleY = 0F; rLegLower.rotateAngleZ = 0F; rLegLower.mirror = false; Face = new ModelRenderer(this, 0, 25); Face.addBox(-2F, -1F, 0F, 4, 4, 3, 0F); Face.setRotationPoint(0F, 15F, -5F); Face.rotateAngleX = 0F; Face.rotateAngleY = 3.141593F; Face.rotateAngleZ = 0F; Face.mirror = false; Head = new ModelRenderer(this, 25, 25); Head.addBox(-3F, -2F, 0F, 6, 5, 2, 0F); Head.setRotationPoint(0F, 15F, -5F); Head.rotateAngleX = 0F; Head.rotateAngleY = 3.141593F; Head.rotateAngleZ = 0F; Head.mirror = false; } @Override public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { super.render(entity, f, f1, f2, f3, f4, f5); setRotationAngles(f, f1, f2, f3, f4, f5, entity); body.render(f5); lLegUpper.render(f5); rLegUpper.render(f5); rArmUpper.render(f5); lArmUpper.render(f5); tailBase.render(f5); tailMid.render(f5); tailTop.render(f5); rArmLower.render(f5); lArmLower.render(f5); lLegLower.render(f5); rLegLower.render(f5); Face.render(f5); Head.render(f5); } @Override public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity ent) { super.setRotationAngles(f, f1, f2, f3, f4, f5, ent); Face.rotateAngleX = f4 / 57.29578F + herps; Face.rotateAngleY = f3 / 57.29578F + 3.141593F; Head.rotateAngleX = Face.rotateAngleX; Head.rotateAngleY = Face.rotateAngleY; } @Override public void setLivingAnimations(EntityLivingBase entityliving, float f, float f1, float f2) { VMonkey entityvmonkey = (VMonkey) entityliving; if (entityvmonkey.isSitting) { body.setRotationPoint(0F, 20F, 0F); body.rotateAngleX = 0.9320058F; body.rotateAngleY = 3.141593F; lLegUpper.setRotationPoint(-1F, 16F, -1.5F); lLegUpper.rotateAngleX = -0.2792527F; rLegUpper.setRotationPoint(1F, 16F, -1.5F); rLegUpper.rotateAngleX = -0.2792527F; rLegUpper.rotateAngleY = 0.005817764F; rArmUpper.setRotationPoint(1F, 22F, 3.5F); rArmUpper.rotateAngleX = -2.142101F; lArmUpper.setRotationPoint(-1F, 22F, 3.5F); lArmUpper.rotateAngleX = -2.142043F; tailBase.setRotationPoint(0F, 22F, 2.466667F); tailBase.rotateAngleX = 1.902409F; tailBase.rotateAngleY = 3.141593F; tailMid.setRotationPoint(0F, 23.3F, 5.966667F); tailMid.rotateAngleX = 1.570796F; tailMid.rotateAngleY = 2.111848F; tailMid.rotateAngleZ = -0.2617994F; tailTop.setRotationPoint(-1F, 23.2F, 7F); tailTop.rotateAngleX = 1.570796F; tailTop.rotateAngleY = 0.8377581F; tailTop.rotateAngleZ = 0.01745329F; rArmLower.setRotationPoint(1F, 19F, -0.5F); rArmLower.rotateAngleX = -0.1489348F; lArmLower.setRotationPoint(-1F, 19F, -0.3F); lArmLower.rotateAngleX = -0.1492257F; lLegLower.setRotationPoint(-1F, 21F, -2.8F); lLegLower.rotateAngleX = -0.9599311F; rLegLower.setRotationPoint(1F, 21F, -2.833333F); rLegLower.rotateAngleX = -0.9599311F; Face.setRotationPoint(0F, 15F, -3F); Head.setRotationPoint(0F, 15F, -3F); herps = 0; } else if (entityvmonkey.isClimbing) { body.rotateAngleX = 1.570796F; body.setRotationPoint(0F, 16F, 0F); lLegUpper.setRotationPoint(-1F, 12F, 2F); //lLegUpper.rotateAngleX = -1.570796F; rLegUpper.setRotationPoint(1F, 12F, 2F); //rLegUpper.rotateAngleX = -1.570796F; rArmUpper.setRotationPoint(1F, 19.5F, 2F); //rArmUpper.rotateAngleX = -1.570796F; lArmUpper.setRotationPoint(-1F, 19.5F, 2F); //lArmUpper.rotateAngleX = -1.570796F; tailBase.setRotationPoint(0F, 19.5F, 0.5F); tailBase.rotateAngleX = 1.570796F; tailBase.rotateAngleY = 3.141593F; tailMid.setRotationPoint(0F, 19.5F, 4.5F); tailMid.rotateAngleX = 1.570796F; tailMid.rotateAngleY = 3.141593F; tailTop.setRotationPoint(0F, 19.5F, 6.5F); tailTop.rotateAngleX = 1.570796F; tailTop.rotateAngleY = 3.141593F; rArmLower.setRotationPoint(1F, 19.5F, -3F); //rArmLower.rotateAngleX = -0.6981317F; lArmLower.setRotationPoint(-1F, 19.5F, -3F); //lArmLower.rotateAngleX = -0.6981317F; lLegLower.setRotationPoint(-1F, 12F, -3F); //lLegLower.rotateAngleX = -2.443461F; rLegLower.setRotationPoint(1F, 12F, -3F); //rLegLower.rotateAngleX = -2.443461F; Face.setRotationPoint(0F, 11F, 1F); herps = 1.570796F; Head.setRotationPoint(0F, 11F, 1F); Head.rotateAngleX = 1.570796F; rLegUpper.rotateAngleX = MathHelper.cos(f * .5F) * .75F * f2 - 1.570796F; rArmUpper.rotateAngleX = MathHelper.cos(f * .5F) * .75F * f2 - 1.570796F; lArmUpper.rotateAngleX = MathHelper.cos(f * .5F) * .75F * f2 - 1.570796F; lLegUpper.rotateAngleX = MathHelper.cos(f * .5F) * .75F * f2 - 1.570796F; rLegLower.setRotationPoint(1F, 12F + (MathHelper.cos(rLegUpper.rotateAngleX) * 5), -3F - (5 + MathHelper.sin(rLegUpper.rotateAngleX) * 5)); rArmLower.setRotationPoint(1F, 19.5F + (MathHelper.cos(rArmUpper.rotateAngleX) * 5), -3F - (5 + MathHelper.sin(rArmUpper.rotateAngleX) * 5)); lArmLower.setRotationPoint(-1F, 19.5F + (MathHelper.cos(lArmUpper.rotateAngleX) * 5), -3F - (5 + MathHelper.sin(lArmUpper.rotateAngleX) * 5)); lLegLower.setRotationPoint(-1F, 12F + (MathHelper.cos(lLegUpper.rotateAngleX) * 5), -3F - (5 + MathHelper.sin(lLegUpper.rotateAngleX) * 5)); rLegLower.rotateAngleX = rLegUpper.rotateAngleX - 0.6981317F; rArmLower.rotateAngleX = rArmUpper.rotateAngleX + 0.6981317F; lLegLower.rotateAngleX = lLegUpper.rotateAngleX - 0.6981317F; lArmLower.rotateAngleX = lArmUpper.rotateAngleX + 0.6981317F; } else { body.setRotationPoint(0F, 16F, 0F); body.rotateAngleY = 3.141593F; body.rotateAngleX = 0F; lLegUpper.setRotationPoint(-1F, 14F, -3.5F); rLegUpper.setRotationPoint(1F, 14F, -3.5F); rArmUpper.setRotationPoint(1F, 14F, 3.5F); lArmUpper.setRotationPoint(-1F, 14F, 3.5F); tailBase.setRotationPoint(0F, 15F, 3.5F); tailBase.rotateAngleX = 0F; tailBase.rotateAngleY = 3.141593F; tailBase.rotateAngleZ = 0F; tailMid.setRotationPoint(0F, 11F, 3.5F); tailMid.rotateAngleX = 0F; tailMid.rotateAngleY = 3.141593F; tailMid.rotateAngleZ = 0F; tailTop.setRotationPoint(0F, 9F, 3.5F); tailTop.rotateAngleX = 0F; tailTop.rotateAngleY = 3.141593F; tailTop.rotateAngleZ = 0F; Face.setRotationPoint(0F, 15F, -5F); Head.setRotationPoint(0F, 15F, -5F); rLegUpper.rotateAngleX = MathHelper.cos(f * 0.6662F) * .75F * f1; rArmUpper.rotateAngleX = MathHelper.cos(f * 0.6662F + 3.141593F) * .75F * f1; lLegUpper.rotateAngleX = MathHelper.cos(f * 0.6662F + 3.141593F) * .75F * f1; lArmUpper.rotateAngleX = MathHelper.cos(f * 0.6662F) * .75F * f1; rLegLower.setRotationPoint(1F, 19F - (5 - MathHelper.sin(rLegUpper.rotateAngleX + 1.570796327F) * 5), -3.5F - (MathHelper.cos(rLegUpper.rotateAngleX + 1.570796327F) * 5)); rArmLower.setRotationPoint(1F, 19F - (5 - MathHelper.sin(rArmUpper.rotateAngleX + 1.570796327F) * 5), 3.5F - (MathHelper.cos(rArmUpper.rotateAngleX + 1.570796327F) * 5)); lArmLower.setRotationPoint(-1F, 19F - (5 - MathHelper.sin(lArmUpper.rotateAngleX + 1.570796327F) * 5), 3.5F - (MathHelper.cos(lArmUpper.rotateAngleX + 1.570796327F) * 5)); lLegLower.setRotationPoint(-1F, 19F - (5 - MathHelper.sin(lLegUpper.rotateAngleX + 1.570796327F) * 5), -3.5F - (MathHelper.cos(lLegUpper.rotateAngleX + 1.570796327F) * 5)); rLegLower.rotateAngleX = rLegUpper.rotateAngleX; rArmLower.rotateAngleX = rArmUpper.rotateAngleX; lLegLower.rotateAngleX = lLegUpper.rotateAngleX; lArmLower.rotateAngleX = lArmUpper.rotateAngleX; tailBase.rotateAngleX = MathHelper.cos(f * 0.6662F) * .50F * f1; tailBase.rotateAngleZ = MathHelper.cos(f * 0.6662F) * .50F * f1; tailMid.setRotationPoint(0F - (MathHelper.cos(tailBase.rotateAngleZ + ((float) Math.PI) / 2F) * 3), 11F + (3 - MathHelper.sin(tailBase.rotateAngleX + ((float) Math.PI) / 2F) * 3), 3.5F - (MathHelper.cos(tailBase.rotateAngleX + ((float) Math.PI) / 2F) * 3)); tailMid.rotateAngleX = tailBase.rotateAngleX + MathHelper.cos(f * 0.6662F) * .75F * f1; tailMid.rotateAngleZ = tailBase.rotateAngleZ + MathHelper.cos(f * 0.6662F) * .75F * f1; tailTop.setRotationPoint(0F - (MathHelper.cos(tailMid.rotateAngleZ + ((float) Math.PI) / 2F) * 2), 9F + (2 - MathHelper.sin(tailMid.rotateAngleX + ((float) Math.PI) / 2F) * 2), 3.5F - (MathHelper.cos(tailMid.rotateAngleX + ((float) Math.PI) / 2F) * 2)); tailTop.rotateAngleX = tailMid.rotateAngleX + MathHelper.cos(f * 0.6662F) * 1.75F * f1; tailTop.rotateAngleZ = tailMid.rotateAngleX + MathHelper.cos(f * 0.6662F) * 1.75F * f1; herps = 0; } } }