    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    }