|
From: <tre...@us...> - 2007-12-15 16:04:45
|
Revision: 635
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=635&view=rev
Author: trevorolio
Date: 2007-12-15 08:04:50 -0800 (Sat, 15 Dec 2007)
Log Message:
-----------
Added a onUserAdded and onUserRemoved function to the script API.
Modified Paths:
--------------
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/SpaceSimulator.java
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/script/SpaceScriptEngine.java
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/SpaceSimulator.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/SpaceSimulator.java 2007-12-14 18:17:28 UTC (rev 634)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/SpaceSimulator.java 2007-12-15 16:04:50 UTC (rev 635)
@@ -222,10 +222,12 @@
if (SpaceEvent.ADD_USER_EVENT.equals(event.getName())) {
listener.generatedSpaceEvent(event, SpaceSimulator.this);
log("added user " + event.getStringProperty(SpaceEvent.USERNAME));
+ scriptEngine.handleSpaceEvent(event);
} else if (SpaceEvent.REMOVE_USER_EVENT.equals(event.getName())) {
listener.generatedSpaceEvent(event, SpaceSimulator.this);
log("removed user " + event.getStringProperty(SpaceEvent.USERNAME));
+ scriptEngine.handleSpaceEvent(event);
} else if (SpaceEvent.USER_START_MOTION_EVENT.equals(event.getName())) {
String username = event.getStringProperty(SpaceEvent.USERNAME);
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/script/SpaceScriptEngine.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/script/SpaceScriptEngine.java 2007-12-14 18:17:28 UTC (rev 634)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/script/SpaceScriptEngine.java 2007-12-15 16:04:50 UTC (rev 635)
@@ -71,8 +71,12 @@
public static final String ONUSERMOTIONSTART_FUNCTION_NAME = "onUserMotionStart";
- private static final String ONUSERSTOPPED_FUNCTION_NAME = "onUserStopped";
+ public static final String ONUSERSTOPPED_FUNCTION_NAME = "onUserStopped";
+ public static final String ONUSERADDED_FUNCTION_NAME = "onUserAdded";
+
+ public static final String ONUSERREMOVED_FUNCTION_NAME = "onUserRemoved";
+
private Vector3d workingPosition = new Vector3d();
private Quat4d workingOrientation = new Quat4d();
@@ -209,7 +213,7 @@
scriptPosition.jsSet_z(workingPosition.z);
workingTransform.get(workingOrientation);
- ScriptQuaternion scriptQuat = (ScriptQuaternion)context.newObject(globalScope, "Quaternion", new Object[0]);
+ ScriptQuaternion scriptQuat = (ScriptQuaternion) context.newObject(globalScope, "Quaternion", new Object[0]);
scriptQuat.jsFunction_set(workingOrientation.w, workingOrientation.x, workingOrientation.y, workingOrientation.z);
Object[] args = { username, scriptPosition, scriptQuat };
@@ -220,6 +224,33 @@
} finally {
Context.exit();
}
+
+ } else if (SpaceEvent.ADD_USER_EVENT.equals(event.getName())) {
+ String username = event.getStringProperty(SpaceEvent.USERNAME);
+ Context context = Context.enter();
+ try {
+ Object[] args = { username };
+ Object[] scopeObjs = thingScopes.getValues();
+ for (int i = 0; i < scopeObjs.length; i++) {
+ callJavascriptFunction(context, (ScriptableObject) scopeObjs[i], ONUSERADDED_FUNCTION_NAME, args);
+ }
+ } finally {
+ Context.exit();
+ }
+
+ } else if (SpaceEvent.REMOVE_USER_EVENT.equals(event.getName())) {
+ String username = event.getStringProperty(SpaceEvent.USERNAME);
+ Context context = Context.enter();
+ try {
+ Object[] args = { username };
+ Object[] scopeObjs = thingScopes.getValues();
+ for (int i = 0; i < scopeObjs.length; i++) {
+ callJavascriptFunction(context, (ScriptableObject) scopeObjs[i], ONUSERREMOVED_FUNCTION_NAME, args);
+ }
+ } finally {
+ Context.exit();
+ }
+
} else if (SpaceEvent.THING_CLICKED_EVENT.equals(event.getName())) {
Long thingID = event.getLongProperty(SpaceEvent.THING_ID);
if (thingID == null) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|