diff options
author | Christina Berchtold <kekzdealer@gmail.com> | 2020-04-24 20:14:42 +0200 |
---|---|---|
committer | Christina Berchtold <kekzdealer@gmail.com> | 2020-04-24 20:14:42 +0200 |
commit | 4e465dffd1d289e6d5757929252e66cf0eee3249 (patch) | |
tree | 82fd8e617ff76e9144c4066ca7f68e26fac4491f /src/main/java/common/tileentities/TE_ItemServerIOPort.java | |
parent | ea7710559a16fb4ad47d64e812ebbabfece73115 (diff) | |
download | GT5-Unofficial-4e465dffd1d289e6d5757929252e66cf0eee3249.tar.gz GT5-Unofficial-4e465dffd1d289e6d5757929252e66cf0eee3249.tar.bz2 GT5-Unofficial-4e465dffd1d289e6d5757929252e66cf0eee3249.zip |
moved blocks and TEs into 'common' package
Diffstat (limited to 'src/main/java/common/tileentities/TE_ItemServerIOPort.java')
-rw-r--r-- | src/main/java/common/tileentities/TE_ItemServerIOPort.java | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/src/main/java/common/tileentities/TE_ItemServerIOPort.java b/src/main/java/common/tileentities/TE_ItemServerIOPort.java new file mode 100644 index 0000000000..f1a1e62ad6 --- /dev/null +++ b/src/main/java/common/tileentities/TE_ItemServerIOPort.java @@ -0,0 +1,132 @@ +package common.tileentities; + +import kekztech.MultiItemHandler; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; + +public class TE_ItemServerIOPort extends TileEntity implements ISidedInventory { + + private MultiItemHandler mih; + + public void setMultiItemHandler(MultiItemHandler mih) { + this.mih = mih; + System.out.println("MIH set"); + } + + @Override + public int getSizeInventory() { + return (mih != null) ? mih.getItemTypeCapacity() : 0; + } + + @Override + public ItemStack getStackInSlot(int slot) { + return (mih != null) ? mih.getStackInSlot(slot) : null; + } + + @Override + public ItemStack decrStackSize(int slot, int amount) { + 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; + } + } else { + return null; + } + } + + @Override + public ItemStack getStackInSlotOnClosing(int slot) { + return null; + } + + @Override + public void setInventorySlotContents(int slot, ItemStack itemStack) { + System.out.println("Set slot: " + slot); + if(mih != null) { + if(itemStack == null) { + return; + } else { + if(!mih.insertStackInSlot(slot, itemStack)) { + final int delta = itemStack.stackSize - mih.getStackInSlot(slot).stackSize; + if(delta < 0) { + System.out.println("Set slot reduce: " + itemStack.getDisplayName()); + mih.reduceStackInSlot(slot, delta); + } else { + System.out.println("Set slot increase: " + itemStack.getDisplayName()); + mih.increaseStackInSlot(slot, delta); + } + + } else { + System.out.println("Allocated new slot for: " + itemStack.getDisplayName()); + } + super.markDirty(); + } + } + } + + @Override + public String getInventoryName() { + return "Item Server IO Port"; + } + + @Override + public boolean hasCustomInventoryName() { + return true; + } + + @Override + public int getInventoryStackLimit() { + return (mih != null) ? mih.getPerTypeCapacity() : 0; + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + return true; + } + + @Override + public void openInventory() { + + } + + @Override + public void closeInventory() { + + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack itemStack) { + return (mih != null) ? (mih.getStackInSlot(slot).isItemEqual(itemStack) || mih.getStackInSlot(slot) == null) : false; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + if(mih != null) { + final int[] as = new int[mih.getItemTypeCapacity()]; + for(int i = 0; i < mih.getItemTypeCapacity(); i++) { + as[i] = i; + } + return as; + } else { + return new int[1]; + } + } + + @Override + public boolean canInsertItem(int slot, ItemStack itemStack, int side) { + return isItemValidForSlot(slot, itemStack); + } + + @Override + public boolean canExtractItem(int slot, ItemStack itemStack, int side) { + return (mih != null) ? true : false; + } + +} |