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 }