diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index 95b972949..3f0f6bba4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -43,6 +43,7 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne public boolean isOn; public FluidTank tank; public long prev; + public static long maxJoules = Long.MAX_VALUE / 100_000; public static final int range = 50; @@ -98,6 +99,8 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); for(int i = 1; i <= range; i++) { + if(out > maxJoules) out = maxJoules; + beam = i; int x = xCoord + dir.offsetX * i; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java index b936d41b8..eea2287d6 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java @@ -146,4 +146,30 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery { public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public long transferPower(long power) { + + long overshoot = 0; + + // if power exceeds our transfer limit, truncate + if(power > maxTransfer) { + overshoot += power - maxTransfer; + power = maxTransfer; + } + + // this check is in essence the same as the default implementation, but re-arranged to never overflow the int64 range + // if the remaining power exceeds the power cap, truncate again + long freespace = this.getMaxPower() - this.getPower(); + + if(freespace < power) { + overshoot += power - freespace; + power = freespace; + } + + // what remains is sure to not exceed the transfer limit and the power cap (and therefore the int64 range) + this.setPower(this.getPower() + power); + + return overshoot; + } } diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_catalytic_reformer.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_catalytic_reformer.png index 27b5d21fd..077d004fd 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/processing/gui_catalytic_reformer.png and b/src/main/resources/assets/hbm/textures/gui/processing/gui_catalytic_reformer.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/reactors/gui_pwr.png b/src/main/resources/assets/hbm/textures/gui/reactors/gui_pwr.png new file mode 100644 index 000000000..7542ad6f4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/reactors/gui_pwr.png differ