/* */ package NET.worlds.scape; /* */ /* */ import java.io.IOException; /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public class RollBehavior /* */ extends VelocityBehavior /* */ { /* */ public float rollFactor; /* */ private long lastTime; /* */ private float bumpFraction; /* */ /* */ public RollBehavior(Point3Temp vel, float diameter) /* */ { /* 32 */ super(vel, 0.0F, Point3Temp.make(0.0F, 0.0F, 1.0F), 0.0F, 0.0F); /* 33 */ this.rollFactor = (360.0F / (3.1416F * diameter)); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ public RollBehavior() {} /* */ /* */ /* */ /* */ /* */ /* */ public boolean handle(FrameEvent e) /* */ { /* 49 */ float vel = this.linearVel; /* 50 */ float dT = (float)(e.time - this.lastTime) / 1000.0F; /* 51 */ this.bumpFraction = 1.0F; /* 52 */ super.handle(e); /* 53 */ if ((vel != 0.0F) && (this.lastTime != 0L)) /* 54 */ e.receiver.worldSpin(-this.dir.y, this.dir.x, this.dir.z, /* 55 */ this.dir.length() * dT * vel * this.rollFactor * this.bumpFraction); /* 56 */ this.lastTime = e.time; /* 57 */ return true; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ public boolean handle(BumpEventTemp b) /* */ { /* 66 */ this.bumpFraction = b.fraction; /* 67 */ return super.handle(b); /* */ } /* */ /* */ /* */ /* */ /* */ public Object properties(int index, int offset, int mode, Object value) /* */ throws NoSuchPropertyException /* */ { /* 76 */ Object ret = null; /* 77 */ switch (index - offset) { /* */ case 0: /* 79 */ if (mode == 0) { /* 80 */ ret = FloatPropertyEditor.make( /* 81 */ new Property(this, index, "Roll Factor")); /* 82 */ } else if (mode == 1) { /* 83 */ ret = new Float(this.rollFactor); /* 84 */ } else if (mode == 2) /* 85 */ this.rollFactor = ((Float)value).floatValue(); /* 86 */ break; /* */ default: /* 88 */ ret = super.properties(index, offset + 1, mode, value); /* */ } /* 90 */ return ret; /* */ } /* */ /* 93 */ private static Object classCookie = new Object(); /* */ /* */ public void saveState(Saver s) throws IOException /* */ { /* 97 */ s.saveVersion(0, classCookie); /* 98 */ super.saveState(s); /* 99 */ s.saveFloat(this.rollFactor); /* */ /* 101 */ s.saveFloat(this.bumpFraction); /* */ } /* */ /* */ public void restoreState(Restorer r) throws IOException, TooNewException /* */ { /* 106 */ switch (r.restoreVersion(classCookie)) { /* */ case 0: /* 108 */ super.restoreState(r); /* 109 */ this.rollFactor = r.restoreFloat(); /* */ /* 111 */ this.bumpFraction = r.restoreFloat(); /* 112 */ break; /* */ default: /* 114 */ throw new TooNewException(); /* */ } /* */ } /* */ } /* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\scape\RollBehavior.class * Java compiler version: 6 (50.0) * JD-Core Version: 0.7.1 */