001 package net.minecraft.client.renderer.tileentity;
002
003 import cpw.mods.fml.relauncher.Side;
004 import cpw.mods.fml.relauncher.SideOnly;
005 import net.minecraft.client.model.ModelChest;
006 import net.minecraft.tileentity.TileEntity;
007 import net.minecraft.tileentity.TileEntityEnderChest;
008 import org.lwjgl.opengl.GL11;
009 import org.lwjgl.opengl.GL12;
010
011 @SideOnly(Side.CLIENT)
012 public class TileEntityEnderChestRenderer extends TileEntitySpecialRenderer
013 {
014 /** The Ender Chest Chest's model. */
015 private ModelChest theEnderChestModel = new ModelChest();
016
017 /**
018 * Helps to render Ender Chest.
019 */
020 public void renderEnderChest(TileEntityEnderChest par1TileEntityEnderChest, double par2, double par4, double par6, float par8)
021 {
022 int var9 = 0;
023
024 if (par1TileEntityEnderChest.func_70309_m())
025 {
026 var9 = par1TileEntityEnderChest.getBlockMetadata();
027 }
028
029 this.bindTextureByName("/item/enderchest.png");
030 GL11.glPushMatrix();
031 GL11.glEnable(GL12.GL_RESCALE_NORMAL);
032 GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
033 GL11.glTranslatef((float)par2, (float)par4 + 1.0F, (float)par6 + 1.0F);
034 GL11.glScalef(1.0F, -1.0F, -1.0F);
035 GL11.glTranslatef(0.5F, 0.5F, 0.5F);
036 short var10 = 0;
037
038 if (var9 == 2)
039 {
040 var10 = 180;
041 }
042
043 if (var9 == 3)
044 {
045 var10 = 0;
046 }
047
048 if (var9 == 4)
049 {
050 var10 = 90;
051 }
052
053 if (var9 == 5)
054 {
055 var10 = -90;
056 }
057
058 GL11.glRotatef((float)var10, 0.0F, 1.0F, 0.0F);
059 GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
060 float var11 = par1TileEntityEnderChest.prevLidAngle + (par1TileEntityEnderChest.lidAngle - par1TileEntityEnderChest.prevLidAngle) * par8;
061 var11 = 1.0F - var11;
062 var11 = 1.0F - var11 * var11 * var11;
063 this.theEnderChestModel.chestLid.rotateAngleX = -(var11 * (float)Math.PI / 2.0F);
064 this.theEnderChestModel.renderAll();
065 GL11.glDisable(GL12.GL_RESCALE_NORMAL);
066 GL11.glPopMatrix();
067 GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
068 }
069
070 public void renderTileEntityAt(TileEntity par1TileEntity, double par2, double par4, double par6, float par8)
071 {
072 this.renderEnderChest((TileEntityEnderChest)par1TileEntity, par2, par4, par6, par8);
073 }
074 }