package com.bioxx.tfc2.rendering.model;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;
import com.bioxx.tfc2.entity.EntityCart;
public class ModelCart extends ModelBase
{
//fields
ModelRenderer Cart;
ModelRenderer LeftWheel;
ModelRenderer RightWheel;
ModelRenderer CartBox;
public ModelCart()
{
textureWidth = 128;
textureHeight = 64;
setTextureOffset("CartBox.Bottom", 60, 0);
setTextureOffset("CartBox.RightWall", 0, 36);
setTextureOffset("CartBox.LeftWall", 0, 36);
setTextureOffset("CartBox.FrontWall", 30, 0);
setTextureOffset("CartBox.HandleRight", 45, 22);
setTextureOffset("CartBox.HandleLeft", 45, 22);
setTextureOffset("CartBox.HandleFront", 45, 19);
setTextureOffset("RightWheel.R4", 40, 26);
setTextureOffset("RightWheel.R3", 36, 25);
setTextureOffset("RightWheel.R2", 32, 24);
setTextureOffset("RightWheel.R1", 28, 23);
setTextureOffset("RightWheel.Mid", 16, 18);
setTextureOffset("RightWheel.L1", 12, 23);
setTextureOffset("RightWheel.L2", 8, 24);
setTextureOffset("RightWheel.L3", 4, 25);
setTextureOffset("RightWheel.L4", 0, 26);
setTextureOffset("LeftWheel.R1", 28, 23);
setTextureOffset("LeftWheel.R2", 32, 24);
setTextureOffset("LeftWheel.R3", 36, 25);
setTextureOffset("LeftWheel.R4", 40, 26);
setTextureOffset("LeftWheel.Mid", 16, 18);
setTextureOffset("LeftWheel.L1", 12, 23);
setTextureOffset("LeftWheel.L2", 8, 24);
setTextureOffset("LeftWheel.L3", 4, 25);
setTextureOffset("LeftWheel.L4", 0, 26);
Cart = new ModelRenderer(this, "Cart");
Cart.setRotationPoint(0F, 0F, 0F);
setRotation(Cart, 0F, 0F, 0F);
Cart.mirror = true;
CartBox = new ModelRenderer(this, "CartBox");
CartBox.setRotationPoint(0F, 17F, 0F);
setRotation(CartBox, 0F, 0F, 0F);
CartBox.mirror = true;
CartBox.addBox("Bottom", -8F, 0F, -9F, 16, 1, 18);
CartBox.addBox("RightWall", -8F, -6F, -9F, 1, 6, 18);
CartBox.addBox("LeftWall", 7F, -6F, -9F, 1, 6, 18);
CartBox.addBox("FrontWall", -7F, -6F, -9F, 14, 6, 1);
CartBox.addBox("HandleRight", -6F, 0F, -19F, 1, 1, 10);
CartBox.addBox("HandleLeft", 5F, 0F, -19F, 1, 1, 10);
CartBox.addBox("HandleFront", -5F, 0F, -19F, 10, 1, 1);
Cart.addChild(CartBox);
RightWheel = new ModelRenderer(this, "RightWheel");
RightWheel.setRotationPoint(-9F, 17.5F, 0F);
setRotation(RightWheel, 0F, 0F, 0F);
RightWheel.mirror = true;
RightWheel.addBox("R4", 0F, -2.5F, 5.5F, 1, 5, 1);
RightWheel.addBox("R3", 0F, -3.5F, 4.5F, 1, 7, 1);
RightWheel.addBox("R2", 0F, -4.5F, 3.5F, 1, 9, 1);
RightWheel.addBox("R1", 0F, -5.5F, 2.5F, 1, 11, 1);
RightWheel.addBox("Mid", 0F, -6.5F, -2.5F, 1, 13, 5);
RightWheel.addBox("L1", 0F, -5.5F, -3.5F, 1, 11, 1);
RightWheel.addBox("L2", 0F, -4.5F, -4.5F, 1, 9, 1);
RightWheel.addBox("L3", 0F, -3.5F, -5.5F, 1, 7, 1);
RightWheel.addBox("L4", 0F, -2.5F, -6.5F, 1, 5, 1);
Cart.addChild(RightWheel);
LeftWheel = new ModelRenderer(this, "LeftWheel");
LeftWheel.setRotationPoint(8F, 17.5F, 0F);
setRotation(LeftWheel, 0F, 0F, 0F);
LeftWheel.mirror = true;
LeftWheel.addBox("R4", 0F, -2.5F, 5.5F, 1, 5, 1);
LeftWheel.addBox("R1", 0F, -5.5F, 2.5F, 1, 11, 1);
LeftWheel.addBox("Mid", 0F, -6.5F, -2.5F, 1, 13, 5);
LeftWheel.addBox("R3", 0F, -3.5F, 4.5F, 1, 7, 1);
LeftWheel.addBox("R2", 0F, -4.5F, 3.5F, 1, 9, 1);
LeftWheel.addBox("L1", 0F, -5.5F, -3.5F, 1, 11, 1);
LeftWheel.addBox("L2", 0F, -4.5F, -4.5F, 1, 9, 1);
LeftWheel.addBox("L3", 0F, -3.5F, -5.5F, 1, 7, 1);
LeftWheel.addBox("L4", 0F, -2.5F, -6.5F, 1, 5, 1);
Cart.addChild(LeftWheel);
}
@Override
public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
{
render((EntityCart)entity, f, f1, f2, f3, f4, f5);
}
public void render(EntityCart 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);
if(entity.isBeingPulled() && entity.isMoving)
{
LeftWheel.rotateAngleX += 0.2*f;
RightWheel.rotateAngleX +=0.2*f;
}
if(!entity.isBeingPulled())
CartBox.rotateAngleX = (float)Math.toRadians(20);
else
CartBox.rotateAngleX = (float)Math.toRadians(-10);
Cart.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 f, float f1, float f2, float f3, float f4, float f5, Entity e)
{
super.setRotationAngles(f, f1, f2, f3, f4, f5, e);
}
}