package NET.worlds.scape; import java.io.IOException; public class StartupSensor extends Sensor implements FrameHandler { private boolean hasTriggered = false; private static Object classCookie = new Object(); @Override public void addAction(Action o) { this.hasTriggered = false; super.addAction(o); } @Override public boolean handle(FrameEvent e) { if (!this.hasTriggered) { this.hasTriggered = true; this.trigger(e); } return true; } @Override public void saveState(Saver s) throws IOException { s.saveVersion(0, classCookie); super.saveState(s); } @Override public void restoreState(Restorer r) throws IOException, TooNewException { switch (r.restoreVersion(classCookie)) { case 0: super.restoreState(r); return; default: throw new TooNewException(); } } }