001package net.minecraft.client.renderer.tileentity;
002
003import cpw.mods.fml.relauncher.Side;
004import cpw.mods.fml.relauncher.SideOnly;
005import net.minecraft.client.model.ModelChest;
006import net.minecraft.tileentity.TileEntity;
007import net.minecraft.tileentity.TileEntityEnderChest;
008import org.lwjgl.opengl.GL11;
009import org.lwjgl.opengl.GL12;
010
011@SideOnly(Side.CLIENT)
012public 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}