@Override
public boolean onBlockStartBreak(ItemStack itemstack, BlockPos pos, EntityPlayer player) {
if(!ToolHelper.isBroken(itemstack) && this instanceof IAoeTool && ((IAoeTool) this).isAoeHarvestTool()) {
for(BlockPos extraPos : ((IAoeTool) this).getAOEBlocks(itemstack, player.getEntityWorld(), player, pos)) {
breakExtraBlock(itemstack, player.getEntityWorld(), player, extraPos, pos);
}
}
if(DualToolHarvestUtils.shouldUseOffhand(player, pos, player.getHeldItemMainhand())) {
ItemStack off = player.getHeldItemOffhand();
switchItemsInHands(player);
NBTTagCompound tag = TagUtil.getTagSafe(off);
tag.setLong(TAG_SWITCHED_HAND_HAX, player.getEntityWorld().getTotalWorldTime());
off.setTagCompound(tag);
}
return breakBlock(itemstack, pos, player);
}