package com.bioxx.tfc2.rendering.model;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.entity.Entity;
import net.minecraft.util.math.MathHelper;
import com.bioxx.tfc2.api.types.Gender;
import com.bioxx.tfc2.entity.EntitySabertooth;
public class ModelSabertooth extends ModelBase
{
ModelRenderer HEAD;
ModelRenderer BODY;
ModelRenderer LegLEFTREAR;
ModelRenderer LegLEFTFRONT;
ModelRenderer LegRIGHTFRONT;
ModelRenderer LegRIGHTREAR;
public ModelSabertooth()
{
textureWidth = 64;
textureHeight = 32;
setTextureOffset("HEAD.EarLeft", 0, 0);
setTextureOffset("HEAD.EarRight", 0, 0);
setTextureOffset("HEAD.Head", 0, 24);
setTextureOffset("HEAD.Snout", 24, 0);
setTextureOffset("HEAD.Jaw", 36, 0);
setTextureOffset("HEAD.FangLeft", 0, 3);
setTextureOffset("HEAD.FangRight", 0, 3);
setTextureOffset("HEAD.Jowls", 6, 0);
setTextureOffset("BODY.Torso", 20, 8);
setTextureOffset("BODY.Mane", 0, 6);
setTextureOffset("BODY.Tail", 48, 10);
setTextureOffset("LegLEFTREAR.LegRearLeftUpper", 52, 0);
setTextureOffset("LegLEFTREAR.LegRearLeftLower", 54, 11);
setTextureOffset("LegLEFTREAR.LegRearLeftPaw", 52, 19);
setTextureOffset("LegLEFTFRONT.LegFrontRightUpper", 52, 0);
setTextureOffset("LegLEFTFRONT.LegFrontRightLower", 54, 11);
setTextureOffset("LegLEFTFRONT.LegFrontRightPaw", 52, 19);
setTextureOffset("LegRIGHTFRONT.LegFrontRightUpper", 52, 0);
setTextureOffset("LegRIGHTFRONT.LegFrontRightLower", 54, 11);
setTextureOffset("LegRIGHTFRONT.LegFrontRightPaw", 52, 19);
setTextureOffset("LegRIGHTREAR.LegRearRightUpper", 52, 0);
setTextureOffset("LegRIGHTREAR.LegRearRightLower", 54, 11);
setTextureOffset("LegRIGHTREAR.LegRearRightPaw", 52, 19);
HEAD = new ModelRenderer(this, "HEAD");
HEAD.setRotationPoint(0F, 10F, -1F);
setRotation(HEAD, 0F, 0F, 0F);
HEAD.mirror = true;
HEAD.addBox("EarLeft", 1.5F, -3F, -2F, 2, 2, 1);
HEAD.addBox("EarRight", -3.5F, -3F, -2F, 2, 2, 1);
HEAD.addBox("Head", -2.5F, -2F, -4F, 5, 4, 4);
HEAD.addBox("Snout", -1.5F, -0.5F, -7F, 3, 2, 3);
HEAD.addBox("Jaw", -1F, 1.5F, -7F, 2, 1, 4);
HEAD.addBox("FangLeft", 1F, 1F, -7F, 1, 4, 1);
HEAD.addBox("FangRight", -2F, 1F, -7F, 1, 4, 1);
HEAD.addBox("Jowls", -2.5F, 2F, -4F, 5, 2, 4);
BODY = new ModelRenderer(this, "BODY");
BODY.setRotationPoint(-1F, 11F, 14F);
setRotation(BODY, 0F, 0F, 0F);
BODY.mirror = true;
BODY.addBox("Torso", -2F, -3F, -13F, 6, 8, 16);
BODY.addBox("Mane", -3F, -3.5F, -15F, 8, 8, 10);
BODY.addBox("Tail", 0.5F, -2F, 3F, 1, 13, 1);
LegLEFTREAR = new ModelRenderer(this, "LegLEFTREAR");
LegLEFTREAR.setRotationPoint(3F, 11F, 15F);
setRotation(LegLEFTREAR, 0F, 0F, 0F);
LegLEFTREAR.mirror = true;
LegLEFTREAR.addBox("LegRearLeftUpper", 0F, -1F, -2.5F, 2, 7, 4);
LegLEFTREAR.addBox("LegRearLeftLower", 0F, 6F, -1F, 2, 6, 2);
LegLEFTREAR.addBox("LegRearLeftPaw", -0.5F, 12F, -2F, 3, 1, 3);
LegLEFTFRONT = new ModelRenderer(this, "LegLEFTFRONT");
LegLEFTFRONT.setRotationPoint(3.5F, 11F, 3F);
setRotation(LegLEFTFRONT, 0F, 0F, 0F);
LegLEFTFRONT.mirror = true;
LegLEFTFRONT.addBox("LegFrontRightUpper", 0F, -1F, -1.5F, 2, 7, 4);
LegLEFTFRONT.addBox("LegFrontRightLower", 0F, 6F, -1F, 2, 6, 2);
LegLEFTFRONT.addBox("LegFrontRightPaw", -0.5F, 12F, -2F, 3, 1, 3);
LegRIGHTFRONT = new ModelRenderer(this, "LegRIGHTFRONT");
LegRIGHTFRONT.setRotationPoint(-3.5F, 11F, 3F);
setRotation(LegRIGHTFRONT, 0F, 0F, 0F);
LegRIGHTFRONT.addBox("LegFrontRightUpper", -2F, -1F, -1.5F, 2, 7, 4);
LegRIGHTFRONT.addBox("LegFrontRightLower", -2F, 6F, -1F, 2, 6, 2);
LegRIGHTFRONT.addBox("LegFrontRightPaw", -2.5F, 12F, -2F, 3, 1, 3);
LegRIGHTREAR = new ModelRenderer(this, "LegRIGHTREAR");
LegRIGHTREAR.setRotationPoint(-3F, 11F, 15F);
setRotation(LegRIGHTREAR, 0F, 0F, 0F);
LegRIGHTREAR.addBox("LegRearRightUpper", -2F, -1F, -2.5F, 2, 7, 4);
LegRIGHTREAR.addBox("LegRearRightLower", -2F, 6F, -1F, 2, 6, 2);
LegRIGHTREAR.addBox("LegRearRightPaw", -2.5F, 12F, -2F, 3, 1, 3);
}
private void setRotation(ModelRenderer model, float x, float y, float z)
{
model.rotateAngleX = x;
model.rotateAngleY = y;
model.rotateAngleZ = z;
}
/**
* Sets the models various rotation angles then renders the model.
*/
@Override
public void render(Entity entityIn, float p_78088_2_, float p_78088_3_, float p_78088_4_, float p_78088_5_, float p_78088_6_, float scale)
{
this.setRotationAngles(p_78088_2_, p_78088_3_, p_78088_4_, p_78088_5_, p_78088_6_, scale, entityIn);
if(((EntitySabertooth)entityIn).getGender() == Gender.Male)
{
GlStateManager.scale(1.5, 1.5, 1.5);
GlStateManager.translate(0.0, -0.5, -0.5);
}
else
{
GlStateManager.scale(1.4, 1.4, 1.4);
GlStateManager.translate(0.0, -0.44, -0.5);
}
HEAD.render(scale);
BODY.render(scale);
LegLEFTREAR.render(scale);
LegLEFTFRONT.render(scale);
LegRIGHTFRONT.render(scale);
LegRIGHTREAR.render(scale);
}
/**
* Sets the model's various rotation angles. For bipeds, par1 and par2 are used for animating the movement of arms
* and legs, where par1 represents the time(so that arms and legs swing back and forth) and par2 represents how
* "far" arms and legs can swing at most.
*/
@Override
public void setRotationAngles(float p_78087_1_, float p_78087_2_, float p_78087_3_, float p_78087_4_, float p_78087_5_, float p_78087_6_, Entity p_78087_7_)
{
float f6 = (180F / (float)Math.PI);
this.HEAD.rotateAngleX = p_78087_5_ / (180F / (float)Math.PI);
this.HEAD.rotateAngleY = p_78087_4_ / (180F / (float)Math.PI);
this.LegLEFTFRONT.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.6662F) * 1.0F * p_78087_2_;
this.LegLEFTREAR.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.4662F + (float)Math.PI) * 1.0F * p_78087_2_;
this.LegRIGHTFRONT.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.6662F + (float)Math.PI) * 1.0F * p_78087_2_;
this.LegRIGHTREAR.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.4662F) * 1.0F * p_78087_2_;
}
}