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