001 package net.minecraft.src;
002
003 import cpw.mods.fml.common.Side;
004 import cpw.mods.fml.common.asm.SideOnly;
005 import java.util.Random;
006
007 public class BlockLockedChest extends Block
008 {
009 protected BlockLockedChest(int par1)
010 {
011 super(par1, Material.wood);
012 this.blockIndexInTexture = 26;
013 }
014
015 @SideOnly(Side.CLIENT)
016
017 /**
018 * Retrieves the block texture to use based on the display side. Args: iBlockAccess, x, y, z, side
019 */
020 public int getBlockTexture(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5)
021 {
022 if (par5 == 1)
023 {
024 return this.blockIndexInTexture - 1;
025 }
026 else if (par5 == 0)
027 {
028 return this.blockIndexInTexture - 1;
029 }
030 else
031 {
032 int var6 = par1IBlockAccess.getBlockId(par2, par3, par4 - 1);
033 int var7 = par1IBlockAccess.getBlockId(par2, par3, par4 + 1);
034 int var8 = par1IBlockAccess.getBlockId(par2 - 1, par3, par4);
035 int var9 = par1IBlockAccess.getBlockId(par2 + 1, par3, par4);
036 byte var10 = 3;
037
038 if (Block.opaqueCubeLookup[var6] && !Block.opaqueCubeLookup[var7])
039 {
040 var10 = 3;
041 }
042
043 if (Block.opaqueCubeLookup[var7] && !Block.opaqueCubeLookup[var6])
044 {
045 var10 = 2;
046 }
047
048 if (Block.opaqueCubeLookup[var8] && !Block.opaqueCubeLookup[var9])
049 {
050 var10 = 5;
051 }
052
053 if (Block.opaqueCubeLookup[var9] && !Block.opaqueCubeLookup[var8])
054 {
055 var10 = 4;
056 }
057
058 return par5 == var10 ? this.blockIndexInTexture + 1 : this.blockIndexInTexture;
059 }
060 }
061
062 /**
063 * Returns the block texture based on the side being looked at. Args: side
064 */
065 public int getBlockTextureFromSide(int par1)
066 {
067 return par1 == 1 ? this.blockIndexInTexture - 1 : (par1 == 0 ? this.blockIndexInTexture - 1 : (par1 == 3 ? this.blockIndexInTexture + 1 : this.blockIndexInTexture));
068 }
069
070 /**
071 * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z
072 */
073 public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)
074 {
075 return true;
076 }
077
078 /**
079 * Ticks the block if it's been scheduled
080 */
081 public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random)
082 {
083 par1World.setBlockWithNotify(par2, par3, par4, 0);
084 }
085 }