package minefantasy.client;
import minefantasy.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 lava;
ModelRenderer coal;
ModelRenderer Right;
ModelRenderer cornerBR;
ModelRenderer Left;
ModelRenderer Base;
ModelRenderer front;
ModelRenderer cornerBL;
ModelRenderer cornerFR;
ModelRenderer cornerFL;
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.mirror = true;
setRotation(Back, 0F, 1.570796F, 0F);
lava = new ModelRenderer(this, 32, 0);
coal = new ModelRenderer(this, 0, 44);
coal.addBox(-8F, -0.1F, -8F, 16, 0, 16);
coal.addBox(-8F, -0.5F, -8F, 16, 0, 16);
coal.addBox(-8F, -1.0F, -8F, 16, 0, 16);
lava.addBox(-8F, -1.5F, -8F, 16, 0, 16);
lava.setRotationPoint(0F, 22F, 0F);
coal.setRotationPoint(0F, 22F, 0F);
lava.mirror = true;
setRotation(lava, 0F, 0F, 0F);
Right = new ModelRenderer(this, 0, 0);
Right.addBox(-6F, -6F, 6F, 12, 7, 2);
Right.setRotationPoint(0F, 22F, 0F);
Right.mirror = true;
setRotation(Right, 0F, 0F, 0F);
cornerBR = new ModelRenderer(this, 0, 0);
cornerBR.addBox(-8F, -6F, -8F, 2, 7, 2);
cornerBR.setRotationPoint(0F, 22F, 0F);
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.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.mirror = true;
setRotation(Base, 0F, 0F, 0F);
front = new ModelRenderer(this, 0, 0);
front.addBox(-6F, -6F, 6F, 12, 7, 2);
front.setRotationPoint(0F, 22F, 0F);
front.mirror = true;
setRotation(front, 0F, 1.570796F, 0F);
cornerBL = new ModelRenderer(this, 0, 0);
cornerBL.addBox(6F, -6F, -8F, 2, 7, 2);
cornerBL.setRotationPoint(0F, 22F, 0F);
cornerBL.mirror = true;
setRotation(cornerBL, 0F, 1.570796F, 0F);
cornerFR = new ModelRenderer(this, 0, 0);
cornerFR.addBox(-8F, -6F, 6F, 2, 7, 2);
cornerFR.setRotationPoint(0F, 22F, 0F);
cornerFR.mirror = true;
setRotation(cornerFR, 0F, 1.570796F, 0F);
cornerFL = new ModelRenderer(this, 0, 0);
cornerFL.addBox(6F, -6F, 6F, 2, 7, 2);
cornerFL.setRotationPoint(0F, 22F, 0F);
cornerFL.mirror = true;
setRotation(cornerFL, 0F, 1.570796F, 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);
setRotationAngles(f, f1, f2, f3, f4, f5, entity);
Back.render(f5);
lava.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);
}
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 scale) {
boolean[] sides = forge.showSides();
if(sides[0])
front.render(scale);
if(sides[1])
Left.render(scale);
if(sides[2])
Right.render(scale);
if(sides[3])
Back.render(scale);
if(sides[3] || sides[2])
cornerBR.render(scale);
if(sides[3] || sides[1])
cornerBL.render(scale);
if(sides[0] || sides[2])
cornerFR.render(scale);
if(sides[0] || sides[1])
cornerFL.render(scale);
Base.render(scale);
if(forge.fuel > 0)
{
coal.render(scale);
}
if(forge.isBurning())
{
lava.render(scale);
}
}
}