/******************************************************************************* * AbyssalCraft * Copyright (c) 2012 - 2017 Shinoow. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v3 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/lgpl-3.0.txt * * Contributors: * Shinoow - implementation ******************************************************************************/ package com.shinoow.abyssalcraft.client.model.entity; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; import net.minecraft.util.math.MathHelper; public class ModelChagarothSpawn extends ModelBase { public ModelRenderer body; public ModelRenderer smallspike1; public ModelRenderer smallspike2; public ModelRenderer smallspike3; public ModelRenderer smallspike4; public ModelRenderer bigspike1; public ModelRenderer bigspike2; public ModelRenderer bigspike3; public ModelRenderer bigspike4; public ModelRenderer leftleg1; public ModelRenderer leftleg2; public ModelRenderer leftleg3; public ModelRenderer backleg1; public ModelRenderer backleg2; public ModelRenderer backleg3; public ModelRenderer frontleg1; public ModelRenderer frontleg2; public ModelRenderer frontleg3; public ModelRenderer rightleg1; public ModelRenderer rightleg2; public ModelRenderer rightleg3; public ModelChagarothSpawn() { textureWidth = 128; textureHeight = 64; body = new ModelRenderer(this, 12, 22); body.addBox(-3F, -3F, -3F, 6, 6, 6); body.setRotationPoint(0F, 21F, 0F); body.setTextureSize(128, 64); body.mirror = true; setRotation(body, 0F, 0F, 0F); smallspike1 = new ModelRenderer(this, 30, 12); smallspike1.addBox(0F, -4F, 0F, 1, 5, 1); smallspike1.setRotationPoint(2F, 18F, -3F); smallspike1.setTextureSize(128, 64); smallspike1.mirror = true; setRotation(smallspike1, 0.3346075F, -0.7435722F, 0F); smallspike2 = new ModelRenderer(this, 30, 12); smallspike2.addBox(0F, -4F, 0F, 1, 5, 1); smallspike2.setRotationPoint(-3F, 18F, -2F); smallspike2.setTextureSize(128, 64); smallspike2.mirror = true; setRotation(smallspike2, 0.3346145F, 0.8922867F, 0F); smallspike3 = new ModelRenderer(this, 30, 12); smallspike3.addBox(0F, -4F, 0F, 1, 5, 1); smallspike3.setRotationPoint(-2F, 18F, 3F); smallspike3.setTextureSize(128, 64); smallspike3.mirror = true; setRotation(smallspike3, 0.3346075F, 2.41661F, 0F); smallspike4 = new ModelRenderer(this, 30, 12); smallspike4.addBox(0F, -4F, 0F, 1, 5, 1); smallspike4.setRotationPoint(3F, 18F, 2F); smallspike4.setTextureSize(128, 64); smallspike4.mirror = true; setRotation(smallspike4, 0.3346075F, -2.379431F, 0F); bigspike1 = new ModelRenderer(this, 24, 11); bigspike1.addBox(-1F, -5F, -1F, 2, 5, 2); bigspike1.setRotationPoint(0F, 21F, 2F); bigspike1.setTextureSize(128, 64); bigspike1.mirror = true; setRotation(bigspike1, -0.8922867F, 0F, 0F); bigspike2 = new ModelRenderer(this, 24, 11); bigspike2.addBox(-1F, -5F, -1F, 2, 5, 2); bigspike2.setRotationPoint(0F, 21F, -2F); bigspike2.setTextureSize(128, 64); bigspike2.mirror = true; setRotation(bigspike2, 0.8922821F, 0F, 0F); bigspike3 = new ModelRenderer(this, 24, 11); bigspike3.addBox(-1F, -5F, -1F, 2, 5, 2); bigspike3.setRotationPoint(-2F, 21F, 0F); bigspike3.setTextureSize(128, 64); bigspike3.mirror = true; setRotation(bigspike3, 0F, 0F, -0.8922821F); bigspike4 = new ModelRenderer(this, 24, 11); bigspike4.addBox(-1F, -5F, -1F, 2, 5, 2); bigspike4.setRotationPoint(2F, 21F, 0F); bigspike4.setTextureSize(128, 64); bigspike4.mirror = true; setRotation(bigspike4, 0F, 0F, 0.8922821F); leftleg1 = new ModelRenderer(this, 0, 0); leftleg1.addBox(0F, 0F, 0F, 5, 1, 1); leftleg1.setRotationPoint(3F, 23F, -2.5F); leftleg1.setTextureSize(128, 64); leftleg1.mirror = true; setRotation(leftleg1, 0F, 0F, 0F); leftleg2 = new ModelRenderer(this, 0, 0); leftleg2.addBox(0F, 0F, 0F, 5, 1, 1); leftleg2.setRotationPoint(3F, 23F, -0.5F); leftleg2.setTextureSize(128, 64); leftleg2.mirror = true; setRotation(leftleg2, 0F, 0F, 0F); leftleg3 = new ModelRenderer(this, 0, 0); leftleg3.addBox(0F, 0F, 0F, 5, 1, 1); leftleg3.setRotationPoint(3F, 23F, 1.5F); leftleg3.setTextureSize(128, 64); leftleg3.mirror = true; setRotation(leftleg3, 0F, 0F, 0F); backleg1 = new ModelRenderer(this, 0, 0); backleg1.addBox(0F, 0F, 0F, 1, 1, 5); backleg1.setRotationPoint(1.5F, 23F, 3F); backleg1.setTextureSize(128, 64); backleg1.mirror = true; setRotation(backleg1, 0F, 0F, 0F); backleg2 = new ModelRenderer(this, 0, 0); backleg2.addBox(0F, 0F, 0F, 1, 1, 5); backleg2.setRotationPoint(-0.5F, 23F, 3F); backleg2.setTextureSize(128, 64); backleg2.mirror = true; setRotation(backleg2, 0F, 0F, 0F); backleg3 = new ModelRenderer(this, 0, 0); backleg3.addBox(0F, 0F, 0F, 1, 1, 5); backleg3.setRotationPoint(-2.5F, 23F, 3F); backleg3.setTextureSize(128, 64); backleg3.mirror = true; setRotation(backleg3, 0F, 0F, 0F); frontleg1 = new ModelRenderer(this, 0, 0); frontleg1.addBox(0F, 0F, -5F, 1, 1, 5); frontleg1.setRotationPoint(1.5F, 23F, -3F); frontleg1.setTextureSize(128, 64); frontleg1.mirror = true; setRotation(frontleg1, 0F, 0F, 0F); frontleg2 = new ModelRenderer(this, 0, 0); frontleg2.addBox(0F, 0F, -5F, 1, 1, 5); frontleg2.setRotationPoint(-0.5F, 23F, -3F); frontleg2.setTextureSize(128, 64); frontleg2.mirror = true; setRotation(frontleg2, 0F, 0F, 0F); frontleg3 = new ModelRenderer(this, 0, 0); frontleg3.addBox(0F, 0F, -5F, 1, 1, 5); frontleg3.setRotationPoint(-2.5F, 23F, -3F); frontleg3.setTextureSize(128, 64); frontleg3.mirror = true; setRotation(frontleg3, 0F, 0F, 0F); rightleg1 = new ModelRenderer(this, 0, 0); rightleg1.addBox(-5F, 0F, 0F, 5, 1, 1); rightleg1.setRotationPoint(-3F, 23F, 1.5F); rightleg1.setTextureSize(128, 64); rightleg1.mirror = true; setRotation(rightleg1, 0F, 0F, 0F); rightleg2 = new ModelRenderer(this, 0, 0); rightleg2.addBox(-5F, 0F, 0F, 5, 1, 1); rightleg2.setRotationPoint(-3F, 23F, -0.5F); rightleg2.setTextureSize(128, 64); rightleg2.mirror = true; setRotation(rightleg2, 0F, 0F, 0F); rightleg3 = new ModelRenderer(this, 0, 0); rightleg3.addBox(-5F, 0F, 0F, 5, 1, 1); rightleg3.setRotationPoint(-3F, 23F, -2.5F); rightleg3.setTextureSize(128, 64); rightleg3.mirror = true; setRotation(rightleg3, 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); smallspike1.render(f5); smallspike2.render(f5); smallspike3.render(f5); smallspike4.render(f5); bigspike1.render(f5); bigspike2.render(f5); bigspike3.render(f5); bigspike4.render(f5); leftleg1.render(f5); leftleg2.render(f5); leftleg3.render(f5); backleg1.render(f5); backleg2.render(f5); backleg3.render(f5); frontleg1.render(f5); frontleg2.render(f5); frontleg3.render(f5); rightleg1.render(f5); rightleg2.render(f5); rightleg3.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 par1, float par2, float par3, float par4, float par5, float par6, Entity par7Entity) { frontleg1.rotateAngleY = MathHelper.cos(par1 * 0.6662F + (float)Math.PI) * 2.0F * par2 * 0.5F; frontleg2.rotateAngleY = MathHelper.cos(par1 * 0.6662F + (float)Math.PI) * 2.0F * par2 * 0.5F; frontleg3.rotateAngleY = MathHelper.cos(par1 * 0.6662F + (float)Math.PI) * 2.0F * par2 * 0.5F; leftleg1.rotateAngleY = MathHelper.cos(par1 * 0.6662F) * 2.0F * par2 * 0.5F; leftleg2.rotateAngleY = MathHelper.cos(par1 * 0.6662F) * 2.0F * par2 * 0.5F; leftleg3.rotateAngleY = MathHelper.cos(par1 * 0.6662F) * 2.0F * par2 * 0.5F; backleg1.rotateAngleY = MathHelper.cos(par1 * 0.6662F) * 1.4F * par2; backleg2.rotateAngleY = MathHelper.cos(par1 * 0.6662F) * 1.4F * par2; backleg3.rotateAngleY = MathHelper.cos(par1 * 0.6662F) * 1.4F * par2; rightleg1.rotateAngleY = MathHelper.cos(par1 * 0.6662F + (float)Math.PI) * 1.4F * par2; rightleg2.rotateAngleY = MathHelper.cos(par1 * 0.6662F + (float)Math.PI) * 1.4F * par2; rightleg3.rotateAngleY = MathHelper.cos(par1 * 0.6662F + (float)Math.PI) * 1.4F * par2; } }