package mods.eln.sim;
import mods.eln.Eln;
public class TimeRemover implements IProcess {
ITimeRemoverObserver observer;
double timeout = 0;
public TimeRemover(ITimeRemoverObserver observer) {
this.observer = observer;
}
public void setTimeout(double timeout) {
if (this.timeout <= 0) {
observer.timeRemoverAdd();
Eln.simulator.addSlowProcess(this);
}
this.timeout = timeout;
}
@Override
public void process(double time) {
if (isArmed()) {
timeout -= time;
if (timeout <= 0) {
shot();
}
}
}
public boolean isArmed() {
return timeout > 0;
}
public void shot() {
timeout = 0;
observer.timeRemoverRemove();
Eln.simulator.removeSlowProcess(this);
}
}