summaryrefslogtreecommitdiff
path: root/NET/worlds/scape/AnimatedAction.java
diff options
context:
space:
mode:
Diffstat (limited to 'NET/worlds/scape/AnimatedAction.java')
-rw-r--r--NET/worlds/scape/AnimatedAction.java397
1 files changed, 397 insertions, 0 deletions
diff --git a/NET/worlds/scape/AnimatedAction.java b/NET/worlds/scape/AnimatedAction.java
new file mode 100644
index 0000000..7d36e46
--- /dev/null
+++ b/NET/worlds/scape/AnimatedAction.java
@@ -0,0 +1,397 @@
+/* */ package NET.worlds.scape;
+/* */
+/* */ import NET.worlds.console.Console;
+/* */ import NET.worlds.console.DefaultConsole;
+/* */ import NET.worlds.core.Timer;
+/* */ import NET.worlds.core.TimerCallback;
+/* */ import NET.worlds.network.URL;
+/* */ import java.io.PrintStream;
+/* */ import java.util.Vector;
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */ public class AnimatedAction
+/* */ implements AnimatedActionCallback, TimerCallback
+/* */ {
+/* */ static final int noAction = 0;
+/* */ static final int addToInventory = 1;
+/* */ static final int removeObject = 2;
+/* */ static final int animateObject = 3;
+/* */ static final int moveObjectTo = 4;
+/* */ static final int playSound = 5;
+/* */ static final int obtainConsent = 0;
+/* */ static final int zoomOut = 1;
+/* */ static final int moveToObject = 2;
+/* */ static final int preAnimateAction = 3;
+/* */ static final int actOnObject1 = 4;
+/* */ static final int simulAnimateAction = 5;
+/* */ static final int postAnimateAction = 6;
+/* */ static final int actOnObject2 = 7;
+/* */ static final int zoomBack = 8;
+/* 51 */ static String[] actions = {
+/* 52 */ "noAction",
+/* 53 */ "addToInventory",
+/* 54 */ "removeObject",
+/* 55 */ "animateObject",
+/* 56 */ "moveObjectTo",
+/* 57 */ "playSound" };
+/* */ String actionName;
+/* */ Vector<String> avatarNames;
+/* */ Vector<String> targetObjects;
+/* */
+/* 62 */ AnimatedAction() { this.avatarNames = new Vector();
+/* 63 */ this.targetObjects = new Vector();
+/* */ }
+/* */
+/* */ public static int getAction(String action)
+/* */ {
+/* 68 */ for (int i = 0; i < actions.length; i++)
+/* */ {
+/* 70 */ if (action.equals(actions[i])) {
+/* 71 */ return i;
+/* */ }
+/* */ }
+/* 74 */ return 0;
+/* */ }
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* 99 */ Shape _targetShape = null;
+/* */
+/* */
+/* */ boolean consentRequired;
+/* */
+/* */
+/* */ Point2 targetRelPosition;
+/* */
+/* */
+/* */ Point2 targetPosition;
+/* */
+/* */
+/* */ double targetRelYaw;
+/* */
+/* */
+/* */ float targetYaw;
+/* */
+/* */
+/* */ int preAnimationAction;
+/* */
+/* */
+/* */ String preAnimationParameter;
+/* */
+/* */
+/* */ String actionName1;
+/* */
+/* */
+/* */ int simultaneousAction;
+/* */
+/* */
+/* */ String simultaneousParameter;
+/* */
+/* */
+/* */ int postAnimationAction;
+/* */
+/* */
+/* */ String postAnimationParameter;
+/* */
+/* */ String actionName2;
+/* */
+/* */ int _oldMode;
+/* */
+/* */ int _oldSpeed;
+/* */
+/* */ private int _state;
+/* */
+/* */ private HoloPilot _pilot;
+/* */
+/* */ private float _waitTime;
+/* */
+/* */
+/* */ void setTargetShape(Shape s)
+/* */ {
+/* 152 */ this._targetShape = s;
+/* */
+/* 154 */ Point3Temp objVec = Point3Temp.make(this.targetRelPosition.x,
+/* 155 */ this.targetRelPosition.y, 0.0F);
+/* */
+/* 157 */ this.targetYaw = this._targetShape.getObjectToWorldMatrix().getYaw();
+/* 158 */ Transform t = new Transform();
+/* 159 */ t.yaw(-this.targetYaw);
+/* 160 */ objVec.vectorTimes(t);
+/* 161 */ t.recycle();
+/* */
+/* 163 */ Point3Temp shapePos = this._targetShape.getWorldPosition();
+/* */
+/* 165 */ objVec.plus(shapePos);
+/* */
+/* 167 */ this.targetPosition = new Point2(objVec.x, objVec.y);
+/* */ }
+/* */
+/* */ public void execute(HoloPilot pilot)
+/* */ {
+/* 172 */ if (this._targetShape == null)
+/* */ {
+/* 174 */ System.out.println("No target shape for action " + this.actionName);
+/* 175 */ return;
+/* */ }
+/* */
+/* 178 */ this._targetShape.setBumpable(false);
+/* */
+/* 180 */ this._pilot = pilot;
+/* */
+/* */
+/* */
+/* */
+/* 185 */ this._state = 0;
+/* 186 */ stateChanged();
+/* */ }
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */ public void motionComplete(int completionCode)
+/* */ {
+/* 195 */ this._state += 1;
+/* 196 */ stateChanged();
+/* */ }
+/* */
+/* */ public void timerDone()
+/* */ {
+/* 201 */ motionComplete(0);
+/* */ }
+/* */
+/* */ private void stateChanged()
+/* */ {
+/* 206 */ switch (this._state)
+/* */ {
+/* */
+/* */ case 0:
+/* 210 */ motionComplete(0);
+/* 211 */ break;
+/* */
+/* */
+/* */
+/* */ case 1:
+/* 216 */ Console c = Console.getActive();
+/* 217 */ if ((c instanceof DefaultConsole))
+/* */ {
+/* 219 */ Pilot p = Pilot.getActive();
+/* 220 */ this._oldMode = p.getOutsideCameraMode();
+/* 221 */ this._oldSpeed = p.getOutsideCameraSpeed();
+/* 222 */ p.setOutsideCameraMode(8,
+/* 223 */ 1);
+/* */ }
+/* */
+/* 226 */ motionComplete(0);
+/* 227 */ break;
+/* */
+/* */
+/* */
+/* */
+/* */ case 2:
+/* 233 */ double newYaw = this.targetYaw + this.targetRelYaw;
+/* 234 */ this._pilot.addCallback(this);
+/* */
+/* */
+/* 237 */ this._pilot.walkTo(new Point2(this.targetPosition.x,
+/* 238 */ this.targetPosition.y), (float)newYaw);
+/* 239 */ break;
+/* */
+/* */
+/* */
+/* */ case 3:
+/* 244 */ this._pilot.removeSmoothDriver();
+/* 245 */ this._pilot.returnHandsOffDriver();
+/* 246 */ doAction(this.preAnimationAction, this.preAnimationParameter);
+/* 247 */ motionComplete(0);
+/* 248 */ break;
+/* */ case 4:
+/* */ case 7:
+/* */ String actionName;
+/* */
+/* */ String actionName;
+/* */
+/* 255 */ if (this._state == 4) {
+/* 256 */ actionName = this.actionName1;
+/* */ } else {
+/* 258 */ actionName = this.actionName2;
+/* */ }
+/* 260 */ this._waitTime = this._pilot.animate(actionName);
+/* 261 */ motionComplete(0);
+/* 262 */ break;
+/* */
+/* */
+/* */
+/* */ case 5:
+/* 267 */ doAction(this.simultaneousAction, this.simultaneousParameter +
+/* 268 */ "|sender|" + this.actionName1);
+/* */
+/* */
+/* */
+/* 272 */ Timer tm = new Timer(this._waitTime, this);
+/* 273 */ tm.start();
+/* 274 */ break;
+/* */
+/* */
+/* */
+/* */
+/* */ case 6:
+/* 280 */ doAction(this.postAnimationAction, this.postAnimationParameter);
+/* 281 */ motionComplete(0);
+/* 282 */ break;
+/* */
+/* */
+/* */
+/* */
+/* */ case 8:
+/* 288 */ Console c = Console.getActive();
+/* 289 */ if ((c instanceof DefaultConsole))
+/* */ {
+/* 291 */ Pilot p = Pilot.getActive();
+/* 292 */ p.setOutsideCameraMode(this._oldMode, this._oldSpeed);
+/* */ }
+/* 294 */ this._pilot.removeHandsOffDriver();
+/* 295 */ this._pilot.returnSmoothDriver();
+/* 296 */ AnimatedActionManager.get().actionCompleted(this);
+/* 297 */ motionComplete(0);
+/* */ }
+/* */
+/* */ }
+/* */
+/* */
+/* */
+/* */
+/* */ public void abort()
+/* */ {
+/* 307 */ this._state = 8;
+/* 308 */ stateChanged();
+/* */ }
+/* */
+/* */ private void doAction(int action, String parameter)
+/* */ {
+/* 313 */ switch (action)
+/* */ {
+/* */ case 0:
+/* */ break;
+/* */
+/* */
+/* */
+/* */ case 1:
+/* */ break;
+/* */
+/* */
+/* */
+/* */ case 2:
+/* */ break;
+/* */
+/* */
+/* */
+/* */
+/* */ case 5:
+/* 332 */ Sound s = new Sound(URL.make(parameter));
+/* 333 */ this._pilot.add(s);
+/* 334 */ s.trigger(null, null);
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */ case 3:
+/* 343 */ Drone targetDrone = null;
+/* */
+/* 345 */ if (this._targetShape != null)
+/* */ {
+/* 347 */ if ((this._targetShape instanceof PosableShape))
+/* */ {
+/* 349 */ SuperRoot owner = this._targetShape.getOwner();
+/* 350 */ if ((owner instanceof Drone))
+/* */ {
+/* 352 */ targetDrone = (Drone)owner;
+/* */ }
+/* */ }
+/* */ }
+/* */
+/* 357 */ if (targetDrone != null)
+/* */ {
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* 371 */ Pilot.sendText(targetDrone.getLongID(),
+/* 372 */ "&|+action2>" + parameter);
+/* */ }
+/* */
+/* 375 */ if ((this._targetShape instanceof PosableShape))
+/* */ {
+/* */
+/* 378 */ String actionName = null;
+/* 379 */ int idx = parameter.indexOf("|sender|");
+/* 380 */ if (idx != -1) {
+/* 381 */ actionName = parameter.substring(0, idx);
+/* */ } else {
+/* 383 */ actionName = parameter;
+/* */ }
+/* 385 */ ((PosableShape)this._targetShape).animate(actionName);
+/* */ }
+/* */
+/* 388 */ break;
+/* */ }
+/* */ }
+/* */ }
+
+
+/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\scape\AnimatedAction.class
+ * Java compiler version: 6 (50.0)
+ * JD-Core Version: 0.7.1
+ */ \ No newline at end of file