package NET.worlds.scape; import java.io.IOException; public class SetPoint3Action extends SlidePropertyAction { private Point3 _value = null; private Point3 _start; private static Object classCookie = new Object(); @Override public Persister trigger(Event e, Persister seqID) { Persister ret = null; Point3 val = null; if (this.useParam()) { String p = this.param(); if (p == null) { this._value = null; } else { float x = 0.0F; float y = 0.0F; float z = 0.0F; boolean ok = true; int comma = p.indexOf(44); if (comma == -1) { ok = false; } else { try { x = Float.valueOf(p.substring(0, comma)); p = p.substring(comma + 1); comma = p.indexOf(44); if (comma == -1) { ok = false; } else { y = Float.valueOf(p.substring(0, comma)); p = p.substring(comma + 1); z = Float.valueOf(p); } } catch (NumberFormatException var12) { ok = false; } } if (!ok) { System.out.println(this.getName() + " unable to parse " + this.paramName()); x = 0.0F; y = 0.0F; z = 0.0F; } this._value = new Point3(x, y, z); } } if (this._value == null) { assert !this.slide(); } else { if (this.slide()) { if (seqID == null) { this.start(); this._start = (Point3)this.get(); } float frac = this.fraction(); if (frac < 1.0) { val = new Point3(this._value); val.x = (this._value.x - this._start.x) * frac + this._start.x; val.y = (this._value.y - this._start.y) * frac + this._start.y; val.z = (this._value.z - this._start.z) * frac + this._start.z; ret = this; } } if (val == null) { val = this._value; } } this.set(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 = Point3PropertyEditor.make(new Property(this, index, "Set To").allowSetNull()); if (this._value == null) { ret = MaybeNullPropertyEditor.make((Property)ret, new Point3()); } } else if (mode == 1) { ret = this._value; } else if (mode == 2) { this._value = (Point3)value; } else if (mode == 4) { this._value = null; } break; default: ret = super.properties(index, offset + 1, mode, value); } return ret; } @Override public void saveState(Saver s) throws IOException { s.saveVersion(1, classCookie); super.saveState(s); s.saveMaybeNull(this._value); } @Override public void restoreState(Restorer r) throws IOException, TooNewException { switch (r.restoreVersion(classCookie)) { case 1: super.restoreState(r); this._value = (Point3)r.restoreMaybeNull(); return; default: throw new TooNewException(); } } }