001 package net.minecraft.src;
002
003 public class ItemSign extends Item
004 {
005 public ItemSign(int par1)
006 {
007 super(par1);
008 this.maxStackSize = 16;
009 this.setCreativeTab(CreativeTabs.tabDecorations);
010 }
011
012 /**
013 * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return
014 * True if something happen and false if it don't. This is for ITEMS, not BLOCKS
015 */
016 public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10)
017 {
018 if (par7 == 0)
019 {
020 return false;
021 }
022 else if (!par3World.getBlockMaterial(par4, par5, par6).isSolid())
023 {
024 return false;
025 }
026 else
027 {
028 if (par7 == 1)
029 {
030 ++par5;
031 }
032
033 if (par7 == 2)
034 {
035 --par6;
036 }
037
038 if (par7 == 3)
039 {
040 ++par6;
041 }
042
043 if (par7 == 4)
044 {
045 --par4;
046 }
047
048 if (par7 == 5)
049 {
050 ++par4;
051 }
052
053 if (!par2EntityPlayer.func_82247_a(par4, par5, par6, par7, par1ItemStack))
054 {
055 return false;
056 }
057 else if (!Block.signPost.canPlaceBlockAt(par3World, par4, par5, par6))
058 {
059 return false;
060 }
061 else
062 {
063 if (par7 == 1)
064 {
065 int var11 = MathHelper.floor_double((double)((par2EntityPlayer.rotationYaw + 180.0F) * 16.0F / 360.0F) + 0.5D) & 15;
066 par3World.setBlockAndMetadataWithNotify(par4, par5, par6, Block.signPost.blockID, var11);
067 }
068 else
069 {
070 par3World.setBlockAndMetadataWithNotify(par4, par5, par6, Block.signWall.blockID, par7);
071 }
072
073 --par1ItemStack.stackSize;
074 TileEntitySign var12 = (TileEntitySign)par3World.getBlockTileEntity(par4, par5, par6);
075
076 if (var12 != null)
077 {
078 par2EntityPlayer.displayGUIEditSign(var12);
079 }
080
081 return true;
082 }
083 }
084 }
085 }