Fix tablet laser when Shapes app is running

This commit is contained in:
David Rowe 2018-01-04 16:37:20 +13:00
parent 7236ac17e2
commit 6c16fcfe65

View file

@ -9,7 +9,7 @@
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
/* global Script, MyAvatar, RIGHT_HAND, LEFT_HAND, enableDispatcherModule, disableDispatcherModule,
makeDispatcherModuleParameters, makeRunningValues, getEnabledModuleByName
makeDispatcherModuleParameters, makeRunningValues, getEnabledModuleByName, makeLaserParams
*/
Script.include("/~/system/libraries/controllerDispatcherUtils.js");
@ -25,9 +25,17 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js");
? ["rightHand", "rightHandEquip", "rightHandTrigger"]
: ["leftHand", "leftHandEquip", "leftHandTrigger"],
[],
100
100,
makeLaserParams(this.hand, false)
);
this.pointingAtTablet = function (objectID) {
if (objectID === HMD.tabletScreenID || objectID === HMD.homeButtonID) {
return true;
}
return false;
};
this.isReady = function (controllerData) {
if (this.disableModules) {
return makeRunningValues(true, [], []);
@ -42,7 +50,6 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js");
}
// Tablet stylus.
// Includes the tablet laser.
var tabletStylusInput = getEnabledModuleByName(this.hand === RIGHT_HAND
? "RightTabletStylusInput"
: "LeftTabletStylusInput");
@ -53,6 +60,18 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js");
}
}
// Tablet surface.
var overlayLaser = getEnabledModuleByName(this.hand === RIGHT_HAND
? "RightWebSurfaceLaserInput"
: "LeftWebSurfaceLaserInput");
if (overlayLaser) {
var overlayLaserReady = overlayLaser.isReady(controllerData);
var target = controllerData.rayPicks[this.hand].objectID;
if (overlayLaserReady.active && this.pointingAtTablet(target)) {
return makeRunningValues(false, [], []);
}
}
// Tablet grabbing.
var nearOverlay = getEnabledModuleByName(this.hand === RIGHT_HAND
? "RightNearParentingGrabOverlay"