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 ModelWatcher extends ModelBase { ModelRenderer Body; ModelRenderer Leg8; ModelRenderer Leg6; ModelRenderer Leg4; ModelRenderer Leg2; ModelRenderer Leg7; ModelRenderer Leg5; ModelRenderer Leg3; ModelRenderer Leg1; ModelRenderer upperBody; ModelRenderer Neck; ModelRenderer Shape2; public ModelWatcher() { textureWidth = 64; textureHeight = 32; Body = new ModelRenderer(this, 0, 0); Body.addBox(-3F, -3F, -3F, 6, 6, 11); Body.setRotationPoint(0F, 20F, -2F); Body.setTextureSize(64, 32); Body.mirror = true; setRotation(Body, 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); upperBody = new ModelRenderer(this, 0, 0); upperBody.addBox(0F, 0F, 0F, 3, 23, 3); upperBody.setRotationPoint(-1F, -7F, -2F); upperBody.setTextureSize(64, 32); upperBody.mirror = true; setRotation(upperBody, 0F, 0F, 0F); Neck = new ModelRenderer(this, 0, 0); Neck.addBox(0F, 0F, 0F, 3, 15, 3); Neck.setRotationPoint(-1F, -20.66667F, -7F); Neck.setTextureSize(64, 32); Neck.mirror = true; setRotation(Neck, 0.3490659F, 0F, 0F); Shape2 = new ModelRenderer(this, 0, 0); Shape2.addBox(0F, 0F, 0F, 6, 6, 6); Shape2.setRotationPoint(-3F, -27F, -9F); Shape2.setTextureSize(64, 32); Shape2.mirror = true; setRotation(Shape2, 0F, 0F, 0F); } 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); Leg8.render(f5); Leg6.render(f5); Leg4.render(f5); Leg2.render(f5); Leg7.render(f5); Leg5.render(f5); Leg3.render(f5); Leg1.render(f5); upperBody.render(f5); Neck.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; } public void setRotationAngles(float time, float moveSpeed, float par3, float yaw, float pitch, float f5, Entity entity) { super.setRotationAngles(time, moveSpeed, par3, yaw, pitch, f5, 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 * 3.0F + f7; this.Leg2.rotateAngleY = -f8 * 3.0F - f7; this.Leg3.rotateAngleY = f8 * 2.0F + f7; this.Leg4.rotateAngleY = -f8 * 2.0F - f7; this.Leg5.rotateAngleY = -f8 * 2.0F + f7; this.Leg6.rotateAngleY = f8 * 2.0F - f7; this.Leg7.rotateAngleY = -f8 * 3.0F + f7; this.Leg8.rotateAngleY = f8 * 3.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; } }