aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/common/tileentities/TE_ItemServerIOPort.java
diff options
context:
space:
mode:
authorChristina Berchtold <kekzdealer@gmail.com>2020-04-24 20:14:42 +0200
committerChristina Berchtold <kekzdealer@gmail.com>2020-04-24 20:14:42 +0200
commit4e465dffd1d289e6d5757929252e66cf0eee3249 (patch)
tree82fd8e617ff76e9144c4066ca7f68e26fac4491f /src/main/java/common/tileentities/TE_ItemServerIOPort.java
parentea7710559a16fb4ad47d64e812ebbabfece73115 (diff)
downloadGT5-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.java132
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;
+ }
+
+}