package com.arkcraft.module.creature.client.model; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.entity.Entity; public class ModelSabertooth extends ModelBase { ModelRenderer mainbody; ModelRenderer legbaseFR; ModelRenderer legbaseFL; ModelRenderer secondbody; ModelRenderer neck; ModelRenderer legFR; ModelRenderer footFR; ModelRenderer legFL; ModelRenderer footFL; ModelRenderer thirdbody; ModelRenderer secondbody2; ModelRenderer secondbodyunder; ModelRenderer tailbase; ModelRenderer legbaseBL; ModelRenderer legbaseBR; ModelRenderer thirdbody2; ModelRenderer tail; ModelRenderer tail2; ModelRenderer tail3; ModelRenderer tail4; ModelRenderer legBL; ModelRenderer leg2BL; ModelRenderer footBL; ModelRenderer legBR; ModelRenderer leg2BR; ModelRenderer footBR; ModelRenderer neck2; ModelRenderer underneck; ModelRenderer head; ModelRenderer upjaw; ModelRenderer bottomjaw; ModelRenderer earL; ModelRenderer earR; ModelRenderer nose; ModelRenderer toothbaseL; ModelRenderer toothbaseR; ModelRenderer nose2; ModelRenderer toothL; ModelRenderer toothR; public ModelSabertooth() { this.textureWidth = 512; this.textureHeight = 512; this.footFR = new ModelRenderer(this, 466, 121); this.footFR.setRotationPoint(-1.0F, 16.71F, -2.86F); this.footFR.addBox(0.0F, 0.0F, 0.0F, 8, 4, 10, 0.0F); this.setRotateAngle(footFR, 0.14870205226991687F, 0.0F, 0.0F); this.secondbody2 = new ModelRenderer(this, 111, 7); this.secondbody2.setRotationPoint(1.5F, -2.7F, 7.37F); this.secondbody2.addBox(0.0F, 0.0F, 0.0F, 15, 18, 11, 0.0F); this.setRotateAngle(secondbody2, -0.26703537555513246F, 0.0F, 0.0F); this.toothbaseL = new ModelRenderer(this, 5, 78); this.toothbaseL.setRotationPoint(8.0F, 5.0F, 0.4F); this.toothbaseL.addBox(0.0F, 0.0F, 0.0F, 1, 5, 2, 0.0F); this.setRotateAngle(toothbaseL, 0.30019663134302466F, 0.0F, 0.0F); this.legBL = new ModelRenderer(this, 417, 222); this.legBL.setRotationPoint(1.0F, 11.26F, 2.83F); this.legBL.addBox(0.0F, 0.0F, 0.0F, 6, 6, 14, 0.0F); this.setRotateAngle(legBL, -0.34609879067047555F, 0.0F, 0.0F); this.leg2BL = new ModelRenderer(this, 428, 250); this.leg2BL.setRotationPoint(0.0F, 3.86F, 9.47F); this.leg2BL.addBox(0.0F, 0.0F, 0.0F, 6, 11, 5, 0.0F); this.setRotateAngle(leg2BL, 0.43545964837258516F, 0.0F, 0.0F); this.footBR = new ModelRenderer(this, 417, 120); this.footBR.setRotationPoint(-1.0F, 9.95F, -5.34F); this.footBR.addBox(0.0F, 0.0F, 0.0F, 8, 4, 10, 0.0F); this.setRotateAngle(footBR, 0.14870205226991687F, 0.0F, 0.0F); this.legFL = new ModelRenderer(this, 423, 85); this.legFL.setRotationPoint(1.0F, 13.45F, 2.13F); this.legFL.addBox(0.0F, 0.0F, 0.0F, 6, 17, 8, 0.0F); this.setRotateAngle(legFL, -0.4754276882432553F, 0.0F, 0.0F); this.legbaseBL = new ModelRenderer(this, 417, 181); this.legbaseBL.setRotationPoint(12.0F, 1.42F, 13.5F); this.legbaseBL.addBox(0.0F, 0.0F, 0.0F, 8, 17, 12, 0.0F); this.setRotateAngle(legbaseBL, -0.11903145498601327F, 0.0F, 0.0F); this.thirdbody2 = new ModelRenderer(this, 182, 0); this.thirdbody2.setRotationPoint(1.0F, -1.79F, -0.19F); this.thirdbody2.addBox(0.0F, 0.0F, 0.0F, 14, 2, 27, 0.0F); this.setRotateAngle(thirdbody2, -0.06841690667817772F, 0.0F, 0.0F); this.tailbase = new ModelRenderer(this, 250, 60); this.tailbase.setRotationPoint(5.0F, 0.11F, 25.24F); this.tailbase.addBox(0.0F, 0.0F, 0.0F, 6, 6, 6, 0.0F); this.setRotateAngle(tailbase, -0.3438298626428829F, 0.0F, 0.0F); this.toothR = new ModelRenderer(this, 17, 89); this.toothR.setRotationPoint(0.0F, 4.47F, 0.17F); this.toothR.addBox(0.0F, 0.0F, 0.0F, 1, 3, 1, 0.0F); this.setRotateAngle(toothR, 0.44802601898694444F, 0.0F, 0.0F); this.earR = new ModelRenderer(this, 47, 79); this.earR.setRotationPoint(-9.1F, -0.4F, -6.09F); this.earR.addBox(0.0F, 0.0F, 0.0F, 5, 4, 2, 0.0F); this.setRotateAngle(earR, -0.5654866776461628F, 0.0F, -0.5454153912482279F); this.nose = new ModelRenderer(this, 49, 56); this.nose.setRotationPoint(2.0F, -1.9F, -0.4F); this.nose.addBox(0.0F, 0.0F, 0.0F, 6, 5, 11, 0.0F); this.setRotateAngle(nose, 0.09546951008408983F, 0.0F, 0.0F); this.footFL = new ModelRenderer(this, 417, 120); this.footFL.setRotationPoint(-1.0F, 16.71F, -2.86F); this.footFL.addBox(0.0F, 0.0F, 0.0F, 8, 4, 10, 0.0F); this.setRotateAngle(footFL, 0.14870205226991687F, 0.0F, 0.0F); this.toothbaseR = new ModelRenderer(this, 15, 78); this.toothbaseR.setRotationPoint(1.0F, 5.0F, 0.4F); this.toothbaseR.addBox(0.0F, 0.0F, 0.0F, 1, 5, 2, 0.0F); this.setRotateAngle(toothbaseR, 0.30019663134302466F, 0.0F, 0.0F); this.tail2 = new ModelRenderer(this, 250, 100); this.tail2.setRotationPoint(1.0F, 0.32F, 6.17F); this.tail2.addBox(0.0F, 0.0F, 0.0F, 2, 2, 16, 0.0F); this.setRotateAngle(tail2, -0.21362830044410594F, 0.0F, 0.0F); this.upjaw = new ModelRenderer(this, 0, 55); this.upjaw.setRotationPoint(-5.0F, 6.195234177486194F, -21.09181060122682F); this.upjaw.addBox(0.0F, 0.0F, 0.0F, 10, 5, 12, 0.0F); this.legFR = new ModelRenderer(this, 470, 84); this.legFR.setRotationPoint(1.0F, 13.45F, 2.13F); this.legFR.addBox(0.0F, 0.0F, 0.0F, 6, 17, 8, 0.0F); this.setRotateAngle(legFR, -0.4754276882432553F, 0.0F, 0.0F); this.nose2 = new ModelRenderer(this, 51, 57); this.nose2.setRotationPoint(1.0F, 0.39419750051090574F, 0.43140317924495264F); this.nose2.addBox(0.0F, 0.0F, 0.0F, 4, 5, 10, 0.0F); this.setRotateAngle(nose2, 0.36128315516282616F, 0.0F, 0.0F); this.head = new ModelRenderer(this, 353, 2); this.head.setRotationPoint(0.0F, -0.07F, -8.89F); this.head.addBox(-7.0F, 0.16F, -12.05F, 14, 14, 12, 0.0F); this.setRotateAngle(head, -0.07714355293814937F, 0.0F, 0.0F); this.secondbody = new ModelRenderer(this, 102, 0); this.secondbody.setRotationPoint(2.0F, 2.0F, 13.9F); this.secondbody.addBox(0.0F, 0.0F, 0.0F, 18, 18, 18, 0.0F); this.setRotateAngle(secondbody, -0.09442231253289324F, 0.0F, 0.0F); this.earL = new ModelRenderer(this, 29, 79); this.earL.setRotationPoint(4.8F, -2.8F, -6.09F); this.earL.addBox(0.0F, 0.0F, 0.0F, 5, 4, 2, 0.0F); this.setRotateAngle(earL, -0.5654866776461628F, 0.0F, 0.5454153912482279F); this.tail4 = new ModelRenderer(this, 250, 147); this.tail4.setRotationPoint(0.0F, 0.09F, 11.05F); this.tail4.addBox(0.0F, 0.0F, 0.0F, 2, 2, 12, 0.0F); this.setRotateAngle(tail4, 0.4482005519121438F, 0.0F, 0.0F); this.legBR = new ModelRenderer(this, 417, 222); this.legBR.setRotationPoint(1.0F, 11.26F, 2.83F); this.legBR.addBox(0.0F, 0.0F, 0.0F, 6, 6, 14, 0.0F); this.setRotateAngle(legBR, -0.34260813216648683F, 0.0F, 0.0F); this.mainbody = new ModelRenderer(this, 2, 0); this.mainbody.setRotationPoint(-11.0F, -15.0F, -21.0F); this.mainbody.addBox(1.5F, 0.0F, 0.0F, 19, 22, 22, 0.0F); this.setRotateAngle(mainbody, 0.03490658503988659F, -0.0F, 0.0F); this.secondbodyunder = new ModelRenderer(this, 116, 6); this.secondbodyunder.setRotationPoint(1.5F, 11.996339847402526F, 8.828806842695242F); this.secondbodyunder.addBox(0.0F, 0.0F, 0.0F, 15, 7, 8, 0.0F); this.setRotateAngle(secondbodyunder, 0.16403100040700766F, 0.0F, 0.0F); this.thirdbody = new ModelRenderer(this, 181, 0); this.thirdbody.setRotationPoint(1.0F, 0.5226256258925552F, 8.045300644174858F); this.thirdbody.addBox(0.0F, 0.0F, 0.0F, 16, 16, 27, 0.0F); this.setRotateAngle(thirdbody, -0.05948577821254731F, 0.0F, 0.0F); this.tail = new ModelRenderer(this, 250, 79); this.tail.setRotationPoint(1.0F, 0.58F, 5.17F); this.tail.addBox(0.0F, 0.0F, 0.0F, 4, 4, 8, 0.0F); this.setRotateAngle(tail, -0.40893064374227134F, 0.0F, 0.0F); this.leg2BR = new ModelRenderer(this, 396, 250); this.leg2BR.setRotationPoint(0.0F, 3.86F, 9.47F); this.leg2BR.addBox(0.0F, 0.0F, 0.0F, 6, 11, 5, 0.0F); this.setRotateAngle(leg2BR, 0.43545964837258516F, 0.0F, 0.0F); this.footBL = new ModelRenderer(this, 417, 120); this.footBL.setRotationPoint(-1.0F, 9.95F, -5.34F); this.footBL.addBox(0.0F, 0.0F, 0.0F, 8, 4, 10, 0.0F); this.setRotateAngle(footBL, 0.14870205226991687F, 0.0F, 0.0F); this.bottomjaw = new ModelRenderer(this, 94, 56); this.bottomjaw.setRotationPoint(0.0F, 10.695234177486201F, -11.691810601226814F); this.bottomjaw.addBox(-3.0F, 0.04F, -8.12F, 6, 3, 8, 0.0F); this.setRotateAngle(bottomjaw, -0.06359470714748088F, 0.0F, 0.0F); this.neck2 = new ModelRenderer(this, 280, 4); this.neck2.setRotationPoint(-0.5F, -1.22F, -4.02F); this.neck2.addBox(-6.0F, -0.2F, -12.12F, 13, 4, 12, 0.0F); this.setRotateAngle(neck2, 0.16580627893946132F, 0.0F, 0.0F); this.toothL = new ModelRenderer(this, 5, 89); this.toothL.setRotationPoint(0.0F, 4.47F, 0.17F); this.toothL.addBox(0.0F, 0.0F, 0.0F, 1, 3, 1, 0.0F); this.setRotateAngle(toothL, 0.44802601898694444F, 0.0F, 0.0F); this.legbaseFL = new ModelRenderer(this, 417, 48); this.legbaseFL.setRotationPoint(16.0F, 6.0F, 2.0F); this.legbaseFL.addBox(0.0F, 0.0F, 0.0F, 8, 17, 12, 0.0F); this.setRotateAngle(legbaseFL, 0.2918190509334519F, 0.0F, 0.0F); this.neck = new ModelRenderer(this, 278, 4); this.neck.setRotationPoint(11.0F, 0.1F, 4.5F); this.neck.addBox(-8.0F, 0.01F, -11.89F, 16, 16, 12, 0.0F); this.setRotateAngle(neck, 0.33545228223331014F, 0.0F, 0.0F); this.tail3 = new ModelRenderer(this, 250, 123); this.tail3.setRotationPoint(0.0F, 0.32F, 14.82F); this.tail3.addBox(0.0F, 0.0F, 0.0F, 2, 2, 12, 0.0F); this.setRotateAngle(tail3, 0.6379178416039274F, 0.0F, 0.0F); this.legbaseFR = new ModelRenderer(this, 463, 48); this.legbaseFR.setRotationPoint(-2.0F, 6.0F, 2.0F); this.legbaseFR.addBox(0.0F, 0.0F, 0.0F, 8, 17, 12, 0.0F); this.setRotateAngle(legbaseFR, 0.2918190509334519F, 0.0F, 0.0F); this.legbaseBR = new ModelRenderer(this, 417, 181); this.legbaseBR.setRotationPoint(-4.0F, 1.42F, 13.38F); this.legbaseBR.addBox(0.0F, 0.0F, 0.0F, 8, 18, 12, 0.0F); this.setRotateAngle(legbaseBR, -0.11903145498601327F, 0.0F, 0.0F); this.underneck = new ModelRenderer(this, 284, 3); this.underneck.setRotationPoint(1.0F, 15.335157874150148F, -5.433500986922754F); this.underneck.addBox(-7.0F, -0.18F, -12.07F, 12, 6, 12, 0.0F); this.setRotateAngle(underneck, -0.6771877497737998F, 0.0F, 0.0F); this.legFR.addChild(this.footFR); this.secondbody.addChild(this.secondbody2); this.upjaw.addChild(this.toothbaseL); this.legbaseBL.addChild(this.legBL); this.legBL.addChild(this.leg2BL); this.leg2BR.addChild(this.footBR); this.legbaseFL.addChild(this.legFL); this.thirdbody.addChild(this.legbaseBL); this.thirdbody.addChild(this.thirdbody2); this.thirdbody.addChild(this.tailbase); this.toothbaseR.addChild(this.toothR); this.head.addChild(this.earR); this.upjaw.addChild(this.nose); this.legFL.addChild(this.footFL); this.upjaw.addChild(this.toothbaseR); this.tail.addChild(this.tail2); this.head.addChild(this.upjaw); this.legbaseFR.addChild(this.legFR); this.nose.addChild(this.nose2); this.neck.addChild(this.head); this.mainbody.addChild(this.secondbody); this.head.addChild(this.earL); this.tail3.addChild(this.tail4); this.legbaseBR.addChild(this.legBR); this.secondbody.addChild(this.secondbodyunder); this.secondbody.addChild(this.thirdbody); this.tailbase.addChild(this.tail); this.legBR.addChild(this.leg2BR); this.leg2BL.addChild(this.footBL); this.head.addChild(this.bottomjaw); this.neck.addChild(this.neck2); this.toothbaseL.addChild(this.toothL); this.mainbody.addChild(this.legbaseFL); this.mainbody.addChild(this.neck); this.tail2.addChild(this.tail3); this.mainbody.addChild(this.legbaseFR); this.thirdbody.addChild(this.legbaseBR); this.neck.addChild(this.underneck); } @Override public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { // For scaling the model double scale = 0.7; GlStateManager.pushMatrix(); GlStateManager.translate(0, this.mainbody.rotationPointY * f5 * scale, this.mainbody.rotationPointZ * f5 * scale); GlStateManager.translate(this.mainbody.rotationPointX * f5 * scale, this.mainbody.rotationPointY * f5 * scale, this.mainbody.rotationPointZ * f5 * scale); GlStateManager.scale(1D * scale, 0.98D * scale, 1D * scale); GlStateManager.translate(-this.mainbody.rotationPointX * f5 * scale, -this.mainbody.rotationPointY * f5 * scale, -this.mainbody.rotationPointZ * f5 * scale); this.mainbody.render(f5); GlStateManager.popMatrix(); } /** * This is a helper function from Tabula to set the rotation of model parts */ public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { modelRenderer.rotateAngleX = x; modelRenderer.rotateAngleY = y; modelRenderer.rotateAngleZ = z; } }