public class OItemSign extends OItem { public OItemSign(int paramInt) { super(paramInt); be = 1; } @Override public boolean a(OItemStack paramOItemStack, OEntityPlayer paramOEntityPlayer, OWorld paramOWorld, int paramInt1, int paramInt2, int paramInt3, int paramInt4) { if (paramInt4 == 0) return false; if (!paramOWorld.c(paramInt1, paramInt2, paramInt3).a()) return false; // hMod: Store block data clicked Block blockClicked = new Block(paramOWorld.a(paramInt1, paramInt2, paramInt3), paramInt1, paramInt2, paramInt3); blockClicked.setFaceClicked(Block.Face.fromId(paramInt4)); if (paramInt4 == 1) paramInt2++; if (paramInt4 == 2) paramInt3--; if (paramInt4 == 3) paramInt3++; if (paramInt4 == 4) paramInt1--; if (paramInt4 == 5) paramInt1++; if (!OBlock.aD.a(paramOWorld, paramInt1, paramInt2, paramInt3)) return false; // hMod: Now we can call itemUse :) Block blockPlaced = new Block((paramInt4 == 1 ? OBlock.aD.bl : OBlock.aI.bl), paramInt1, paramInt2, paramInt3); if (paramOEntityPlayer instanceof OEntityPlayerMP && (Boolean) etc.getLoader().callHook(PluginLoader.Hook.ITEM_USE, ((OEntityPlayerMP) paramOEntityPlayer).getPlayer(), blockPlaced, blockClicked, new Item(paramOItemStack))) return false; if (paramInt4 == 1) paramOWorld.b(paramInt1, paramInt2, paramInt3, OBlock.aD.bl, OMathHelper.b((paramOEntityPlayer.aQ + 180.0F) * 16.0F / 360.0F + 0.5D) & 0xF); else paramOWorld.b(paramInt1, paramInt2, paramInt3, OBlock.aI.bl, paramInt4); paramOItemStack.a -= 1; OTileEntitySign localOTileEntitySign = (OTileEntitySign) paramOWorld.m(paramInt1, paramInt2, paramInt3); if (localOTileEntitySign != null) paramOEntityPlayer.a(localOTileEntitySign); return true; } }