From d95ccc6cc2b5402b05b3aeaa9c44560175eddb00 Mon Sep 17 00:00:00 2001 From: Gig Date: Mon, 8 Jun 2015 23:14:18 +0100 Subject: [PATCH 1/9] Added Isided to ChemicalReactor --- .../techreborn/tiles/TileChemicalReactor.java | 86 ++++++++++++++++++- 1 file changed, 85 insertions(+), 1 deletion(-) diff --git a/src/main/java/techreborn/tiles/TileChemicalReactor.java b/src/main/java/techreborn/tiles/TileChemicalReactor.java index d7c219648..9041fb407 100644 --- a/src/main/java/techreborn/tiles/TileChemicalReactor.java +++ b/src/main/java/techreborn/tiles/TileChemicalReactor.java @@ -4,15 +4,18 @@ import ic2.api.energy.prefab.BasicSink; import ic2.api.energy.tile.IEnergyTile; import ic2.api.tile.IWrenchable; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; import techreborn.api.recipe.RecipeCrafter; import techreborn.init.ModBlocks; import techreborn.util.Inventory; import java.util.List; -public class TileChemicalReactor extends TileMachineBase implements IWrenchable, IEnergyTile { +public class TileChemicalReactor extends TileMachineBase implements IWrenchable, IEnergyTile , IInventory, ISidedInventory{ public int tickTime; public BasicSink energy; @@ -115,6 +118,87 @@ public class TileChemicalReactor extends TileMachineBase implements IWrenchable, super.onChunkUnload(); } + @Override + public int getSizeInventory() { + return inventory.getSizeInventory(); + } + + @Override + public ItemStack getStackInSlot(int slot) { + return inventory.getStackInSlot(slot); + } + + @Override + public ItemStack decrStackSize(int slot, int amount) { + return inventory.decrStackSize(slot, amount); + } + + @Override + public ItemStack getStackInSlotOnClosing(int slot) { + return inventory.getStackInSlotOnClosing(slot); + } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack) { + inventory.setInventorySlotContents(slot, stack); + } + + @Override + public String getInventoryName() { + return inventory.getInventoryName(); + } + + @Override + public boolean hasCustomInventoryName() { + return inventory.hasCustomInventoryName(); + } + + @Override + public int getInventoryStackLimit() { + return inventory.getInventoryStackLimit(); + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + return inventory.isUseableByPlayer(player); + } + + @Override + public void openInventory() { + inventory.openInventory(); + } + + @Override + public void closeInventory() { + inventory.closeInventory(); + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + return inventory.isItemValidForSlot(slot, stack); + } + + // ISidedInventory + @Override + public int[] getAccessibleSlotsFromSide(int side) + { + return side == ForgeDirection.DOWN.ordinal() ? new int[]{0, 1, 2} : new int[]{0, 1, 2}; + } + + @Override + public boolean canInsertItem(int slotIndex, ItemStack itemStack, int side) + { + if (slotIndex == 2) + return false; + return isItemValidForSlot(slotIndex, itemStack); + } + + @Override + public boolean canExtractItem(int slotIndex, ItemStack itemStack, int side) + { + return slotIndex == 2; + } + // @Override // public void addWailaInfo(List info) // { From c8da0db5f5b4b37f8bfd7ec509282c30bb279bd2 Mon Sep 17 00:00:00 2001 From: Gig Date: Mon, 8 Jun 2015 23:22:06 +0100 Subject: [PATCH 2/9] Added Isided for Grinder --- .../java/techreborn/tiles/TileGrinder.java | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/main/java/techreborn/tiles/TileGrinder.java b/src/main/java/techreborn/tiles/TileGrinder.java index a4aaf6499..d6102a4c8 100644 --- a/src/main/java/techreborn/tiles/TileGrinder.java +++ b/src/main/java/techreborn/tiles/TileGrinder.java @@ -5,6 +5,7 @@ import ic2.api.energy.tile.IEnergyTile; import ic2.api.tile.IWrenchable; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; @@ -17,7 +18,7 @@ import techreborn.util.FluidUtils; import techreborn.util.Inventory; import techreborn.util.Tank; -public class TileGrinder extends TileMachineBase implements IWrenchable, IEnergyTile, IFluidHandler, IInventory { +public class TileGrinder extends TileMachineBase implements IWrenchable, IEnergyTile, IFluidHandler, IInventory, ISidedInventory { public int tickTime; public BasicSink energy; @@ -219,4 +220,25 @@ public class TileGrinder extends TileMachineBase implements IWrenchable, IEnergy public boolean isItemValidForSlot(int slot, ItemStack stack) { return inventory.isItemValidForSlot(slot, stack); } + + // ISidedInventory + @Override + public int[] getAccessibleSlotsFromSide(int side) + { + return side == ForgeDirection.DOWN.ordinal() ? new int[]{0, 1, 2, 3, 4, 5} : new int[]{0, 1, 2, 3, 4, 5}; + } + + @Override + public boolean canInsertItem(int slotIndex, ItemStack itemStack, int side) + { + if (slotIndex >= 1) + return false; + return isItemValidForSlot(slotIndex, itemStack); + } + + @Override + public boolean canExtractItem(int slotIndex, ItemStack itemStack, int side) + { + return slotIndex == 2 || slotIndex == 3 || slotIndex == 4 || slotIndex == 5; + } } From 99d237f26e8df41db50047f5527ba76068db59cf Mon Sep 17 00:00:00 2001 From: Gig Date: Mon, 8 Jun 2015 23:27:31 +0100 Subject: [PATCH 3/9] Fixed Isided on Grinder --- src/main/java/techreborn/tiles/TileGrinder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/techreborn/tiles/TileGrinder.java b/src/main/java/techreborn/tiles/TileGrinder.java index d6102a4c8..ed0302a1c 100644 --- a/src/main/java/techreborn/tiles/TileGrinder.java +++ b/src/main/java/techreborn/tiles/TileGrinder.java @@ -231,7 +231,7 @@ public class TileGrinder extends TileMachineBase implements IWrenchable, IEnergy @Override public boolean canInsertItem(int slotIndex, ItemStack itemStack, int side) { - if (slotIndex >= 1) + if (slotIndex >= 2) return false; return isItemValidForSlot(slotIndex, itemStack); } From 1fa1806c15028e8ce52f991f086affc88af8cce4 Mon Sep 17 00:00:00 2001 From: Gig Date: Mon, 8 Jun 2015 23:27:44 +0100 Subject: [PATCH 4/9] Added Isided for ImplosionCompressor --- .../tiles/TileImplosionCompressor.java | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/main/java/techreborn/tiles/TileImplosionCompressor.java b/src/main/java/techreborn/tiles/TileImplosionCompressor.java index 6bc07acda..d02f8b6fe 100644 --- a/src/main/java/techreborn/tiles/TileImplosionCompressor.java +++ b/src/main/java/techreborn/tiles/TileImplosionCompressor.java @@ -5,15 +5,17 @@ import ic2.api.energy.tile.IEnergyTile; import ic2.api.tile.IWrenchable; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; import techreborn.api.recipe.RecipeCrafter; import techreborn.init.ModBlocks; import techreborn.util.Inventory; import java.util.List; -public class TileImplosionCompressor extends TileMachineBase implements IWrenchable, IEnergyTile, IInventory { +public class TileImplosionCompressor extends TileMachineBase implements IWrenchable, IEnergyTile, IInventory, ISidedInventory { public int tickTime; public BasicSink energy; @@ -179,4 +181,25 @@ public class TileImplosionCompressor extends TileMachineBase implements IWrencha public boolean isItemValidForSlot(int slot, ItemStack stack) { return inventory.isItemValidForSlot(slot, stack); } + + // ISidedInventory + @Override + public int[] getAccessibleSlotsFromSide(int side) + { + return side == ForgeDirection.DOWN.ordinal() ? new int[]{0, 1, 2, 3} : new int[]{0, 1, 2, 3}; + } + + @Override + public boolean canInsertItem(int slotIndex, ItemStack itemStack, int side) + { + if (slotIndex >= 2) + return false; + return isItemValidForSlot(slotIndex, itemStack); + } + + @Override + public boolean canExtractItem(int slotIndex, ItemStack itemStack, int side) + { + return slotIndex == 2 || slotIndex == 3; + } } From e569d625f878b1eb4ab091fa2a1570aab787249b Mon Sep 17 00:00:00 2001 From: Gig Date: Mon, 8 Jun 2015 23:30:42 +0100 Subject: [PATCH 5/9] Added Isided for IndustrialElectrolyzer (CANT TEST) --- .../tiles/TileIndustrialElectrolyzer.java | 99 +++++++++++++++++-- 1 file changed, 91 insertions(+), 8 deletions(-) diff --git a/src/main/java/techreborn/tiles/TileIndustrialElectrolyzer.java b/src/main/java/techreborn/tiles/TileIndustrialElectrolyzer.java index c282ac3ae..37f944612 100644 --- a/src/main/java/techreborn/tiles/TileIndustrialElectrolyzer.java +++ b/src/main/java/techreborn/tiles/TileIndustrialElectrolyzer.java @@ -4,15 +4,18 @@ import ic2.api.energy.prefab.BasicSink; import ic2.api.energy.tile.IEnergyTile; import ic2.api.tile.IWrenchable; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; import techreborn.api.recipe.RecipeCrafter; import techreborn.init.ModBlocks; import techreborn.util.Inventory; import java.util.List; -public class TileIndustrialElectrolyzer extends TileMachineBase implements IWrenchable, IEnergyTile { +public class TileIndustrialElectrolyzer extends TileMachineBase implements IWrenchable, IEnergyTile, IInventory, ISidedInventory { public int tickTime; public BasicSink energy; @@ -113,15 +116,95 @@ public class TileIndustrialElectrolyzer extends TileMachineBase implements IWren super.onChunkUnload(); } +// @Override +// public void addWailaInfo(List info) +// { +// super.addWailaInfo(info); +// info.add("Power Stored " + energy.getEnergyStored() +" EU"); +// if(crafter.currentRecipe !=null){ +// info.add("Power Usage " + crafter.currentRecipe.euPerTick() + " EU/t"); +// } +// } + @Override - public void addWailaInfo(List info) - { - super.addWailaInfo(info); - info.add("Power Stored " + energy.getEnergyStored() +" EU"); - if(crafter.currentRecipe !=null){ - info.add("Power Usage " + crafter.currentRecipe.euPerTick() + " EU/t"); - } + public int getSizeInventory() { + return inventory.getSizeInventory(); } + @Override + public ItemStack getStackInSlot(int slot) { + return inventory.getStackInSlot(slot); + } + + @Override + public ItemStack decrStackSize(int slot, int amount) { + return inventory.decrStackSize(slot, amount); + } + + @Override + public ItemStack getStackInSlotOnClosing(int slot) { + return inventory.getStackInSlotOnClosing(slot); + } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack) { + inventory.setInventorySlotContents(slot, stack); + } + + @Override + public String getInventoryName() { + return inventory.getInventoryName(); + } + + @Override + public boolean hasCustomInventoryName() { + return inventory.hasCustomInventoryName(); + } + + @Override + public int getInventoryStackLimit() { + return inventory.getInventoryStackLimit(); + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + return inventory.isUseableByPlayer(player); + } + + @Override + public void openInventory() { + inventory.openInventory(); + } + + @Override + public void closeInventory() { + inventory.closeInventory(); + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + return inventory.isItemValidForSlot(slot, stack); + } + + // ISidedInventory + @Override + public int[] getAccessibleSlotsFromSide(int side) + { + return side == ForgeDirection.DOWN.ordinal() ? new int[]{0, 1, 2, 3, 4, 5} : new int[]{0, 1, 2, 3, 4, 5}; + } + + @Override + public boolean canInsertItem(int slotIndex, ItemStack itemStack, int side) + { + if(slotIndex >= 1) + return false; + return isItemValidForSlot(slotIndex, itemStack); + } + + @Override + public boolean canExtractItem(int slotIndex, ItemStack itemStack, int side) + { + return slotIndex == 2 || slotIndex == 3 || slotIndex == 4 || slotIndex == 5; + } } From 98329b2d0153f2322593ab74a9c56abd3578bfdc Mon Sep 17 00:00:00 2001 From: Gig Date: Mon, 8 Jun 2015 23:32:46 +0100 Subject: [PATCH 6/9] Added Isided to IndustrialSawmill --- .../tiles/TileIndustrialSawmill.java | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/main/java/techreborn/tiles/TileIndustrialSawmill.java b/src/main/java/techreborn/tiles/TileIndustrialSawmill.java index a21899df7..eed760286 100644 --- a/src/main/java/techreborn/tiles/TileIndustrialSawmill.java +++ b/src/main/java/techreborn/tiles/TileIndustrialSawmill.java @@ -5,15 +5,17 @@ import ic2.api.energy.tile.IEnergyTile; import ic2.api.tile.IWrenchable; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; import techreborn.api.recipe.RecipeCrafter; import techreborn.init.ModBlocks; import techreborn.util.Inventory; import java.util.List; -public class TileIndustrialSawmill extends TileMachineBase implements IWrenchable, IEnergyTile, IInventory { +public class TileIndustrialSawmill extends TileMachineBase implements IWrenchable, IEnergyTile, IInventory, ISidedInventory { public int tickTime; public BasicSink energy; @@ -187,5 +189,26 @@ public class TileIndustrialSawmill extends TileMachineBase implements IWrenchabl public boolean isItemValidForSlot(int slot, ItemStack stack) { return inventory.isItemValidForSlot(slot, stack); } + + // ISidedInventory + @Override + public int[] getAccessibleSlotsFromSide(int side) + { + return side == ForgeDirection.DOWN.ordinal() ? new int[]{0, 1, 2, 3, 4} : new int[]{0, 1, 2, 3, 4}; + } + + @Override + public boolean canInsertItem(int slotIndex, ItemStack itemStack, int side) + { + if (slotIndex >= 2) + return false; + return isItemValidForSlot(slotIndex, itemStack); + } + + @Override + public boolean canExtractItem(int slotIndex, ItemStack itemStack, int side) + { + return slotIndex == 2 || slotIndex == 3 || slotIndex == 4; + } } From d0ed6c5a474449719b4e7b5d5fed837e43a682d9 Mon Sep 17 00:00:00 2001 From: Gig Date: Mon, 8 Jun 2015 23:34:12 +0100 Subject: [PATCH 7/9] Added ISided for Lathe --- src/main/java/techreborn/tiles/TileLathe.java | 86 ++++++++++++++++++- 1 file changed, 85 insertions(+), 1 deletion(-) diff --git a/src/main/java/techreborn/tiles/TileLathe.java b/src/main/java/techreborn/tiles/TileLathe.java index c9b6ff2d6..3ecf02b1c 100644 --- a/src/main/java/techreborn/tiles/TileLathe.java +++ b/src/main/java/techreborn/tiles/TileLathe.java @@ -4,15 +4,18 @@ import ic2.api.energy.prefab.BasicSink; import ic2.api.energy.tile.IEnergyTile; import ic2.api.tile.IWrenchable; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; import techreborn.api.recipe.RecipeCrafter; import techreborn.init.ModBlocks; import techreborn.util.Inventory; import java.util.List; -public class TileLathe extends TileMachineBase implements IWrenchable, IEnergyTile { +public class TileLathe extends TileMachineBase implements IWrenchable, IEnergyTile, IInventory, ISidedInventory { public int tickTime; public BasicSink energy; @@ -114,6 +117,87 @@ public class TileLathe extends TileMachineBase implements IWrenchable, IEnergyTi super.onChunkUnload(); } + @Override + public int getSizeInventory() { + return inventory.getSizeInventory(); + } + + @Override + public ItemStack getStackInSlot(int slot) { + return inventory.getStackInSlot(slot); + } + + @Override + public ItemStack decrStackSize(int slot, int amount) { + return inventory.decrStackSize(slot, amount); + } + + @Override + public ItemStack getStackInSlotOnClosing(int slot) { + return inventory.getStackInSlotOnClosing(slot); + } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack) { + inventory.setInventorySlotContents(slot, stack); + } + + @Override + public String getInventoryName() { + return inventory.getInventoryName(); + } + + @Override + public boolean hasCustomInventoryName() { + return inventory.hasCustomInventoryName(); + } + + @Override + public int getInventoryStackLimit() { + return inventory.getInventoryStackLimit(); + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + return inventory.isUseableByPlayer(player); + } + + @Override + public void openInventory() { + inventory.openInventory(); + } + + @Override + public void closeInventory() { + inventory.closeInventory(); + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + return inventory.isItemValidForSlot(slot, stack); + } + + // ISidedInventory + @Override + public int[] getAccessibleSlotsFromSide(int side) + { + return side == ForgeDirection.DOWN.ordinal() ? new int[]{0, 1} : new int[]{0, 1}; + } + + @Override + public boolean canInsertItem(int slotIndex, ItemStack itemStack, int side) + { + if (slotIndex == 1) + return false; + return isItemValidForSlot(slotIndex, itemStack); + } + + @Override + public boolean canExtractItem(int slotIndex, ItemStack itemStack, int side) + { + return slotIndex == 1; + } + // @Override // public void addWailaInfo(List info) // { From b4219f25ed02af6468fbb1f2572214bdb9cf937a Mon Sep 17 00:00:00 2001 From: Gig Date: Mon, 8 Jun 2015 23:36:11 +0100 Subject: [PATCH 8/9] Added Isided for MatterFabricator --- .../tiles/TileMatterFabricator.java | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/main/java/techreborn/tiles/TileMatterFabricator.java b/src/main/java/techreborn/tiles/TileMatterFabricator.java index f1aa23587..69c198e48 100644 --- a/src/main/java/techreborn/tiles/TileMatterFabricator.java +++ b/src/main/java/techreborn/tiles/TileMatterFabricator.java @@ -5,13 +5,15 @@ import ic2.api.energy.tile.IEnergyTile; import ic2.api.tile.IWrenchable; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; import techreborn.config.ConfigTechReborn; import techreborn.init.ModBlocks; import techreborn.util.Inventory; -public class TileMatterFabricator extends TileMachineBase implements IWrenchable, IEnergyTile, IInventory { +public class TileMatterFabricator extends TileMachineBase implements IWrenchable, IEnergyTile, IInventory, ISidedInventory { public int tickTime; public BasicSink energy; @@ -156,5 +158,26 @@ public class TileMatterFabricator extends TileMachineBase implements IWrenchable public boolean isItemValidForSlot(int slot, ItemStack stack) { return inventory.isItemValidForSlot(slot, stack); } + + // ISidedInventory + @Override + public int[] getAccessibleSlotsFromSide(int side) + { + return side == ForgeDirection.DOWN.ordinal() ? new int[]{0, 1, 2, 3, 4, 5, 6} : new int[]{0, 1, 2, 3, 4, 5, 6}; + } + + @Override + public boolean canInsertItem(int slotIndex, ItemStack itemStack, int side) + { + if (slotIndex == 6) + return false; + return isItemValidForSlot(slotIndex, itemStack); + } + + @Override + public boolean canExtractItem(int slotIndex, ItemStack itemStack, int side) + { + return slotIndex == 6; + } } From ff61878bfb930c5bcd177065ccad9a411b59e31e Mon Sep 17 00:00:00 2001 From: Gig Date: Mon, 8 Jun 2015 23:38:15 +0100 Subject: [PATCH 9/9] Added isided for PlateCuttingMachine --- .../tiles/TilePlateCuttingMachine.java | 86 ++++++++++++++++++- 1 file changed, 85 insertions(+), 1 deletion(-) diff --git a/src/main/java/techreborn/tiles/TilePlateCuttingMachine.java b/src/main/java/techreborn/tiles/TilePlateCuttingMachine.java index 7acdbc2ac..a612ead13 100644 --- a/src/main/java/techreborn/tiles/TilePlateCuttingMachine.java +++ b/src/main/java/techreborn/tiles/TilePlateCuttingMachine.java @@ -4,15 +4,18 @@ import ic2.api.energy.prefab.BasicSink; import ic2.api.energy.tile.IEnergyTile; import ic2.api.tile.IWrenchable; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; import techreborn.api.recipe.RecipeCrafter; import techreborn.init.ModBlocks; import techreborn.util.Inventory; import java.util.List; -public class TilePlateCuttingMachine extends TileMachineBase implements IWrenchable, IEnergyTile { +public class TilePlateCuttingMachine extends TileMachineBase implements IWrenchable, IEnergyTile, IInventory, ISidedInventory { public int tickTime; public BasicSink energy; @@ -123,6 +126,87 @@ public class TilePlateCuttingMachine extends TileMachineBase implements IWrencha energy.onChunkUnload(); super.onChunkUnload(); } + + @Override + public int getSizeInventory() { + return inventory.getSizeInventory(); + } + + @Override + public ItemStack getStackInSlot(int slot) { + return inventory.getStackInSlot(slot); + } + + @Override + public ItemStack decrStackSize(int slot, int amount) { + return inventory.decrStackSize(slot, amount); + } + + @Override + public ItemStack getStackInSlotOnClosing(int slot) { + return inventory.getStackInSlotOnClosing(slot); + } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack) { + inventory.setInventorySlotContents(slot, stack); + } + + @Override + public String getInventoryName() { + return inventory.getInventoryName(); + } + + @Override + public boolean hasCustomInventoryName() { + return inventory.hasCustomInventoryName(); + } + + @Override + public int getInventoryStackLimit() { + return inventory.getInventoryStackLimit(); + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + return inventory.isUseableByPlayer(player); + } + + @Override + public void openInventory() { + inventory.openInventory(); + } + + @Override + public void closeInventory() { + inventory.closeInventory(); + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + return inventory.isItemValidForSlot(slot, stack); + } + + // ISidedInventory + @Override + public int[] getAccessibleSlotsFromSide(int side) + { + return side == ForgeDirection.DOWN.ordinal() ? new int[]{0, 1} : new int[]{0, 1}; + } + + @Override + public boolean canInsertItem(int slotIndex, ItemStack itemStack, int side) + { + if (slotIndex == 1) + return false; + return isItemValidForSlot(slotIndex, itemStack); + } + + @Override + public boolean canExtractItem(int slotIndex, ItemStack itemStack, int side) + { + return slotIndex == 1; + } }