Fixed interface having weird extraction / insertion rules, fixes #224

This commit is contained in:
Raoul Van den Berge
2016-07-28 15:44:22 +02:00
parent 5a1a2e6356
commit abf4d7d886
3 changed files with 28 additions and 5 deletions

View File

@@ -0,0 +1,24 @@
package refinedstorage.inventory;
import net.minecraft.item.ItemStack;
import net.minecraftforge.items.ItemStackHandler;
public class InterfaceItemHandler extends ItemStackHandler {
private BasicItemHandler importItems;
private BasicItemHandler exportItems;
public InterfaceItemHandler(BasicItemHandler importItems, BasicItemHandler exportItems) {
this.importItems = importItems;
this.exportItems = exportItems;
}
@Override
public ItemStack insertItem(int slot, ItemStack stack, boolean simulate) {
return importItems.insertItem(slot, stack, simulate);
}
@Override
public ItemStack extractItem(int slot, int amount, boolean simulate) {
return exportItems.extractItem(slot, amount, simulate);
}
}

View File

@@ -12,6 +12,7 @@ import net.minecraftforge.items.wrapper.CombinedInvWrapper;
import refinedstorage.RefinedStorage;
import refinedstorage.container.ContainerInterface;
import refinedstorage.inventory.BasicItemHandler;
import refinedstorage.inventory.InterfaceItemHandler;
import refinedstorage.inventory.UpgradeItemHandler;
import refinedstorage.item.ItemUpgrade;
import refinedstorage.tile.config.ICompareConfig;
@@ -22,6 +23,7 @@ public class TileInterface extends TileNode implements ICompareConfig {
private BasicItemHandler importItems = new BasicItemHandler(9, this);
private BasicItemHandler exportSpecimenItems = new BasicItemHandler(9, this);
private BasicItemHandler exportItems = new BasicItemHandler(9, this);
private InterfaceItemHandler itemHandler = new InterfaceItemHandler(importItems, exportItems);
private UpgradeItemHandler upgrades = new UpgradeItemHandler(4, this, ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK);
private int compare = 0;
@@ -173,11 +175,7 @@ public class TileInterface extends TileNode implements ICompareConfig {
@Override
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
if (facing == EnumFacing.DOWN) {
return (T) exportItems;
} else {
return (T) importItems;
}
return (T) itemHandler;
}
return super.getCapability(capability, facing);