diff --git a/src/main/java/refinedstorage/RefinedStorageUtils.java b/src/main/java/refinedstorage/RefinedStorageUtils.java index 4fbdca2a2..55c0cce08 100755 --- a/src/main/java/refinedstorage/RefinedStorageUtils.java +++ b/src/main/java/refinedstorage/RefinedStorageUtils.java @@ -298,14 +298,18 @@ public final class RefinedStorageUtils { } } - // Keep this on par with the Forestry generators - // 1 EU is worth 4 RF + // Keep this on par with the Forestry generators (1 EU is worth 4 RF) public static int convertIC2ToRF(double amount) { - return (int) amount * 4; + // IC2 passes infinity sometimes as a simulate test + if (amount >= Double.POSITIVE_INFINITY) { + return Integer.MAX_VALUE; + } + + return (int) Math.floor(amount) * 4; } public static double convertRFToIC2(int amount) { - return amount / 4; + return Math.floor(amount / 4); } public static ItemStack extractItem(INetworkMaster network, ItemStack stack, int size) { diff --git a/src/main/java/refinedstorage/tile/controller/TileController.java b/src/main/java/refinedstorage/tile/controller/TileController.java index e86e9d134..a57bcc206 100755 --- a/src/main/java/refinedstorage/tile/controller/TileController.java +++ b/src/main/java/refinedstorage/tile/controller/TileController.java @@ -101,7 +101,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR private List craftingTasksToCancel = new ArrayList(); private EnergyStorage energy = new EnergyStorage(RefinedStorage.INSTANCE.controller); - private BasicSink IC2Energy = new BasicSink(this, energy.getMaxEnergyStored(), Integer.MAX_VALUE) { + private BasicSink IC2Energy = new BasicSink(this, (int) convertRFToIC2(energy.getMaxEnergyStored()), Integer.MAX_VALUE) { @Override public double getDemandedEnergy() { return Math.max(0.0D, convertRFToIC2(energy.getMaxEnergyStored()) - convertRFToIC2(energy.getEnergyStored()));