/*******************************************************************************
* 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 ModelShadowMonster extends ModelBase
{
public ModelRenderer Head;
public ModelRenderer Body1;
public ModelRenderer Body2;
public ModelRenderer Body3;
public ModelRenderer Lshoulder1;
public ModelRenderer Rshoulder1;
public ModelRenderer Lshoulder2;
public ModelRenderer Rshoulder2;
public ModelRenderer Larm1;
public ModelRenderer Larm2;
public ModelRenderer Rarm1;
public ModelRenderer Rarm2;
public ModelRenderer Back1;
public ModelRenderer Back2;
public ModelRenderer Back3;
public ModelRenderer Back4;
public ModelRenderer Back5;
public ModelRenderer Back6;
public ModelRenderer Back7;
public ModelRenderer Back8;
public ModelRenderer Back9;
public ModelShadowMonster()
{
textureWidth = 64;
textureHeight = 32;
Head = new ModelRenderer(this, 0, 0);
Head.addBox(-3.5F, -7F, -3.5F, 7, 7, 7);
Head.setRotationPoint(0F, 0F, 0F);
Head.setTextureSize(64, 32);
Head.mirror = true;
setRotation(Head, 0F, 0F, 0F);
Body1 = new ModelRenderer(this, 20, 14);
Body1.addBox(-1.5F, -1F, -1.5F, 3, 10, 3);
Body1.setRotationPoint(0F, 0F, 0F);
Body1.setTextureSize(64, 32);
Body1.mirror = true;
setRotation(Body1, 0.4461433F, 0F, 0F);
Body2 = new ModelRenderer(this, 28, 0);
Body2.addBox(0F, 0F, 0F, 3, 6, 3);
Body2.setRotationPoint(-1.5F, 7F, 2F);
Body2.setTextureSize(64, 32);
Body2.mirror = true;
setRotation(Body2, 0F, 0F, 0F);
Body3 = new ModelRenderer(this, 28, 0);
Body3.addBox(0F, 0F, 0F, 3, 6, 3);
Body3.setRotationPoint(-1.5F, 11F, 2.5F);
Body3.setTextureSize(64, 32);
Body3.mirror = true;
setRotation(Body3, -0.5948578F, 0F, 0F);
Lshoulder1 = new ModelRenderer(this, 40, 0);
Lshoulder1.addBox(0F, 0F, 0F, 3, 2, 2);
Lshoulder1.setRotationPoint(1.5F, 0F, 0F);
Lshoulder1.setTextureSize(64, 32);
Lshoulder1.mirror = true;
setRotation(Lshoulder1, 0F, 0F, 0F);
Rshoulder1 = new ModelRenderer(this, 40, 0);
Rshoulder1.addBox(0F, 0F, 0F, 3, 2, 2);
Rshoulder1.setRotationPoint(-4.5F, 0F, 0F);
Rshoulder1.setTextureSize(64, 32);
Rshoulder1.mirror = true;
setRotation(Rshoulder1, 0F, 0F, 0F);
Lshoulder2 = new ModelRenderer(this, 40, 0);
Lshoulder2.addBox(0F, 0F, 0F, 3, 2, 2);
Lshoulder2.setRotationPoint(1.5F, 5F, 2F);
Lshoulder2.setTextureSize(64, 32);
Lshoulder2.mirror = true;
setRotation(Lshoulder2, 0F, 0F, 0F);
Rshoulder2 = new ModelRenderer(this, 40, 0);
Rshoulder2.addBox(0F, 0F, 0F, 3, 2, 2);
Rshoulder2.setRotationPoint(-4.5F, 5F, 2F);
Rshoulder2.setTextureSize(64, 32);
Rshoulder2.mirror = true;
setRotation(Rshoulder2, 0F, 0F, 0F);
Larm1 = new ModelRenderer(this, 0, 14);
Larm1.addBox(0F, -1F, -7F, 2, 2, 8);
Larm1.setRotationPoint(4.5F, 1F, 1F);
Larm1.setTextureSize(64, 32);
Larm1.mirror = true;
setRotation(Larm1, 0F, 0F, 0F);
Larm2 = new ModelRenderer(this, 0, 14);
Larm2.addBox(0F, -1F, -7F, 2, 2, 8);
Larm2.setRotationPoint(4.5F, 6F, 3F);
Larm2.setTextureSize(64, 32);
Larm2.mirror = true;
setRotation(Larm2, 0F, 0F, 0F);
Rarm1 = new ModelRenderer(this, 0, 14);
Rarm1.addBox(-2F, -1F, -7F, 2, 2, 8);
Rarm1.setRotationPoint(-4.5F, 1F, 1F);
Rarm1.setTextureSize(64, 32);
Rarm1.mirror = true;
setRotation(Rarm1, 0F, 0F, 0F);
Rarm2 = new ModelRenderer(this, 0, 14);
Rarm2.addBox(-2F, -1F, -7F, 2, 2, 8);
Rarm2.setRotationPoint(-4.5F, 6F, 3F);
Rarm2.setTextureSize(64, 32);
Rarm2.mirror = true;
setRotation(Rarm2, 0F, 0F, 0F);
Back1 = new ModelRenderer(this, 50, 0);
Back1.addBox(0F, 0F, 0F, 1, 2, 1);
Back1.setRotationPoint(-0.5F, 2F, 4F);
Back1.setTextureSize(64, 32);
Back1.mirror = true;
setRotation(Back1, -1.041002F, 0F, 0F);
Back2 = new ModelRenderer(this, 50, 0);
Back2.addBox(0F, 0F, 0F, 1, 2, 1);
Back2.setRotationPoint(-0.5F, 4F, 5F);
Back2.setTextureSize(64, 32);
Back2.mirror = true;
setRotation(Back2, -1.041002F, 0F, 0F);
Back3 = new ModelRenderer(this, 50, 0);
Back3.addBox(0F, 0F, 0F, 1, 2, 1);
Back3.setRotationPoint(-0.5F, 0F, 3F);
Back3.setTextureSize(64, 32);
Back3.mirror = true;
setRotation(Back3, -1.041002F, 0F, 0F);
Back4 = new ModelRenderer(this, 50, 0);
Back4.addBox(0F, 0F, 0F, 1, 1, 2);
Back4.setRotationPoint(-0.5F, 8F, 4.5F);
Back4.setTextureSize(64, 32);
Back4.mirror = true;
setRotation(Back4, 0F, 0F, 0F);
Back5 = new ModelRenderer(this, 50, 0);
Back5.addBox(0F, 0F, 0F, 1, 1, 2);
Back5.setRotationPoint(-0.5F, 10F, 4.5F);
Back5.setTextureSize(64, 32);
Back5.mirror = true;
setRotation(Back5, 0F, 0F, 0F);
Back6 = new ModelRenderer(this, 50, 0);
Back6.addBox(0F, 0F, 0F, 1, 1, 2);
Back6.setRotationPoint(-0.5F, 12F, 4.5F);
Back6.setTextureSize(64, 32);
Back6.mirror = true;
setRotation(Back6, 0F, 0F, 0F);
Back7 = new ModelRenderer(this, 50, 0);
Back7.addBox(0F, 0F, 0F, 1, 2, 1);
Back7.setRotationPoint(-0.5F, 14F, 3.5F);
Back7.setTextureSize(64, 32);
Back7.mirror = true;
setRotation(Back7, 1.00382F, 0F, 0F);
Back8 = new ModelRenderer(this, 50, 0);
Back8.addBox(0F, 0F, 0F, 1, 2, 1);
Back8.setRotationPoint(-0.5F, 15.5F, 2.5F);
Back8.setTextureSize(64, 32);
Back8.mirror = true;
setRotation(Back8, 1.00382F, 0F, 0F);
Back9 = new ModelRenderer(this, 50, 0);
Back9.addBox(0F, 0F, 0F, 1, 2, 1);
Back9.setRotationPoint(-0.5F, 17F, 1.5F);
Back9.setTextureSize(64, 32);
Back9.mirror = true;
setRotation(Back9, 1.00382F, 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);
Head.render(f5);
Body1.render(f5);
Body2.render(f5);
Body3.render(f5);
Lshoulder1.render(f5);
Rshoulder1.render(f5);
Lshoulder2.render(f5);
Rshoulder2.render(f5);
Larm1.render(f5);
Larm2.render(f5);
Rarm1.render(f5);
Rarm2.render(f5);
Back1.render(f5);
Back2.render(f5);
Back3.render(f5);
Back4.render(f5);
Back5.render(f5);
Back6.render(f5);
Back7.render(f5);
Back8.render(f5);
Back9.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)
{
Head.rotateAngleY = par4 / (180F / (float)Math.PI);
Head.rotateAngleX = par5 / (180F / (float)Math.PI);
Rarm1.rotateAngleX = MathHelper.cos(par1 * 0.6662F + (float)Math.PI) * 2.0F * par2 * 0.5F;
Larm1.rotateAngleX = MathHelper.cos(par1 * 0.6662F) * 2.0F * par2 * 0.5F;
Rarm2.rotateAngleX = MathHelper.cos(par1 * 0.6662F + (float)Math.PI) * 2.0F * par2 * 0.5F * 0.1F;
Larm2.rotateAngleX = MathHelper.cos(par1 * 0.6662F) * 2.0F * par2 * 0.5F * 0.1F;
Rarm1.rotateAngleZ = 0.0F;
Larm1.rotateAngleZ = 0.0F;
Rarm2.rotateAngleZ = 0.0F;
Larm2.rotateAngleZ = 0.0F;
}
}