001package net.minecraft.block;
002
003import cpw.mods.fml.relauncher.Side;
004import cpw.mods.fml.relauncher.SideOnly;
005import java.util.Random;
006import net.minecraft.block.material.Material;
007import net.minecraft.world.IBlockAccess;
008import net.minecraft.world.World;
009
010public 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}