package minizoo.c.action;
import minizoo.c.Entity;
import java.util.ArrayList;
public class Spawn extends Finite {
public static Spawn c(Finite... actions) {
return new Spawn(actions);
}
public Spawn(Finite... actions) {
this.actions = new ArrayList<Finite>();
for (Finite action : actions) {
this.actions.add(action);
}
}
@Override
public void setTarget(Entity target) {
super.setTarget(target);
for (Action action : actions) {
action.setTarget(target);
}
}
@Override
public void clear() {
super.clear();
for (Finite action : actions) {
action.clear();
}
}
@Override
public float getDuration() {
float max = 0f;
for (Finite action : actions) {
max = Math.max(max, action.getDuration());
}
return max;
}
@Override
public void update(float elapsed) {
float prevTime = time;
super.update(elapsed);
for (Finite action : actions) {
float duration = action.getDuration();
if (time < duration || prevTime < duration) {
action.update(elapsed);
}
}
}
@Override
public void sample(float t) { }
ArrayList<Finite> actions;
}