package me.tyler15555.minibosses.client; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; import net.minecraft.util.MathHelper; public class ModelCrawler extends ModelBase { ModelRenderer Body; ModelRenderer RearEnd; ModelRenderer Leg8; ModelRenderer Leg6; ModelRenderer Leg4; ModelRenderer Leg2; ModelRenderer Leg7; ModelRenderer Leg5; ModelRenderer Leg3; ModelRenderer Leg1; ModelRenderer Bridge; ModelRenderer Torso; ModelRenderer Head; ModelRenderer Arm1; ModelRenderer Arm2; ModelRenderer Shape1; ModelRenderer Shape2; public ModelCrawler() { textureWidth = 64; textureHeight = 32; Body = new ModelRenderer(this, 0, 0); Body.addBox(-3F, -3F, -3F, 6, 6, 6); Body.setRotationPoint(0F, 20F, 0F); Body.setTextureSize(64, 32); Body.mirror = true; setRotation(Body, 0F, 0F, 0F); RearEnd = new ModelRenderer(this, 0, 12); RearEnd.addBox(-5F, -4F, -6F, 10, 8, 12); RearEnd.setRotationPoint(0F, 20F, 9F); RearEnd.setTextureSize(64, 32); RearEnd.mirror = true; setRotation(RearEnd, 0F, 0F, 0F); Leg8 = new ModelRenderer(this, 18, 0); Leg8.addBox(-1F, -1F, -1F, 16, 2, 2); Leg8.setRotationPoint(4F, 20F, -1F); Leg8.setTextureSize(64, 32); Leg8.mirror = true; setRotation(Leg8, 0F, 0.5759587F, 0.1919862F); Leg6 = new ModelRenderer(this, 18, 0); Leg6.addBox(-1F, -1F, -1F, 16, 2, 2); Leg6.setRotationPoint(4F, 20F, 0F); Leg6.setTextureSize(64, 32); Leg6.mirror = true; setRotation(Leg6, 0F, 0.2792527F, 0.1919862F); Leg4 = new ModelRenderer(this, 18, 0); Leg4.addBox(-1F, -1F, -1F, 16, 2, 2); Leg4.setRotationPoint(4F, 20F, 1F); Leg4.setTextureSize(64, 32); Leg4.mirror = true; setRotation(Leg4, 0F, -0.2792527F, 0.1919862F); Leg2 = new ModelRenderer(this, 18, 0); Leg2.addBox(-1F, -1F, -1F, 16, 2, 2); Leg2.setRotationPoint(4F, 20F, 2F); Leg2.setTextureSize(64, 32); Leg2.mirror = true; setRotation(Leg2, 0F, -0.5759587F, 0.1919862F); Leg7 = new ModelRenderer(this, 18, 0); Leg7.addBox(-15F, -1F, -1F, 16, 2, 2); Leg7.setRotationPoint(-4F, 20F, -1F); Leg7.setTextureSize(64, 32); Leg7.mirror = true; setRotation(Leg7, 0F, -0.5759587F, -0.1919862F); Leg5 = new ModelRenderer(this, 18, 0); Leg5.addBox(-15F, -1F, -1F, 16, 2, 2); Leg5.setRotationPoint(-4F, 20F, 0F); Leg5.setTextureSize(64, 32); Leg5.mirror = true; setRotation(Leg5, 0F, -0.2792527F, -0.1919862F); Leg3 = new ModelRenderer(this, 18, 0); Leg3.addBox(-15F, -1F, -1F, 16, 2, 2); Leg3.setRotationPoint(-4F, 20F, 1F); Leg3.setTextureSize(64, 32); Leg3.mirror = true; setRotation(Leg3, 0F, 0.2792527F, -0.1919862F); Leg1 = new ModelRenderer(this, 18, 0); Leg1.addBox(-15F, -1F, -1F, 16, 2, 2); Leg1.setRotationPoint(-4F, 20F, 2F); Leg1.setTextureSize(64, 32); Leg1.mirror = true; setRotation(Leg1, 0F, 0.5759587F, -0.1919862F); Bridge = new ModelRenderer(this, 0, 0); Bridge.addBox(0F, 0F, 0F, 4, 4, 11); Bridge.setRotationPoint(-2F, 18F, -14F); Bridge.setTextureSize(64, 32); Bridge.mirror = true; setRotation(Bridge, 0F, 0F, 0F); Torso = new ModelRenderer(this, 0, 0); Torso.addBox(0F, 0F, 0F, 4, 17, 4); Torso.setRotationPoint(-2F, 1F, -14F); Torso.setTextureSize(64, 32); Torso.mirror = true; setRotation(Torso, 0F, 0F, 0F); Head = new ModelRenderer(this, 0, 0); Head.addBox(0F, 0F, 0F, 6, 6, 6); Head.setRotationPoint(-3F, -5F, -16F); Head.setTextureSize(64, 32); Head.mirror = true; setRotation(Head, 0F, 0F, 0F); Arm1 = new ModelRenderer(this, 0, 0); Arm1.addBox(0F, 0F, 0F, 4, 4, 11); Arm1.setRotationPoint(2F, 4F, -21F); Arm1.setTextureSize(64, 32); Arm1.mirror = true; setRotation(Arm1, 0F, 0F, 0F); Arm2 = new ModelRenderer(this, 0, 0); Arm2.addBox(0F, 0F, 0F, 4, 4, 11); Arm2.setRotationPoint(-6F, 4F, -21F); Arm2.setTextureSize(64, 32); Arm2.mirror = true; setRotation(Arm2, 0F, 0F, 0F); Shape1 = new ModelRenderer(this, 0, 0); Shape1.addBox(0F, 0F, 0F, 4, 4, 11); Shape1.setRotationPoint(2F, 11F, -21F); Shape1.setTextureSize(64, 32); Shape1.mirror = true; setRotation(Shape1, 0F, 0F, 0F); Shape2 = new ModelRenderer(this, 0, 0); Shape2.addBox(0F, 0F, 0F, 4, 4, 11); Shape2.setRotationPoint(-6F, 11F, -20F); Shape2.setTextureSize(64, 32); Shape2.mirror = true; setRotation(Shape2, 0F, 0F, 0F); } @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); RearEnd.render(f5); Leg8.render(f5); Leg6.render(f5); Leg4.render(f5); Leg2.render(f5); Leg7.render(f5); Leg5.render(f5); Leg3.render(f5); Leg1.render(f5); Bridge.render(f5); Torso.render(f5); Head.render(f5); Arm1.render(f5); Arm2.render(f5); Shape1.render(f5); Shape2.render(f5); } private void setRotation(ModelRenderer model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; model.rotateAngleZ = z; } @Override public void setRotationAngles(float time, float moveSpeed, float par3, float yaw, float pitch, float par6, Entity entity) { super.setRotationAngles(time, moveSpeed, par3, yaw, pitch, par6, entity); float f6 = ((float)Math.PI / 4F); this.Leg1.rotateAngleZ = -f6; this.Leg2.rotateAngleZ = f6; this.Leg3.rotateAngleZ = -f6 * 0.74F; this.Leg4.rotateAngleZ = f6 * 0.74F; this.Leg5.rotateAngleZ = -f6 * 0.74F; this.Leg6.rotateAngleZ = f6 * 0.74F; this.Leg7.rotateAngleZ = -f6; this.Leg8.rotateAngleZ = f6; float f7 = -0.0F; float f8 = 0.3926991F; this.Leg1.rotateAngleY = f8 * 2.0F + f7; this.Leg2.rotateAngleY = -f8 * 2.0F - f7; this.Leg3.rotateAngleY = f8 * 1.0F + f7; this.Leg4.rotateAngleY = -f8 * 1.0F - f7; this.Leg5.rotateAngleY = -f8 * 1.0F + f7; this.Leg6.rotateAngleY = f8 * 1.0F - f7; this.Leg7.rotateAngleY = -f8 * 2.0F + f7; this.Leg8.rotateAngleY = f8 * 2.0F - f7; float f9 = -(MathHelper.cos(time * 0.6662F * 2.0F + 0.0F) * 0.4F) * moveSpeed; float f10 = -(MathHelper.cos(time * 0.6662F * 2.0F + (float)Math.PI) * 0.4F) * moveSpeed; float f11 = -(MathHelper.cos(time * 0.6662F * 2.0F + ((float)Math.PI / 2F)) * 0.4F) * moveSpeed; float f12 = -(MathHelper.cos(time * 0.6662F * 2.0F + ((float)Math.PI * 3F / 2F)) * 0.4F) * moveSpeed; float f13 = Math.abs(MathHelper.sin(time * 0.6662F + 0.0F) * 0.4F) * moveSpeed; float f14 = Math.abs(MathHelper.sin(time * 0.6662F + (float)Math.PI) * 0.4F) * moveSpeed; float f15 = Math.abs(MathHelper.sin(time * 0.6662F + ((float)Math.PI / 2F)) * 0.4F) * moveSpeed; float f16 = Math.abs(MathHelper.sin(time * 0.6662F + ((float)Math.PI * 3F / 2F)) * 0.4F) * moveSpeed; this.Leg1.rotateAngleY += f9; this.Leg2.rotateAngleY += -f9; this.Leg3.rotateAngleY += f10; this.Leg4.rotateAngleY += -f10; this.Leg5.rotateAngleY += f11; this.Leg6.rotateAngleY += -f11; this.Leg7.rotateAngleY += f12; this.Leg8.rotateAngleY += -f12; this.Leg1.rotateAngleZ += f13; this.Leg2.rotateAngleZ += -f13; this.Leg3.rotateAngleZ += f14; this.Leg4.rotateAngleZ += -f14; this.Leg5.rotateAngleZ += f15; this.Leg6.rotateAngleZ += -f15; this.Leg7.rotateAngleZ += f16; this.Leg8.rotateAngleZ += -f16; } }