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.setTabToDisplayOn(CreativeTabs.tabDeco);
010        }
011    
012        public boolean tryPlaceIntoWorld(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10)
013        {
014            if (par7 == 0)
015            {
016                return false;
017            }
018            else if (!par3World.getBlockMaterial(par4, par5, par6).isSolid())
019            {
020                return false;
021            }
022            else
023            {
024                if (par7 == 1)
025                {
026                    ++par5;
027                }
028    
029                if (par7 == 2)
030                {
031                    --par6;
032                }
033    
034                if (par7 == 3)
035                {
036                    ++par6;
037                }
038    
039                if (par7 == 4)
040                {
041                    --par4;
042                }
043    
044                if (par7 == 5)
045                {
046                    ++par4;
047                }
048    
049                if (!par2EntityPlayer.canPlayerEdit(par4, par5, par6))
050                {
051                    return false;
052                }
053                else if (!Block.signPost.canPlaceBlockAt(par3World, par4, par5, par6))
054                {
055                    return false;
056                }
057                else
058                {
059                    if (par7 == 1)
060                    {
061                        int var11 = MathHelper.floor_double((double)((par2EntityPlayer.rotationYaw + 180.0F) * 16.0F / 360.0F) + 0.5D) & 15;
062                        par3World.setBlockAndMetadataWithNotify(par4, par5, par6, Block.signPost.blockID, var11);
063                    }
064                    else
065                    {
066                        par3World.setBlockAndMetadataWithNotify(par4, par5, par6, Block.signWall.blockID, par7);
067                    }
068    
069                    --par1ItemStack.stackSize;
070                    TileEntitySign var12 = (TileEntitySign)par3World.getBlockTileEntity(par4, par5, par6);
071    
072                    if (var12 != null)
073                    {
074                        par2EntityPlayer.displayGUIEditSign(var12);
075                    }
076    
077                    return true;
078                }
079            }
080        }
081    }