    001    package net.minecraft.src;
    002
    003    public class BlockCommandBlock extends BlockContainer
    004    {
    005        public BlockCommandBlock(int par1)
    006        {
    007            super(par1, 184, Material.iron);
    008        }
    009
    010        /**
    011         * Returns a new instance of a block's tile entity class. Called on placing the block.
    012         */
    013        public TileEntity createNewTileEntity(World par1World)
    014        {
    015            return new TileEntityCommandBlock();
    016        }
    017
    018        /**
    019         * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are
    020         * their own) Args: x, y, z, neighbor blockID
    021         */
    022        public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5)
    023        {
    024            if (!par1World.isRemote)
    025            {
    026                boolean var6 = par1World.isBlockIndirectlyGettingPowered(par2, par3, par4);
    027                int var7 = par1World.getBlockMetadata(par2, par3, par4);
    028                boolean var8 = (var7 & 1) != 0;
    029
    030                if (var6 && !var8)
    031                {
    032                    TileEntity var9 = par1World.getBlockTileEntity(par2, par3, par4);
    033
    034                    if (var9 != null && var9 instanceof TileEntityCommandBlock)
    035                    {
    036                        ((TileEntityCommandBlock)var9).executeCommandOnPowered(par1World);
    037                    }
    038
    039                    par1World.setBlockMetadata(par2, par3, par4, var7 | 1);
    040                }
    041                else if (!var6 && var8)
    042                {
    043                    par1World.setBlockMetadata(par2, par3, par4, var7 & -2);
    044                }
    045            }
    046        }
    047
    048        /**
    049         * Called upon block activation (right click on the block.)
    050         */
    051        public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9)
    052        {
    053            TileEntityCommandBlock var10 = (TileEntityCommandBlock)par1World.getBlockTileEntity(par2, par3, par4);
    054
    055            if (var10 != null)
    056            {
    057                par5EntityPlayer.displayGUIEditSign(var10);
    058            }
    059
    060            return true;
    061        }
    062    }