From e3b220ba9095928f240fb68fcd55148a03c33fce Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Mon, 4 Jul 2016 00:46:46 +0200 Subject: [PATCH] Properly convert IC2 energy --- .../java/refinedstorage/RefinedStorageUtils.java | 10 ++++++++++ .../refinedstorage/item/ItemWirelessGrid.java | 11 +++++++---- .../tile/controller/TileController.java | 15 +++++++++------ 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/main/java/refinedstorage/RefinedStorageUtils.java b/src/main/java/refinedstorage/RefinedStorageUtils.java index f3c67e03b..4fbdca2a2 100755 --- a/src/main/java/refinedstorage/RefinedStorageUtils.java +++ b/src/main/java/refinedstorage/RefinedStorageUtils.java @@ -298,6 +298,16 @@ public final class RefinedStorageUtils { } } + // Keep this on par with the Forestry generators + // 1 EU is worth 4 RF + public static int convertIC2ToRF(double amount) { + return (int) amount * 4; + } + + public static double convertRFToIC2(int amount) { + return amount / 4; + } + public static ItemStack extractItem(INetworkMaster network, ItemStack stack, int size) { return network.extractItem(stack, size, CompareFlags.COMPARE_DAMAGE | CompareFlags.COMPARE_NBT); } diff --git a/src/main/java/refinedstorage/item/ItemWirelessGrid.java b/src/main/java/refinedstorage/item/ItemWirelessGrid.java index daf562e7c..de27d65e0 100755 --- a/src/main/java/refinedstorage/item/ItemWirelessGrid.java +++ b/src/main/java/refinedstorage/item/ItemWirelessGrid.java @@ -30,6 +30,9 @@ import refinedstorage.tile.grid.TileGrid; import javax.annotation.Nullable; import java.util.List; +import static refinedstorage.RefinedStorageUtils.convertIC2ToRF; +import static refinedstorage.RefinedStorageUtils.convertRFToIC2; + public class ItemWirelessGrid extends ItemEnergyContainer implements ISpecialElectricItem, IElectricItemManager { public static final int TYPE_NORMAL = 0; public static final int TYPE_CREATIVE = 1; @@ -229,22 +232,22 @@ public class ItemWirelessGrid extends ItemEnergyContainer implements ISpecialEle @Override public double charge(ItemStack stack, double amount, int tier, boolean ignoreTransferLimit, boolean simulate) { - return receiveEnergy(stack, (int) amount, simulate); + return convertRFToIC2(receiveEnergy(stack, convertIC2ToRF(amount), simulate)); } @Override public double discharge(ItemStack stack, double amount, int tier, boolean ignoreTransferLimit, boolean externally, boolean simulate) { - return extractEnergy(stack, (int) amount, simulate); + return convertRFToIC2(extractEnergy(stack, convertIC2ToRF(amount), simulate)); } @Override public double getCharge(ItemStack stack) { - return getEnergyStored(stack); + return convertRFToIC2(getEnergyStored(stack)); } @Override public double getMaxCharge(ItemStack stack) { - return getMaxEnergyStored(stack); + return convertRFToIC2(getMaxEnergyStored(stack)); } @Override diff --git a/src/main/java/refinedstorage/tile/controller/TileController.java b/src/main/java/refinedstorage/tile/controller/TileController.java index 6ccb180f0..e86e9d134 100755 --- a/src/main/java/refinedstorage/tile/controller/TileController.java +++ b/src/main/java/refinedstorage/tile/controller/TileController.java @@ -53,6 +53,9 @@ import refinedstorage.tile.config.RedstoneMode; import java.util.*; +import static refinedstorage.RefinedStorageUtils.convertIC2ToRF; +import static refinedstorage.RefinedStorageUtils.convertRFToIC2; + public class TileController extends TileBase implements INetworkMaster, IEnergyReceiver, ITeslaHolder, ITeslaConsumer, ISynchronizedContainer, IRedstoneModeConfig { public static final String NBT_ENERGY = "Energy"; public static final String NBT_ENERGY_CAPACITY = "EnergyCapacity"; @@ -98,15 +101,15 @@ 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, energy.getMaxEnergyStored(), Integer.MAX_VALUE) { @Override public double getDemandedEnergy() { - return Math.max(0.0D, (double) energy.getMaxEnergyStored() - (double) energy.getEnergyStored()); + return Math.max(0.0D, convertRFToIC2(energy.getMaxEnergyStored()) - convertRFToIC2(energy.getEnergyStored())); } @Override public double injectEnergy(EnumFacing directionFrom, double amount, double voltage) { - energy.setEnergyStored(energy.getEnergyStored() + (int) amount); + energy.setEnergyStored(energy.getEnergyStored() + convertIC2ToRF(amount)); return 0.0D; } @@ -142,7 +145,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR @Override public void update() { if (!worldObj.isRemote) { - ic2Energy.update(); + IC2Energy.update(); for (INetworkNode node : nodesToAdd) { nodes.add(node); @@ -242,7 +245,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR public void invalidate() { super.invalidate(); - ic2Energy.invalidate(); + IC2Energy.invalidate(); } @Override @@ -286,7 +289,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR public void onChunkUnload() { disconnectNodes(); - ic2Energy.invalidate(); + IC2Energy.invalidate(); } public IGroupedStorage getStorage() {