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