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 }