From 78948a42ab71e6db769981cf09dfdc84d93626fc Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sun, 5 Jun 2016 20:40:39 +0200 Subject: [PATCH] Better interface stuff --- .../java/refinedstorage/tile/TileInterface.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main/java/refinedstorage/tile/TileInterface.java b/src/main/java/refinedstorage/tile/TileInterface.java index 85f992741..2ded3d59a 100755 --- a/src/main/java/refinedstorage/tile/TileInterface.java +++ b/src/main/java/refinedstorage/tile/TileInterface.java @@ -24,7 +24,12 @@ public class TileInterface extends TileMachine implements ICompareConfig { private BasicItemHandler importItems = new BasicItemHandler(9, this); private BasicItemHandler exportSpecimenItems = new BasicItemHandler(9, this); private BasicItemHandler exportItems = new BasicItemHandler(9, this); - private BasicItemHandler upgrades = new BasicItemHandler(4, this, new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_SPEED)); + private BasicItemHandler upgrades = new BasicItemHandler( + 4, + this, + new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_SPEED), + new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_STACK) + ); private int compare = 0; @@ -47,7 +52,15 @@ public class TileInterface extends TileMachine implements ICompareConfig { currentSlot++; } else { if (ticks % RefinedStorageUtils.getSpeed(upgrades) == 0) { - importItems.setStackInSlot(currentSlot, controller.push(ItemHandlerHelper.copyStackWithSize(slot, 1), false)); + int size = RefinedStorageUtils.hasUpgrade(upgrades, ItemUpgrade.TYPE_STACK) ? 64 : 1; + ItemStack push = ItemHandlerHelper.copyStackWithSize(slot, size); + ItemStack remainder = controller.push(push, false); + + if (remainder == null) { + importItems.extractItem(currentSlot, size, false); + } else { + importItems.extractItem(currentSlot, size - remainder.stackSize, false); + } } }