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        private ModelChest field_76900_a = new ModelChest();
012    
013        public void func_76899_a(TileEntityEnderChest par1TileEntityEnderChest, double par2, double par4, double par6, float par8)
014        {
015            int var9 = 0;
016    
017            if (par1TileEntityEnderChest.func_70309_m())
018            {
019                var9 = par1TileEntityEnderChest.getBlockMetadata();
020            }
021    
022            this.bindTextureByName("/item/enderchest.png");
023            GL11.glPushMatrix();
024            GL11.glEnable(GL12.GL_RESCALE_NORMAL);
025            GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
026            GL11.glTranslatef((float)par2, (float)par4 + 1.0F, (float)par6 + 1.0F);
027            GL11.glScalef(1.0F, -1.0F, -1.0F);
028            GL11.glTranslatef(0.5F, 0.5F, 0.5F);
029            short var10 = 0;
030    
031            if (var9 == 2)
032            {
033                var10 = 180;
034            }
035    
036            if (var9 == 3)
037            {
038                var10 = 0;
039            }
040    
041            if (var9 == 4)
042            {
043                var10 = 90;
044            }
045    
046            if (var9 == 5)
047            {
048                var10 = -90;
049            }
050    
051            GL11.glRotatef((float)var10, 0.0F, 1.0F, 0.0F);
052            GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
053            float var11 = par1TileEntityEnderChest.prevLidAngle + (par1TileEntityEnderChest.lidAngle - par1TileEntityEnderChest.prevLidAngle) * par8;
054            var11 = 1.0F - var11;
055            var11 = 1.0F - var11 * var11 * var11;
056            this.field_76900_a.chestLid.rotateAngleX = -(var11 * (float)Math.PI / 2.0F);
057            this.field_76900_a.renderAll();
058            GL11.glDisable(GL12.GL_RESCALE_NORMAL);
059            GL11.glPopMatrix();
060            GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
061        }
062    
063        public void renderTileEntityAt(TileEntity par1TileEntity, double par2, double par4, double par6, float par8)
064        {
065            this.func_76899_a((TileEntityEnderChest)par1TileEntity, par2, par4, par6, par8);
066        }
067    }