package net.scapeemulator.game.task;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public final class TaskScheduler {
private final List<Task> tasks = new ArrayList<>();
private final List<Task> taskQueue = new ArrayList<>();
public void schedule(Task task) {
taskQueue.add(task);
}
public void tick() {
for (Task task : taskQueue) {
tasks.add(task);
}
taskQueue.clear();
for (Iterator<Task> it = tasks.iterator(); it.hasNext();) {
Task task = it.next();
if (!task.isRunning()) {
it.remove();
continue;
}
task.tick();
}
}
}