diff --git a/src/main/java/refinedstorage/tile/TileConstructor.java b/src/main/java/refinedstorage/tile/TileConstructor.java index aa2d9ff1a..4c1a01323 100755 --- a/src/main/java/refinedstorage/tile/TileConstructor.java +++ b/src/main/java/refinedstorage/tile/TileConstructor.java @@ -71,7 +71,7 @@ public class TileConstructor extends TileMachine implements ICompareConfig { } if (block != null && block.canPlaceBlockAt(worldObj, front)) { - ItemStack took = controller.take(filter.getStackInSlot(0), compare); + ItemStack took = controller.take(filter.getStackInSlot(0), 1, compare); if (took != null) { scheduler.resetSchedule(); diff --git a/src/main/java/refinedstorage/tile/TileExporter.java b/src/main/java/refinedstorage/tile/TileExporter.java index 3967e3d5d..f657cc419 100755 --- a/src/main/java/refinedstorage/tile/TileExporter.java +++ b/src/main/java/refinedstorage/tile/TileExporter.java @@ -48,9 +48,9 @@ public class TileExporter extends TileMachine implements ICompareConfig { ItemStack slot = filters.getStackInSlot(i); if (slot != null) { - int quantity = RefinedStorageUtils.hasUpgrade(upgrades, ItemUpgrade.TYPE_STACK) ? 64 : 1; + int size = RefinedStorageUtils.hasUpgrade(upgrades, ItemUpgrade.TYPE_STACK) ? 64 : 1; - ItemStack took = controller.take(ItemHandlerHelper.copyStackWithSize(slot, quantity), compare); + ItemStack took = controller.take(slot, size, compare); if (took != null) { scheduler.resetSchedule(); diff --git a/src/main/java/refinedstorage/tile/TileInterface.java b/src/main/java/refinedstorage/tile/TileInterface.java index 4f35fadef..485a1cab7 100755 --- a/src/main/java/refinedstorage/tile/TileInterface.java +++ b/src/main/java/refinedstorage/tile/TileInterface.java @@ -78,7 +78,7 @@ public class TileInterface extends TileMachine implements ICompareConfig { int needed = got == null ? wanted.stackSize : wanted.stackSize - got.stackSize; if (needed > 0) { - ItemStack took = controller.take(ItemHandlerHelper.copyStackWithSize(wanted, needed), compare); + ItemStack took = controller.take(wanted, needed, compare); if (took != null) { if (got == null) { diff --git a/src/main/java/refinedstorage/tile/autocrafting/task/BasicCraftingTask.java b/src/main/java/refinedstorage/tile/autocrafting/task/BasicCraftingTask.java index 1cd5e69ed..615e8feb6 100755 --- a/src/main/java/refinedstorage/tile/autocrafting/task/BasicCraftingTask.java +++ b/src/main/java/refinedstorage/tile/autocrafting/task/BasicCraftingTask.java @@ -64,7 +64,7 @@ public class BasicCraftingTask implements ICraftingTask { if (!satisfied[i]) { done = false; - ItemStack took = controller.take(input); + ItemStack took = controller.take(input, 1); if (took != null) { itemsTook.add(took); diff --git a/src/main/java/refinedstorage/tile/autocrafting/task/ProcessingCraftingTask.java b/src/main/java/refinedstorage/tile/autocrafting/task/ProcessingCraftingTask.java index 552874595..3a91301a4 100755 --- a/src/main/java/refinedstorage/tile/autocrafting/task/ProcessingCraftingTask.java +++ b/src/main/java/refinedstorage/tile/autocrafting/task/ProcessingCraftingTask.java @@ -53,7 +53,7 @@ public class ProcessingCraftingTask implements ICraftingTask { for (int i = 0; i < inserted.length; ++i) { if (!inserted[i]) { ItemStack input = pattern.getInputs()[i]; - ItemStack took = controller.take(input); + ItemStack took = controller.take(input, 1); if (took != null) { if (ItemHandlerHelper.insertItem(handler, took, true) == null) { diff --git a/src/main/java/refinedstorage/tile/controller/StorageHandler.java b/src/main/java/refinedstorage/tile/controller/StorageHandler.java index 07e991699..14fce003f 100755 --- a/src/main/java/refinedstorage/tile/controller/StorageHandler.java +++ b/src/main/java/refinedstorage/tile/controller/StorageHandler.java @@ -2,7 +2,6 @@ package refinedstorage.tile.controller; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; -import net.minecraftforge.items.ItemHandlerHelper; import refinedstorage.RefinedStorageUtils; import refinedstorage.item.ItemWirelessGrid; import refinedstorage.network.GridPullFlags; @@ -45,7 +44,7 @@ public class StorageHandler { size = Math.min(size, stack.getItem().getItemStackLimit(stack)); - ItemStack took = controller.take(ItemHandlerHelper.copyStackWithSize(stack, size)); + ItemStack took = controller.take(stack, size); if (took != null) { if (GridPullFlags.isPullingWithShift(flags)) { diff --git a/src/main/java/refinedstorage/tile/controller/TileController.java b/src/main/java/refinedstorage/tile/controller/TileController.java index 7ffcceccc..7502255ec 100755 --- a/src/main/java/refinedstorage/tile/controller/TileController.java +++ b/src/main/java/refinedstorage/tile/controller/TileController.java @@ -385,13 +385,13 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr return false; } - public ItemStack take(ItemStack stack) { - return take(stack, RefinedStorageUtils.COMPARE_DAMAGE | RefinedStorageUtils.COMPARE_NBT); + public ItemStack take(ItemStack stack, int size) { + return take(stack, size, RefinedStorageUtils.COMPARE_DAMAGE | RefinedStorageUtils.COMPARE_NBT); } - public ItemStack take(ItemStack stack, int flags) { - int requested = stack.stackSize; - int receiving = 0; + public ItemStack take(ItemStack stack, int size, int flags) { + int requested = size; + int received = 0; ItemStack newStack = null; @@ -405,10 +405,10 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr newStack.stackSize += took.stackSize; } - receiving += took.stackSize; + received += took.stackSize; } - if (requested == receiving) { + if (requested == received) { break; } } diff --git a/src/main/java/refinedstorage/tile/grid/TileGrid.java b/src/main/java/refinedstorage/tile/grid/TileGrid.java index 4bbd23299..bc63ef909 100755 --- a/src/main/java/refinedstorage/tile/grid/TileGrid.java +++ b/src/main/java/refinedstorage/tile/grid/TileGrid.java @@ -149,7 +149,7 @@ public class TileGrid extends TileMachine implements IGrid { if (slot != null) { if (slot.stackSize == 1 && isConnected()) { - matrix.setInventorySlotContents(i, controller.take(slot)); + matrix.setInventorySlotContents(i, controller.take(slot, 1)); } else { matrix.decrStackSize(i, 1); } @@ -247,7 +247,7 @@ public class TileGrid extends TileMachine implements IGrid { if (getType() == EnumGridType.CRAFTING) { for (ItemStack possibility : possibilities) { - ItemStack took = controller.take(possibility); + ItemStack took = controller.take(possibility, 1); if (took != null) { matrix.setInventorySlotContents(i, possibility);