diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/OreDictedItemStackList.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/OreDictedItemStackList.java index 3f9c9b907..506e4f2b5 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/OreDictedItemStackList.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/OreDictedItemStackList.java @@ -35,9 +35,10 @@ public class OreDictedItemStackList implements IItemStackList { @Override public void add(ItemStack stack) { underlyingList.add(stack); - if (underlyingList.get(stack).stackSize == stack.stackSize) { - for (int id : OreDictionary.getOreIDs(stack)) { - stacks.put(id, stack); + ItemStack internalStack = underlyingList.get(stack); + if (internalStack != null && internalStack.stackSize == stack.stackSize) { + for (int id : OreDictionary.getOreIDs(internalStack)) { + stacks.put(id, internalStack); } } } @@ -83,7 +84,8 @@ public class OreDictedItemStackList implements IItemStackList { } } } - return underlyingList.get(stack, flags); + // Check the underlying list but don't do oredict things, as that has been tried before + return underlyingList.get(stack, flags & ~IComparer.COMPARE_OREDICT); } @Nullable diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/ic2/ControllerEnergyIC2.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/ic2/ControllerEnergyIC2.java index 6572917c5..1699c1475 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/ic2/ControllerEnergyIC2.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/integration/ic2/ControllerEnergyIC2.java @@ -8,7 +8,7 @@ public class ControllerEnergyIC2 implements IControllerEnergyIC2 { private BasicSink sink; public ControllerEnergyIC2(final TileController controller) { - this.sink = new BasicSink(controller, (int) IntegrationIC2.toEU(controller.getEnergy().getMaxEnergyStored()), Integer.MAX_VALUE) { + this.sink = new BasicSink(controller, (int) IntegrationIC2.toEU(controller.getEnergy().getMaxEnergyStored()), 3) { @Override public double getDemandedEnergy() { return Math.max(0.0D, IntegrationIC2.toEU(controller.getEnergy().getMaxEnergyStored()) - IntegrationIC2.toEU(controller.getEnergy().getEnergyStored()));