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