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 }