@Override public ItemStack decrStackSize(int slot, int amount) { if (!formed) return null; TileEntityBottlingMachine master = master(); if (master != null) return master.decrStackSize(slot, amount); ItemStack stack = getStackInSlot(slot); if (stack != null) if (stack.stackSize <= amount) setInventorySlotContents(slot, null); else { stack = stack.splitStack(amount); if (stack.stackSize == 0) setInventorySlotContents(slot, null); } this.markDirty(); return stack; }
@Override public ItemStack getStackInSlotOnClosing(int slot) { if (!formed) return null; TileEntityBottlingMachine master = master(); if (master != null) return master.getStackInSlotOnClosing(slot); ItemStack stack = getStackInSlot(slot); if (stack != null) setInventorySlotContents(slot, null); return stack; }
@Override public void setInventorySlotContents(int slot, ItemStack stack) { if (!formed || worldObj.isRemote) return; TileEntityBottlingMachine master = master(); if (master != null) { master.setInventorySlotContents(slot, stack); return; } inventory[slot] = stack; if (stack != null && stack.stackSize > getInventoryStackLimit()) stack.stackSize = getInventoryStackLimit(); this.markDirty(); worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); }