battery schmattery

This commit is contained in:
Bob 2022-11-08 21:38:30 +01:00
parent 06b66e3edf
commit 52cfe40da8

View File

@ -192,6 +192,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I
protected void transmitPowerFairly() {
if(power == 0) return;
short mode = (short) this.getRelevantMode();
//HasSets to we don'T have any duplicates
@ -208,6 +209,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I
IEnergyConductor con = (IEnergyConductor) te;
if(con.getPowerNet() != null) {
nets.add(con.getPowerNet());
con.getPowerNet().unsubscribe(this);
consumers.addAll(con.getPowerNet().getSubscribers());
}
@ -216,17 +218,12 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I
consumers.add((IEnergyConnector) te);
}
}
//unsubscribe from all nets
nets.forEach(x -> x.unsubscribe(this));
//send power to buffered consumers, independent of nets
if(mode == mode_buffer || mode == mode_output) {
long oldPower = this.power;
List<IEnergyConnector> con = new ArrayList();
con.addAll(consumers);
long transfer = this.power - PowerNet.fairTransfer(con, this.power);
this.power = oldPower - transfer;
this.power = PowerNet.fairTransfer(con, this.power);
}
//resubscribe to buffered nets, if necessary