Skip to content

Commit be24de5

Browse files
committed
do not report negative amperes to the GT network
1 parent 49b51e9 commit be24de5

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/main/java/appeng/tile/powersink/GTPowerSink.java

+8-2
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,18 @@ public abstract class GTPowerSink extends AERootPoweredTile implements IEnergyCo
2020
@Override
2121
public long injectEnergyUnits(byte side, long voltage, long amperage) {
2222
double e = PowerUnits.EU.convertTo(PowerUnits.AE, voltage * amperage);
23-
double overflow = PowerUnits.AE.convertTo(PowerUnits.EU, this.funnelPowerIntoStorage(e, Actionable.SIMULATE));
24-
long used = amperage - (int)Math.ceil(overflow / voltage);
23+
double overflow = this.funnelPowerIntoStorage(e, Actionable.SIMULATE);
24+
// Energy grid may keep some "extra energy" that it is happy to get rid of
25+
// so overflow may actually be greater than input
26+
if (overflow >= e)
27+
return 0;
28+
long used = amperage - (int)Math.ceil(PowerUnits.AE.convertTo(PowerUnits.EU, overflow) / voltage);
2529
if (used > 0) {
2630
e = PowerUnits.EU.convertTo(PowerUnits.AE, voltage * used);
2731
PowerUnits.AE.convertTo(PowerUnits.EU, this.funnelPowerIntoStorage(e, Actionable.MODULATE));
2832
}
33+
else if (used < 0)
34+
used = 0;
2935
return used;
3036
}
3137

0 commit comments

Comments
 (0)