package minizoo.c.action;
import minizoo.c.Entity;
public class Targeted extends Finite {
public static Targeted c(Entity overrideTarget, Finite targetAction) {
return new Targeted(overrideTarget, targetAction);
}
public Targeted(Entity overrideTarget, Finite targetAction) {
setOverrideTarget(overrideTarget);
setTargetAction(targetAction);
getTargetAction().setTarget(getOverrideTarget());
}
@Override
public void clear() {
super.clear();
getTargetAction().clear();
}
@Override
public void setTarget(Entity target) {
getTargetAction().setTarget(getOverrideTarget());
}
@Override
public Entity getTarget() {
return getOverrideTarget();
}
@Override
public void update(float elapsed) {
getTargetAction().update(elapsed);
}
@Override
public void sample(float t) {
getTargetAction().sample(t);
}
@Override
public float getDuration() {
return getTargetAction().getDuration();
}
public void setTargetAction(Finite targetAction) {
this.targetAction = targetAction;
}
public Finite getTargetAction() {
return targetAction;
}
public void setOverrideTarget(Entity overrideTarget) {
this.overrideTarget = overrideTarget;
}
public Entity getOverrideTarget() {
return overrideTarget;
}
Entity overrideTarget;
Finite targetAction;
}