diff --git a/libraries/script-engine/src/EventTypes.cpp b/libraries/script-engine/src/EventTypes.cpp index 4ae3241b15..70d0950ebe 100644 --- a/libraries/script-engine/src/EventTypes.cpp +++ b/libraries/script-engine/src/EventTypes.cpp @@ -23,13 +23,15 @@ #include "TouchEvent.h" #include "WheelEvent.h" -STATIC_SCRIPT_TYPES_INITIALIZER((+[](ScriptManager* manager){ - auto scriptEngine = manager->engine().get(); - +//STATIC_SCRIPT_TYPES_INITIALIZER((+[](ScriptManager* manager){ +// auto scriptEngine = manager->engine().get(); + +void registerEventTypes(ScriptEngine* scriptEngine){ scriptRegisterMetaType(scriptEngine, "KeyEvent"); scriptRegisterMetaType(scriptEngine, "MouseEvent"); scriptRegisterMetaType(scriptEngine, "PointerEvent"); scriptRegisterMetaType(scriptEngine, "TouchEvent"); scriptRegisterMetaType(scriptEngine, "WheelEvent"); scriptRegisterMetaType(scriptEngine, "SpatialEvent"); -})); +} +//})); diff --git a/libraries/script-engine/src/ScriptManager.cpp b/libraries/script-engine/src/ScriptManager.cpp index 4406aaf75e..29d56d12ae 100644 --- a/libraries/script-engine/src/ScriptManager.cpp +++ b/libraries/script-engine/src/ScriptManager.cpp @@ -104,6 +104,7 @@ static bool scriptableResourceFromScriptValue(const ScriptValue& value, Scriptab STATIC_SCRIPT_TYPES_INITIALIZER((+[](ScriptManager* manager){ auto scriptEngine = manager->engine().get(); + registerEventTypes(scriptEngine); scriptRegisterMetaType(scriptEngine); scriptRegisterMetaType(scriptEngine); diff --git a/libraries/script-engine/src/v8/ScriptObjectV8Proxy.cpp b/libraries/script-engine/src/v8/ScriptObjectV8Proxy.cpp index 140dad0248..791799c296 100644 --- a/libraries/script-engine/src/v8/ScriptObjectV8Proxy.cpp +++ b/libraries/script-engine/src/v8/ScriptObjectV8Proxy.cpp @@ -1384,7 +1384,7 @@ int ScriptSignalV8Proxy::qt_metacall(QMetaObject::Call call, int id, void** argu } _callCounter++; - if (_callCounter % 10 == 0) { + if (_callCounter % 1000 == 0) { qCDebug(scriptengine_v8) << "Script engine: " << _engine->manager()->getFilename() << " Signal proxy " << fullName() << " call count: " << _callCounter << " total time: " << _totalCallTime_s; } diff --git a/scripts/system/controllers/controllerDispatcher.js b/scripts/system/controllers/controllerDispatcher.js index c1742c7b1d..2eac7d2c9d 100644 --- a/scripts/system/controllers/controllerDispatcher.js +++ b/scripts/system/controllers/controllerDispatcher.js @@ -369,28 +369,30 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js"); for (h = LEFT_HAND; h <= RIGHT_HAND; h++) { // XXX find a way to extract searchRay from samuel's stuff - rayPicks[h].searchRay = { - origin: controllerLocations[h].position, - direction: Quat.getUp(controllerLocations[h].orientation), - length: 1000 - }; + if (controllerLocations[h].valid) { + rayPicks[h].searchRay = { + origin: controllerLocations[h].position, + direction: Quat.getUp(controllerLocations[h].orientation), + length: 1000 + }; - if (rayPicks[h].type === Picks.INTERSECTED_ENTITY) { - // XXX check to make sure this one isn't already in nearbyEntityProperties? - if (rayPicks[h].distance < NEAR_GRAB_PICK_RADIUS * sensorScaleFactor) { - var nearEntityID = rayPicks[h].objectID; - var nearbyProps = Entities.getEntityProperties(nearEntityID, DISPATCHER_PROPERTIES); - nearbyProps.id = nearEntityID; - nearbyProps.distance = rayPicks[h].distance; - nearbyEntityPropertiesByID[nearEntityID] = nearbyProps; - nearbyEntityProperties[h].push(nearbyProps); + if (rayPicks[h].type === Picks.INTERSECTED_ENTITY) { + // XXX check to make sure this one isn't already in nearbyEntityProperties? + if (rayPicks[h].distance < NEAR_GRAB_PICK_RADIUS * sensorScaleFactor) { + var nearEntityID = rayPicks[h].objectID; + var nearbyProps = Entities.getEntityProperties(nearEntityID, DISPATCHER_PROPERTIES); + nearbyProps.id = nearEntityID; + nearbyProps.distance = rayPicks[h].distance; + nearbyEntityPropertiesByID[nearEntityID] = nearbyProps; + nearbyEntityProperties[h].push(nearbyProps); + } } - } - // sort by distance from each hand - nearbyEntityProperties[h].sort(function (a, b) { - return a.distance - b.distance; - }); + // sort by distance from each hand + nearbyEntityProperties[h].sort(function (a, b) { + return a.distance - b.distance; + }); + } } // sometimes, during a HMD snap-turn, an equipped or held item wont be near