    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    }