diff --git a/src/main/java/remoteio/common/RemoteIO.java b/src/main/java/remoteio/common/RemoteIO.java index 47fe8111..862a3648 100644 --- a/src/main/java/remoteio/common/RemoteIO.java +++ b/src/main/java/remoteio/common/RemoteIO.java @@ -40,6 +40,8 @@ public class RemoteIO { public static LocalizationUpdater localizationUpdater; + public static int heatProvided = 100; + public static Configuration configuration; @EventHandler @@ -79,7 +81,8 @@ public void preInit(FMLPreInitializationEvent event) { FMLInterModComms.sendMessage("Waila", "register", "remoteio.common.core.compat.WailaProvider.registerProvider"); } - localizationUpdater = new LocalizationUpdater("dmillerw", "RemoteIO", "17", "src/main/resources/assets/remoteio/lang/"); + heatProvided = configuration.getInt("heatProvided", "balancing", 1000, 0, Integer.MAX_VALUE, "Max HU provided by Lava heater per tick"); + localizationUpdater = new LocalizationUpdater("GTNewHorizons", "RemoteIO", "master", "src/main/resources/assets/remoteio/lang/"); localizationUpdater.initializeThread(configuration); proxy.preInit(event); diff --git a/src/main/java/remoteio/common/tile/TileMachineHeater.java b/src/main/java/remoteio/common/tile/TileMachineHeater.java index 54cc1e55..44087322 100644 --- a/src/main/java/remoteio/common/tile/TileMachineHeater.java +++ b/src/main/java/remoteio/common/tile/TileMachineHeater.java @@ -1,6 +1,7 @@ package remoteio.common.tile; import cpw.mods.fml.common.Optional; +import remoteio.common.RemoteIO; import remoteio.common.lib.DependencyInfo; import remoteio.common.tile.core.TileCore; import ic2.api.energy.tile.IHeatSource; @@ -19,6 +20,7 @@ public class TileMachineHeater extends TileCore implements IHeatSource { public boolean filled = false; + public int heatUsed = 0; @Override public void writeCustomNBT(NBTTagCompound nbt) { @@ -32,9 +34,12 @@ public void readCustomNBT(NBTTagCompound nbt) { @Override public void updateEntity() { - if (!worldObj.isRemote && worldObj.getTotalWorldTime() % 20 == 0) { - update(); - if (filled) push(); + if (!worldObj.isRemote) { + heatUsed = 0; + if (worldObj.getTotalWorldTime() % 20 == 0) { + update(); + if (filled) push(); + } } } @@ -75,7 +80,10 @@ public int maxrequestHeatTick(ForgeDirection directionFrom) { @Override @Optional.Method(modid = DependencyInfo.ModIds.IC2) - public int requestHeat(ForgeDirection directionFrom, int requestheat) { - return filled ? requestheat : 0; + public int requestHeat(ForgeDirection directionFrom, int requestedHeat) { + if (!filled) return 0; + int used = Math.min(RemoteIO.heatProvided - heatUsed, requestedHeat); + heatUsed -= used; + return used; } }