package pneumaticCraft.client.model;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;
import pneumaticCraft.common.tileentity.TileEntityCompressedIronBlock;
import pneumaticCraft.lib.Textures;
public class ModelHeatSink extends ModelBase implements IBaseModel{
//fields
ModelRenderer Shape1;
ModelRenderer Shape2;
ModelRenderer Shape3;
ModelRenderer Shape4;
ModelRenderer Shape5;
ModelRenderer Shape6;
ModelRenderer Shape7;
ModelRenderer Shape8;
ModelRenderer Shape9;
ModelRenderer Shape10;
ModelRenderer Shape11;
ModelRenderer Shape12;
public ModelHeatSink(){
textureWidth = 64;
textureHeight = 64;
Shape1 = new ModelRenderer(this, 0, 0);
Shape1.addBox(0F, 0F, 0F, 16, 1, 16);
Shape1.setRotationPoint(-8F, 23F, -8F);
Shape1.setTextureSize(64, 64);
Shape1.mirror = true;
setRotation(Shape1, 0F, 0F, 0F);
Shape2 = new ModelRenderer(this, 0, 17);
Shape2.addBox(0F, 0F, 0F, 1, 7, 16);
Shape2.setRotationPoint(7F, 16F, -8F);
Shape2.setTextureSize(64, 64);
Shape2.mirror = true;
setRotation(Shape2, 0F, 0F, 0F);
Shape3 = new ModelRenderer(this, 0, 17);
Shape3.addBox(0F, 0F, 0F, 1, 7, 16);
Shape3.setRotationPoint(-5F, 16F, -8F);
Shape3.setTextureSize(64, 64);
Shape3.mirror = true;
setRotation(Shape3, 0F, 0F, 0F);
Shape4 = new ModelRenderer(this, 0, 17);
Shape4.addBox(0F, 0F, 0F, 1, 7, 16);
Shape4.setRotationPoint(-8F, 16F, -8F);
Shape4.setTextureSize(64, 64);
Shape4.mirror = true;
setRotation(Shape4, 0F, 0F, 0F);
Shape5 = new ModelRenderer(this, 0, 17);
Shape5.addBox(0F, 0F, 0F, 1, 7, 16);
Shape5.setRotationPoint(-2F, 16F, -8F);
Shape5.setTextureSize(64, 64);
Shape5.mirror = true;
setRotation(Shape5, 0F, 0F, 0F);
Shape6 = new ModelRenderer(this, 0, 17);
Shape6.addBox(0F, 0F, 0F, 1, 7, 16);
Shape6.setRotationPoint(1F, 16F, -8F);
Shape6.setTextureSize(64, 64);
Shape6.mirror = true;
setRotation(Shape6, 0F, 0F, 0F);
Shape7 = new ModelRenderer(this, 0, 17);
Shape7.addBox(0F, 0F, 0F, 1, 7, 16);
Shape7.setRotationPoint(4F, 16F, -8F);
Shape7.setTextureSize(64, 64);
Shape7.mirror = true;
setRotation(Shape7, 0F, 0F, 0F);
Shape8 = new ModelRenderer(this, 0, 49);
Shape8.addBox(0F, 0F, 0F, 14, 5, 2);
Shape8.setRotationPoint(-7F, 18F, -1F);
Shape8.setTextureSize(64, 64);
Shape8.mirror = true;
setRotation(Shape8, 0F, 0F, 0F);
Shape9 = new ModelRenderer(this, 0, 40);
Shape9.addBox(0F, 0F, 0F, 14, 3, 1);
Shape9.setRotationPoint(-7F, 20F, -7F);
Shape9.setTextureSize(64, 64);
Shape9.mirror = true;
setRotation(Shape9, 0F, 0F, 0F);
Shape10 = new ModelRenderer(this, 0, 40);
Shape10.addBox(0F, 0F, 0F, 14, 3, 1);
Shape10.setRotationPoint(-7F, 20F, 6F);
Shape10.setTextureSize(64, 64);
Shape10.mirror = true;
setRotation(Shape10, 0F, 0F, 0F);
Shape11 = new ModelRenderer(this, 0, 44);
Shape11.addBox(0F, 0F, 0F, 14, 4, 1);
Shape11.setRotationPoint(-7F, 19F, 3F);
Shape11.setTextureSize(64, 64);
Shape11.mirror = true;
setRotation(Shape11, 0F, 0F, 0F);
Shape12 = new ModelRenderer(this, 0, 44);
Shape12.addBox(0F, 0F, 0F, 14, 4, 1);
Shape12.setRotationPoint(-7F, 19F, -4F);
Shape12.setTextureSize(64, 64);
Shape12.mirror = true;
setRotation(Shape12, 0F, 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);
Shape1.render(f5);
Shape2.render(f5);
Shape3.render(f5);
Shape4.render(f5);
Shape5.render(f5);
Shape6.render(f5);
Shape7.render(f5);
Shape8.render(f5);
Shape9.render(f5);
Shape10.render(f5);
Shape11.render(f5);
Shape12.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 renderStatic(float size, TileEntity te){
if(te != null) {
int heatLevel = ((TileEntityCompressedIronBlock)te).getHeatLevel();
double[] color = TileEntityCompressedIronBlock.getColorForHeatLevel(heatLevel);
GL11.glColor4d(color[0], color[1], color[2], 1);
GL11.glTranslated(0.5, 0.5, 0);
GL11.glRotated(90, 1, 0, 0);
GL11.glTranslated(-0.5, -1, -0.5);
}
Shape1.render(size);
Shape2.render(size);
Shape3.render(size);
Shape4.render(size);
Shape5.render(size);
Shape6.render(size);
Shape7.render(size);
Shape8.render(size);
Shape9.render(size);
Shape10.render(size);
Shape11.render(size);
Shape12.render(size);
}
@Override
public void renderDynamic(float size, TileEntity te, float partialTicks){
}
@Override
public ResourceLocation getModelTexture(TileEntity tile){
return Textures.MODEL_HEAT_SINK;
}
@Override
public boolean rotateModelBasedOnBlockMeta(){
return true;
}
}