package minefantasy.mf2.client.render.block;
import minefantasy.mf2.block.tileentity.TileEntityForge;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;
/**
*
* @author Anonymous Productions
*
* Sources are provided for educational reasons. though small bits of
* code, or methods can be used in your own creations.
*/
public class ModelForge extends ModelBase
{
// fields
ModelRenderer Back;
ModelRenderer Right;
ModelRenderer cornerBR;
ModelRenderer Left;
ModelRenderer Base;
ModelRenderer front;
ModelRenderer cornerBL;
ModelRenderer cornerFR;
ModelRenderer cornerFL;
ModelRenderer fuel;
public ModelForge()
{
textureWidth = 64;
textureHeight = 64;
Back = new ModelRenderer(this, 0, 0);
Back.addBox(-6F, -6F, -8F, 12, 7, 2);
Back.setRotationPoint(0F, 22F, 0F);
Back.setTextureSize(64, 64);
Back.mirror = true;
setRotation(Back, 0F, 1.570796F, 0F);
Right = new ModelRenderer(this, 0, 0);
Right.addBox(-6F, -8F, -8F, 12, 7, 2);
Right.setRotationPoint(0F, 24F, 0F);
Right.setTextureSize(64, 64);
Right.mirror = true;
setRotation(Right, 0F, 3.154392F, 0F);
cornerBR = new ModelRenderer(this, 0, 9);
cornerBR.addBox(-8F, -7F, -8F, 2, 6, 2);
cornerBR.setRotationPoint(0F, 24F, 0F);
cornerBR.setTextureSize(64, 64);
cornerBR.mirror = true;
setRotation(cornerBR, 0F, 1.570796F, 0F);
Left = new ModelRenderer(this, 0, 0);
Left.addBox(-6F, -6F, -8F, 12, 7, 2);
Left.setRotationPoint(0F, 22F, 0F);
Left.setTextureSize(64, 64);
Left.mirror = true;
setRotation(Left, 0F, 0F, 0F);
Base = new ModelRenderer(this, 0, 15);
Base.addBox(-8F, 1F, -8F, 16, 1, 16);
Base.setRotationPoint(0F, 22F, 0F);
Base.setTextureSize(64, 64);
Base.mirror = true;
setRotation(Base, 0F, 0F, 0F);
front = new ModelRenderer(this, 0, 0);
front.addBox(-6F, -8F, -8F, 12, 7, 2);
front.setRotationPoint(0F, 24F, 0F);
front.setTextureSize(64, 64);
front.mirror = true;
setRotation(front, 0F, -1.570796F, 0F);
cornerBL = new ModelRenderer(this, 0, 9);
cornerBL.addBox(6F, -5F, -8F, 2, 6, 2);
cornerBL.setRotationPoint(0F, 22F, 0F);
cornerBL.setTextureSize(64, 64);
cornerBL.mirror = true;
setRotation(cornerBL, 0F, 1.570796F, 0F);
cornerFR = new ModelRenderer(this, 0, 9);
cornerFR.addBox(-8F, -7F, 6F, 2, 6, 2);
cornerFR.setRotationPoint(0F, 24F, 0F);
cornerFR.setTextureSize(64, 64);
cornerFR.mirror = true;
setRotation(cornerFR, 0F, 1.570796F, 0F);
cornerFL = new ModelRenderer(this, 0, 9);
cornerFL.addBox(6F, -7F, 6F, 2, 6, 2);
cornerFL.setRotationPoint(0F, 24F, 0F);
cornerFL.setTextureSize(64, 64);
cornerFL.mirror = true;
setRotation(cornerFL, 0F, 1.570796F, 0F);
fuel = new ModelRenderer(this, 32, 0);
fuel.addBox(-8F, -1F, -8F, 16, 0, 16);
fuel.addBox(-8F, -0.5F, -8F, 16, 0, 16);
fuel.addBox(-8F, -0F, -8F, 16, 0, 16);
fuel.setRotationPoint(0F, 18.5F, 0F);
fuel.setTextureSize(64, 64);
fuel.mirror = true;
setRotation(fuel, 0F, 0F, 0F);
}
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);
Back.render(f5);
Right.render(f5);
cornerBR.render(f5);
Left.render(f5);
Base.render(f5);
front.render(f5);
cornerBL.render(f5);
cornerFR.render(f5);
cornerFL.render(f5);
fuel.render(f5);
}
private void setRotation(ModelRenderer model, float x, float y, float z)
{
model.rotateAngleX = x;
model.rotateAngleY = y;
model.rotateAngleZ = z;
}
public void renderModel(TileEntityForge forge, float f, boolean hasFuel, float height)
{
boolean[] sides = forge.showSides();
if (sides[0])
front.render(f);
if (sides[1])
Left.render(f);
if (sides[2])
Right.render(f);
if (sides[3])
Back.render(f);
if (sides[3] || sides[2])
cornerBR.render(f);
if (sides[3] || sides[1])
cornerBL.render(f);
if (sides[0] || sides[2])
cornerFR.render(f);
if (sides[0] || sides[1])
cornerFL.render(f);
Base.render(f);
if(hasFuel)
{
fuel.offsetY = -height*0.3F +0.3F;
fuel.render(f);
}
}
}