/** Called when the block is clicked by a player. Args: x, y, z, entityPlayer */ @Override public boolean blockActivated(World world, int x, int y, int z, EntityPlayer entityplayer) { boolean hasHammer = false; for (int i = 0; i < 9; i++) { if (entityplayer.inventory.mainInventory[i] != null && entityplayer.inventory.mainInventory[i].getItem() instanceof ItemHammer) hasHammer = true; } if (entityplayer.getCurrentEquippedItem() != null && entityplayer.getCurrentEquippedItem().getItem() instanceof ItemChisel && hasHammer) { MovingObjectPosition objectMouseOver = Helper.getMouseOverObject(entityplayer, world); if (objectMouseOver == null) { return false; } int side = objectMouseOver.sideHit; int id = world.getBlockId(x, y, z); byte meta = (byte) world.getBlockMetadata(x, y, z); byte newMeta = 0; if (side == 0) { newMeta = (byte) (newMeta | 4); } int rot = MathHelper.floor_double((double) (entityplayer.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; byte flip = (byte) (newMeta & 4); byte m = 0; if (rot == 0) { m = (byte) (2 | flip); } else if (rot == 1) { m = (byte) (1 | flip); } else if (rot == 2) { m = (byte) (3 | flip); } else if (rot == 3) { m = (byte) (0 | flip); } int mode = 0; if (!TFC_Core.isClient()) { PlayerInfo pi = PlayerManagerTFC.getInstance().getPlayerInfoFromPlayer(entityplayer); if (pi != null) mode = pi.ChiselMode; } else mode = ItemChisel.mode; if (mode == 1) { ItemChisel.CreateStairs(world, x, y, z, id, meta, m); return true; } else if (mode == 2) { ItemChisel.CreateSlab(world, x, y, z, id, meta, side); return true; } } return false; }