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 }