Advertisement
Guest User

Untitled

a guest
Apr 17th, 2014
105
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package SecurityCraft.forge.tileentity;
  2.  
  3. import java.util.Calendar;
  4.  
  5. import net.minecraft.block.Block;
  6. import net.minecraft.block.BlockChest;
  7. import net.minecraft.client.model.ModelChest;
  8. import net.minecraft.client.model.ModelLargeChest;
  9. import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
  10. import net.minecraft.tileentity.TileEntity;
  11. import net.minecraft.tileentity.TileEntityChest;
  12. import net.minecraft.util.ResourceLocation;
  13.  
  14. import org.lwjgl.opengl.GL11;
  15. import org.lwjgl.opengl.GL12;
  16.  
  17. import cpw.mods.fml.common.FMLLog;
  18. import cpw.mods.fml.relauncher.Side;
  19. import cpw.mods.fml.relauncher.SideOnly;
  20.  
  21. @SideOnly(Side.CLIENT)
  22. public class TileEntityKeypadChestRenderer extends TileEntitySpecialRenderer
  23. {
  24.     private static final ResourceLocation trappedDouble = new ResourceLocation("textures/entity/chest/trapped_double.png");
  25.     private static final ResourceLocation christmasDouble = new ResourceLocation("textures/entity/chest/christmas_double.png");
  26.     private static final ResourceLocation normalDoubleUnactive = new ResourceLocation("textures/entity/chest/normal_double.png");
  27.     private static final ResourceLocation normalDoubleActive = new ResourceLocation("textures/entity/chest/normal_double.png");
  28.     private static final ResourceLocation trappedNormal = new ResourceLocation("textures/entity/chest/trapped.png");
  29.     private static final ResourceLocation christmasNormal = new ResourceLocation("textures/entity/chest/christmas.png");
  30.     private static final ResourceLocation normalSingleUnactive = new ResourceLocation("securitycraft:textures/entity/chest/chestUnactive.png");
  31.     private static final ResourceLocation normalSingleActive = new ResourceLocation("securitycraft:textures/entity/chest/chestActive.png");
  32.     private ModelChest field_147510_h = new ModelChest();
  33.     private ModelChest field_147511_i = new ModelLargeChest();
  34.     private boolean field_147509_j;
  35.  
  36.     public TileEntityKeypadChestRenderer()
  37.     {
  38.         Calendar calendar = Calendar.getInstance();
  39.  
  40.         if (calendar.get(2) + 1 == 12 && calendar.get(5) >= 24 && calendar.get(5) <= 26)
  41.         {
  42.             this.field_147509_j = true;
  43.         }
  44.     }
  45.  
  46.     public void renderTileEntityAt(TileEntityChest p_147502_1_, double p_147502_2_, double p_147502_4_, double p_147502_6_, float p_147502_8_)
  47.     {
  48.         int i;
  49.  
  50.         if (!p_147502_1_.hasWorldObj())
  51.         {
  52.             i = 0;
  53.         }
  54.         else
  55.         {
  56.             Block block = p_147502_1_.getBlockType();
  57.             i = p_147502_1_.getBlockMetadata();
  58.  
  59.             if (block instanceof BlockChest && i == 0)
  60.             {
  61.                 try
  62.                 {
  63.                 ((BlockChest)block).func_149954_e(p_147502_1_.getWorldObj(), p_147502_1_.xCoord, p_147502_1_.yCoord, p_147502_1_.zCoord);
  64.                 }
  65.                 catch (ClassCastException e)
  66.                 {
  67.                     FMLLog.severe("Attempted to render a chest at %d,  %d, %d that was not a chest", p_147502_1_.xCoord, p_147502_1_.yCoord, p_147502_1_.zCoord);
  68.                 }
  69.                 i = p_147502_1_.getBlockMetadata();
  70.             }
  71.  
  72.             p_147502_1_.checkForAdjacentChests();
  73.         }
  74.  
  75.         if (p_147502_1_.adjacentChestZNeg == null && p_147502_1_.adjacentChestXNeg == null)
  76.         {
  77.             ModelChest modelchest;
  78.  
  79.             if (p_147502_1_.adjacentChestXPos == null && p_147502_1_.adjacentChestZPos == null)
  80.             {
  81.                 modelchest = this.field_147510_h;
  82.  
  83.                 if (p_147502_1_.func_145980_j() == 1)
  84.                 {
  85.                     this.bindTexture(trappedNormal);
  86.                 }
  87.                 else if (this.field_147509_j)
  88.                 {
  89.                     this.bindTexture(christmasNormal);
  90.                 }
  91.                 else
  92.                 {
  93.                     if(p_147502_1_.lidAngle >= 0.9){
  94.                         this.bindTexture(normalSingleActive);
  95.                     }else{
  96.                         this.bindTexture(normalSingleUnactive);
  97.                     }
  98.                 }
  99.             }
  100.             else
  101.             {
  102.                 modelchest = this.field_147511_i;
  103.  
  104.                 if (p_147502_1_.func_145980_j() == 1)
  105.                 {
  106.                     this.bindTexture(trappedDouble);
  107.                 }
  108.                 else if (this.field_147509_j)
  109.                 {
  110.                     this.bindTexture(christmasDouble);
  111.                 }
  112.                 else
  113.                 {
  114.                     if(p_147502_1_.lidAngle >= 0.9){
  115.                         this.bindTexture(normalDoubleActive);
  116.                     }else{
  117.                         this.bindTexture(normalDoubleUnactive);
  118.                     }
  119.                 }
  120.             }
  121.  
  122.             GL11.glPushMatrix();
  123.             GL11.glEnable(GL12.GL_RESCALE_NORMAL);
  124.             GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  125.             GL11.glTranslatef((float)p_147502_2_, (float)p_147502_4_ + 1.0F, (float)p_147502_6_ + 1.0F);
  126.             GL11.glScalef(1.0F, -1.0F, -1.0F);
  127.             GL11.glTranslatef(0.5F, 0.5F, 0.5F);
  128.             short short1 = 0;
  129.  
  130.             if (i == 2)
  131.             {
  132.                 short1 = 180;
  133.             }
  134.  
  135.             if (i == 3)
  136.             {
  137.                 short1 = 0;
  138.             }
  139.  
  140.             if (i == 4)
  141.             {
  142.                 short1 = 90;
  143.             }
  144.  
  145.             if (i == 5)
  146.             {
  147.                 short1 = -90;
  148.             }
  149.  
  150.             if (i == 2 && p_147502_1_.adjacentChestXPos != null)
  151.             {
  152.                 GL11.glTranslatef(1.0F, 0.0F, 0.0F);
  153.             }
  154.  
  155.             if (i == 5 && p_147502_1_.adjacentChestZPos != null)
  156.             {
  157.                 GL11.glTranslatef(0.0F, 0.0F, -1.0F);
  158.             }
  159.  
  160.             GL11.glRotatef((float)short1, 0.0F, 1.0F, 0.0F);
  161.             GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
  162.             float f1 = p_147502_1_.prevLidAngle + (p_147502_1_.lidAngle - p_147502_1_.prevLidAngle) * p_147502_8_;
  163.             float f2;
  164.  
  165.             if (p_147502_1_.adjacentChestZNeg != null)
  166.             {
  167.                 f2 = p_147502_1_.adjacentChestZNeg.prevLidAngle + (p_147502_1_.adjacentChestZNeg.lidAngle - p_147502_1_.adjacentChestZNeg.prevLidAngle) * p_147502_8_;
  168.  
  169.                 if (f2 > f1)
  170.                 {
  171.                     f1 = f2;
  172.                 }
  173.             }
  174.  
  175.             if (p_147502_1_.adjacentChestXNeg != null)
  176.             {
  177.                 f2 = p_147502_1_.adjacentChestXNeg.prevLidAngle + (p_147502_1_.adjacentChestXNeg.lidAngle - p_147502_1_.adjacentChestXNeg.prevLidAngle) * p_147502_8_;
  178.  
  179.                 if (f2 > f1)
  180.                 {
  181.                     f1 = f2;
  182.                 }
  183.             }
  184.  
  185.             f1 = 1.0F - f1;
  186.             f1 = 1.0F - f1 * f1 * f1;
  187.             modelchest.chestLid.rotateAngleX = -(f1 * (float)Math.PI / 2.0F);
  188.             modelchest.renderAll();
  189.             GL11.glDisable(GL12.GL_RESCALE_NORMAL);
  190.             GL11.glPopMatrix();
  191.             GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  192.         }
  193.     }
  194.  
  195.     public void renderTileEntityAt(TileEntity p_147500_1_, double p_147500_2_, double p_147500_4_, double p_147500_6_, float p_147500_8_)
  196.     {
  197.         this.renderTileEntityAt((TileEntityChest)p_147500_1_, p_147500_2_, p_147500_4_, p_147500_6_, p_147500_8_);
  198.     }
  199. }
Advertisement
RAW Paste Data Copied
Advertisement