/******************************************************************************* * 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 ModelShadowCreature extends ModelBase { public ModelRenderer Body; public ModelRenderer Head1; public ModelRenderer Tail1; public ModelRenderer Tail2; public ModelRenderer Tail3; public ModelRenderer Tail4; public ModelRenderer Tail5; public ModelRenderer Tail6; public ModelRenderer Tail7; public ModelRenderer LeftArm1; public ModelRenderer RightArm1; public ModelRenderer LeftArm2; public ModelRenderer RightArm2; public ModelShadowCreature() { textureWidth = 32; textureHeight = 32; Body = new ModelRenderer(this, 12, 22); Body.addBox(0F, 0F, 0F, 3, 3, 7); Body.setRotationPoint(-3F, 12F, -1F); Body.setTextureSize(32, 32); Body.mirror = true; setRotation(Body, 0F, 0F, 0F); Head1 = new ModelRenderer(this, 0, 0); Head1.addBox(-3F, -5F, -3F, 5, 5, 5); Head1.setRotationPoint(-1F, 12F, 0F); Head1.setTextureSize(32, 32); Head1.mirror = true; setRotation(Head1, 0F, 0F, 0F); Tail1 = new ModelRenderer(this, 18, 15); Tail1.addBox(0F, 0F, 0F, 2, 2, 5); Tail1.setRotationPoint(-2.466667F, 12.5F, 6F); Tail1.setTextureSize(32, 32); Tail1.mirror = true; setRotation(Tail1, -0.3717861F, 0F, 0F); Tail2 = new ModelRenderer(this, 26, 12); Tail2.addBox(0F, 0F, 0F, 1, 1, 2); Tail2.setRotationPoint(-2F, 14F, 9F); Tail2.setTextureSize(32, 32); Tail2.mirror = true; setRotation(Tail2, 1.115358F, 0F, 0F); Tail3 = new ModelRenderer(this, 23, 7); Tail3.addBox(0F, 0F, 0F, 3, 1, 1); Tail3.setRotationPoint(-1F, 14.5F, 9F); Tail3.setTextureSize(32, 32); Tail3.mirror = true; setRotation(Tail3, -0.4089647F, 0F, 0F); Tail4 = new ModelRenderer(this, 23, 7); Tail4.addBox(0F, 0F, 0F, 3, 1, 1); Tail4.setRotationPoint(-1F, 13.5F, 7F); Tail4.setTextureSize(32, 32); Tail4.mirror = true; setRotation(Tail4, -0.4089647F, 0F, 0F); Tail5 = new ModelRenderer(this, 23, 7); Tail5.addBox(0F, 0F, 0F, 3, 1, 1); Tail5.setRotationPoint(-5F, 14.5F, 9F); Tail5.setTextureSize(32, 32); Tail5.mirror = true; setRotation(Tail5, -0.4089647F, 0F, 0F); Tail6 = new ModelRenderer(this, 23, 7); Tail6.addBox(0F, 0F, 0F, 3, 1, 1); Tail6.setRotationPoint(-5F, 13.5F, 7F); Tail6.setTextureSize(32, 32); Tail6.mirror = true; setRotation(Tail6, -0.4089647F, 0F, 0F); Tail7 = new ModelRenderer(this, 26, 12); Tail7.addBox(0F, 0F, 0F, 1, 1, 2); Tail7.setRotationPoint(-2F, 13F, 7F); Tail7.setTextureSize(32, 32); Tail7.mirror = true; setRotation(Tail7, 1.115358F, 0F, 0F); LeftArm1 = new ModelRenderer(this, 11, 19); LeftArm1.addBox(0F, 0F, 0F, 2, 1, 1); LeftArm1.setRotationPoint(0F, 13F, 0F); LeftArm1.setTextureSize(32, 32); LeftArm1.mirror = true; setRotation(LeftArm1, 0F, 0F, 0F); RightArm1 = new ModelRenderer(this, 11, 19); RightArm1.addBox(0F, 0F, 0F, 2, 1, 1); RightArm1.setRotationPoint(-5F, 13F, 0F); RightArm1.setTextureSize(32, 32); RightArm1.mirror = true; setRotation(RightArm1, 0F, 0F, 0F); LeftArm2 = new ModelRenderer(this, 0, 22); LeftArm2.addBox(0F, 0F, -5F, 1, 1, 5); LeftArm2.setRotationPoint(1F, 13F, 0F); LeftArm2.setTextureSize(32, 32); LeftArm2.mirror = true; setRotation(LeftArm2, 0F, 0F, 0F); RightArm2 = new ModelRenderer(this, 0, 22); RightArm2.addBox(0F, 0F, -5F, 1, 1, 5); RightArm2.setRotationPoint(-5F, 13F, 0F); RightArm2.setTextureSize(32, 32); RightArm2.mirror = true; setRotation(RightArm2, 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); Head1.render(f5); Tail1.render(f5); Tail2.render(f5); Tail3.render(f5); Tail4.render(f5); Tail5.render(f5); Tail6.render(f5); Tail7.render(f5); LeftArm1.render(f5); RightArm1.render(f5); LeftArm2.render(f5); RightArm2.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) { Head1.rotateAngleY = par4 / (180F / (float)Math.PI); Head1.rotateAngleX = par5 / (180F / (float)Math.PI); RightArm2.rotateAngleX = MathHelper.cos(par1 * 0.6662F + (float)Math.PI) * 2.0F * par2 * 0.5F; LeftArm2.rotateAngleX = MathHelper.cos(par1 * 0.6662F) * 2.0F * par2 * 0.5F; RightArm2.rotateAngleZ = 0.0F; LeftArm2.rotateAngleZ = 0.0F; } }