diff --git a/src/main/java/refinedstorage/tile/TileDetector.java b/src/main/java/refinedstorage/tile/TileDetector.java index c3574f4af..946bc5bd6 100755 --- a/src/main/java/refinedstorage/tile/TileDetector.java +++ b/src/main/java/refinedstorage/tile/TileDetector.java @@ -51,29 +51,21 @@ public class TileDetector extends TileMachine implements ICompareConfig { boolean wasPowered = powered; if (slot != null) { - boolean foundAny = false; + ItemStack stack = controller.getItem(slot, compare); - for (ItemStack stack : controller.getItems()) { - if (RefinedStorageUtils.compareStack(slot, stack, compare)) { - foundAny = true; - - switch (mode) { - case MODE_UNDER: - powered = stack.stackSize < amount; - break; - case MODE_EQUAL: - powered = stack.stackSize == amount; - break; - case MODE_ABOVE: - powered = stack.stackSize > amount; - break; - } - - break; + if (stack != null) { + switch (mode) { + case MODE_UNDER: + powered = stack.stackSize < amount; + break; + case MODE_EQUAL: + powered = stack.stackSize == amount; + break; + case MODE_ABOVE: + powered = stack.stackSize > amount; + break; } - } - - if (!foundAny) { + } else { if (mode == MODE_UNDER && amount != 0) { powered = true; } else if (mode == MODE_EQUAL && amount == 0) { diff --git a/src/main/java/refinedstorage/tile/controller/TileController.java b/src/main/java/refinedstorage/tile/controller/TileController.java index 21805353f..c5fb136db 100755 --- a/src/main/java/refinedstorage/tile/controller/TileController.java +++ b/src/main/java/refinedstorage/tile/controller/TileController.java @@ -441,6 +441,16 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr return newStack; } + public ItemStack getItem(ItemStack stack, int flags) { + for (ItemStack otherStack : items) { + if (RefinedStorageUtils.compareStack(otherStack, stack, flags)) { + return otherStack; + } + } + + return null; + } + public void setEnergyStored(int amount) { energy.setEnergyStored(amount); }