package NET.worlds.scape; import NET.worlds.core.Std; import java.io.IOException; class WaitActionState implements Persister { long endTime; private static Object classCookie = new Object(); WaitActionState() { } WaitActionState(long endTime) { this.endTime = endTime; } public boolean run(long time) { return time < this.endTime; } @Override public void saveState(Saver s) throws IOException { s.saveVersion(0, classCookie); s.saveLong(this.endTime - Std.getFastTime()); } @Override public void restoreState(Restorer r) throws IOException, TooNewException { switch (r.restoreVersion(classCookie)) { case 0: this.endTime = r.restoreLong() + Std.getFastTime(); return; default: throw new TooNewException(); } } @Override public void postRestore(int version) { } }