package NET.worlds.scape; import java.io.IOException; public abstract class Action extends SuperRoot { public String rightMenuLabel; private static Object classCookie = new Object(); public abstract Persister trigger(Event var1, Persister var2); @Override public void saveState(Saver s) throws IOException { s.saveVersion(4, classCookie); s.saveString(this.rightMenuLabel); super.saveState(s); } @Override public void restoreState(Restorer r) throws IOException, TooNewException { switch (r.restoreVersion(classCookie)) { case 1: r.restoreInt(); this.setName(r.restoreString()); case 0: r.setOldFlag(); break; case 2: r.setOldFlag(); super.restoreState(r); r.restoreInt(); break; case 4: this.rightMenuLabel = r.restoreString(); case 3: super.restoreState(r); break; default: throw new TooNewException(); } } @Override public Object properties(int index, int offset, int mode, Object value) throws NoSuchPropertyException { Object ret = null; switch (index - offset) { case 0: if (mode == 0) { ret = BooleanPropertyEditor.make(new Property(this, index, "Trigger Now"), "No", "Yes"); } else if (mode == 1) { ret = new Boolean(false); } else if (mode == 2 && (Boolean)value) { RunningActionHandler.trigger(this, this.getWorld(), null); } break; case 1: if (mode == 0) { ret = StringPropertyEditor.make(new Property(this, index, "Right Menu Label").allowSetNull()); } else if (mode == 1) { ret = this.rightMenuLabel; } else if (mode == 2) { this.rightMenuLabel = (String)value; } break; default: ret = super.properties(index, offset + 2, mode, value); } return ret; } }