From 667bad3b9247dd342f0a0f6c8b1fc0e77d19fb01 Mon Sep 17 00:00:00 2001 From: JP Sugarbroad Date: Wed, 5 Sep 2012 22:02:33 -0700 Subject: [PATCH] Consume energy when pulling from ISpecialInventory. Also pull multiple stacks if energy permits. --- common/buildcraft/transport/pipes/PipeItemsWood.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/common/buildcraft/transport/pipes/PipeItemsWood.java b/common/buildcraft/transport/pipes/PipeItemsWood.java index caabedb7..5a6faf7f 100644 --- a/common/buildcraft/transport/pipes/PipeItemsWood.java +++ b/common/buildcraft/transport/pipes/PipeItemsWood.java @@ -127,8 +127,15 @@ public class PipeItemsWood extends Pipe implements IPowerReceptor { public ItemStack[] checkExtract(IInventory inventory, boolean doRemove, Orientations from) { /// ISPECIALINVENTORY - if (inventory instanceof ISpecialInventory) - return ((ISpecialInventory) inventory).extractItem(doRemove, from, 1); + if (inventory instanceof ISpecialInventory) { + ItemStack[] stacks = ((ISpecialInventory) inventory).extractItem(doRemove, from, (int)powerProvider.getEnergyStored()); + if (stacks != null && doRemove) { + for (ItemStack stack : stacks) { + powerProvider.useEnergy(stack.stackSize, stack.stackSize, true); + } + } + return stacks; + } if (inventory instanceof ISidedInventory) { ISidedInventory sidedInv = (ISidedInventory) inventory;