aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/tileentities/TE_ItemServerIOPort.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/tileentities/TE_ItemServerIOPort.java')
-rw-r--r--src/main/java/tileentities/TE_ItemServerIOPort.java44
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;
}
}