package at.er.ytbattle.util.timer;
import java.util.TimerTask;
public class CustomTimerTask extends TimerTask {
private Timeable timeable;
private int every;
private int count;
private boolean firstRun;
public CustomTimerTask(Timeable timeable, int count) {
this.timeable = timeable;
this.count = count;
this.every = this.timeable.timeScale.getMultiplier() * this.timeable.getEvery();
this.firstRun = this.timeable.elapsedTime == 0 && this.count == 0;
}
@Override
public void run() {
if (this.firstRun) {
this.tickTimeable(this.timeable.elapsedTime);
this.firstRun = false;
} else {
if (count >= every) {
count = 0;
this.timeable.elapsedTime += this.timeable.every;
this.tickTimeable(this.timeable.elapsedTime);
}
}
count++;
}
private void tickTimeable(long elapsedTime) {
try {
this.timeable.tick(elapsedTime);
} catch (Exception e) {
e.printStackTrace();
}
}
public int getCount() {
return this.count;
}
}