package mods.eln.transparentnode.electricalmachine;
import mods.eln.sim.IProcess;
public class ElectricalMachineSlowProcess implements IProcess {
private final ElectricalMachineElement element;
private double lastPublishAt = 0;
private double lastUpdate = 0;
private boolean boot = true;
public ElectricalMachineSlowProcess(ElectricalMachineElement element) {
this.element = element;
}
@Override
public void process(double time) {
double P = element.electricalResistor.getP();
lastUpdate += time;
if (!boot) {
if (Math.abs((P - lastPublishAt) / (lastPublishAt + 1.0)) > 1 / 32.0 && lastUpdate > 0.2) {
element.needPublish();
lastPublishAt = P;
lastUpdate = 0;
}
}
boot = false;
}
}