@Override
public void breakBlock(World worldIn, BlockPos pos, IBlockState state)
{
BaseTileEntityHarshenSingleItemInventory te = (BaseTileEntityHarshenSingleItemInventory) worldIn.getTileEntity(pos);
IItemHandler handler = te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null);
if(!worldIn.isRemote)
if(isBreakNBT(handler.getStackInSlot(0)))
{
ItemStackHandler handlerStack = new ItemStackHandler(1);
handlerStack.setStackInSlot(0, handler.getStackInSlot(0));
ItemStack stack = new ItemStack(this);
String stackName = "";
NBTTagCompound nbttagcompound = new NBTTagCompound();
if(handlerStack.getStackInSlot(0).getItem() != Items.AIR)
{
nbttagcompound.setTag("ItemStackHandler", handlerStack.serializeNBT());
stackName += I18n.translateToLocal(handlerStack.getStackInSlot(0).getItem().getUnlocalizedName() + ".name");
}
addNBT(handler.getStackInSlot(0), nbttagcompound, worldIn, pos);
if(!nbttagcompound.getKeySet().isEmpty() || !handlerStack.getStackInSlot(0).isEmpty())
{
stack.setTagCompound(nbttagcompound);
stackName += extraName(nbttagcompound, handlerStack.getStackInSlot(0).getItem() != Items.AIR);
stackName = stackName.equals("")? "�r" + getLocalizedName() : "�r" + getLocalizedName() + " (" + stackName + ")";
stack.setStackDisplayName(stackName);
}
if(!creativeBreakMap.containsKey(pos) || !creativeBreakMap.get(pos))
worldIn.spawnEntity(new EntityItem(worldIn, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, stack));
creativeBreakMap.remove(pos);
}
else
InventoryHelper.spawnItemStack(worldIn, pos.getX(), pos.getY(), pos.getZ(), handler.getStackInSlot(0));
super.breakBlock(worldIn, pos, state);
}