package loon.action;
import loon.LSystem;
import loon.Screen;
import loon.event.FrameLoopEvent;
/**
* 执行一个FrameLoopEvent事件
*
*/
public class EventTo extends ActionEvent {
private final FrameLoopEvent _event;
public EventTo(FrameLoopEvent e) {
this._event = e;
}
@Override
public void update(long elapsedTime) {
Screen screen = null;
if (LSystem.getProcess() != null
&& LSystem.getProcess().getScreen() != null) {
screen = LSystem.getProcess().getScreen();
}
_event.call(elapsedTime, screen);
if (_event.isDead()) {
_event.completed();
}
_isCompleted = _event.isDead();
}
@Override
public void onLoad() {
_event.setDelay(getDelay());
}
@Override
public void kill() {
super.kill();
_event.kill();
}
public FrameLoopEvent getLoopEvent() {
return _event;
}
@Override
public boolean isComplete() {
return _isCompleted;
}
@Override
public ActionEvent cpy() {
EventTo event = new EventTo(_event);
event.set(this);
return event;
}
@Override
public ActionEvent reverse() {
_event.reset();
return cpy();
}
@Override
public String getName() {
return "event";
}
}