package NET.worlds.scape; import java.io.IOException; public class SetFloatAction extends SlidePropertyAction { private float _value; private float _start; private static Object classCookie = new Object(); @Override public Persister trigger(Event e, Persister seqID) { Persister ret = null; if (this.useParam()) { try { this._value = Float.valueOf(this.param()); } catch (NumberFormatException var6) { System.out.println(this.getName() + " unable to parse " + this.paramName()); this._value = 0.0F; } } float val = this._value; if (this.slide()) { if (seqID == null) { this.start(); this._start = (Float)this.get(); } float frac = this.fraction(); if (frac < 1.0) { val = (this._value - this._start) * frac + this._start; ret = this; } } this.set(new Float(val)); return ret; } @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 = FloatPropertyEditor.make(new Property(this, index, "Set To")); } else if (mode == 1) { ret = new Float(this._value); } else if (mode == 2) { this._value = (Float)value; } break; default: ret = super.properties(index, offset + 1, mode, value); } return ret; } @Override public void saveState(Saver s) throws IOException { s.saveVersion(2, classCookie); super.saveState(s); s.saveFloat(this._value); } @Override public void restoreState(Restorer r) throws IOException, TooNewException { switch (r.restoreVersion(classCookie)) { case 1: this.setPropertyActionRestoreState(r); this._value = r.restoreFloat(); break; case 2: super.restoreState(r); this._value = r.restoreFloat(); break; default: throw new TooNewException(); } } }