diff options
Diffstat (limited to 'src/main/java/tileentities/TE_ItemServerIOPort.java')
-rw-r--r-- | src/main/java/tileentities/TE_ItemServerIOPort.java | 44 |
1 files changed, 30 insertions, 14 deletions
diff --git a/src/main/java/tileentities/TE_ItemServerIOPort.java b/src/main/java/tileentities/TE_ItemServerIOPort.java index 17e322fa82..46a3a9c7bb 100644 --- a/src/main/java/tileentities/TE_ItemServerIOPort.java +++ b/src/main/java/tileentities/TE_ItemServerIOPort.java @@ -11,41 +11,60 @@ public class TE_ItemServerIOPort extends TileEntity implements IInventory { private MultiItemHandler mih; public void setMultiItemHandler(MultiItemHandler mih) { + System.out.println("MIH set"); this.mih = mih; } @Override public int getSizeInventory() { - return mih.getItemTypeCapacity(); + return (mih != null) ? mih.getItemTypeCapacity() : 9; } @Override public ItemStack getStackInSlot(int slot) { - // TODO Auto-generated method stub - return null; + return (mih != null) ? mih.getStackInSlot(slot) : null; } @Override public ItemStack decrStackSize(int slot, int amount) { - // TODO Auto-generated method stub + if(mih != null) { + if(mih.getStackInSlot(slot) != null) { + final ItemStack obtained = mih.getStackInSlot(slot).copy(); + obtained.stackSize = mih.reduceStackInSlot(slot, amount); + super.markDirty(); + return obtained; + } else { + return null; + } + } return null; } @Override public ItemStack getStackInSlotOnClosing(int slot) { - // TODO Auto-generated method stub return null; } @Override public void setInventorySlotContents(int slot, ItemStack itemStack) { - // TODO Auto-generated method stub - + if(mih != null) { + if(itemStack == null || !itemStack.isItemEqual(mih.getStackInSlot(slot))) { + return; + } else { + final int change = itemStack.stackSize - mih.getStackInSlot(slot).stackSize; + if(change < 0) { + mih.reduceStackInSlot(slot, change); + } else { + mih.increaseStackInSlot(slot, change); + } + super.markDirty(); + } + } } @Override public String getInventoryName() { - return "Item Server"; + return "Item Server IO Port"; } @Override @@ -55,30 +74,27 @@ public class TE_ItemServerIOPort extends TileEntity implements IInventory { @Override public int getInventoryStackLimit() { - return mih.getPerTypeCapacity(); + return (mih != null) ? mih.getPerTypeCapacity() : 0; } @Override public boolean isUseableByPlayer(EntityPlayer player) { - return true; + return false; } @Override public void openInventory() { - // TODO Auto-generated method stub } @Override public void closeInventory() { - // TODO Auto-generated method stub } @Override public boolean isItemValidForSlot(int slot, ItemStack itemStack) { - // TODO Auto-generated method stub - return false; + return (mih != null) ? (mih.getStackInSlot(slot).isItemEqual(itemStack) || mih.getStackInSlot(slot) == null) : false; } } |