content/hifi-content/rebecca/Detachment/CreateSimpleWatchAttachment.js
2022-02-14 02:04:11 +01:00

56 lines
No EOL
1.9 KiB
JavaScript

var watchURL = "https://hifi-content.s3.amazonaws.com/rebecca/Detachment/smallWatch.fbx";
var _isPoked = false;
var COOLDOWNDURATION = 200;
var cooldowntimer = 0;
var particles = Script.require("https://hifi-content.s3.amazonaws.com/liv/dev/funmodule.js");
var watchEntity = {
type: "Model",
name: "Watch",
shapeType: "simple-hull",
modelURL: watchURL,
parentID: MyAvatar.sessionUUID,
parentJointIndex: MyAvatar.getJointIndex("LeftForeArm"),
position: MyAvatar.getJointPosition("LeftForeArm"),
rotation: MyAvatar.getJointRotation("LeftForeArm"),
script: "https://hifi-content.s3.amazonaws.com/rebecca/Detachment/detachAvatarEntity.js",
"userData": "{\"grabbableKey\":{\"grabbable\":true}}"
};
var testPoke = function () {
var x = MyAvatar.getJointPosition("LeftForeArm").x;
var y = MyAvatar.getJointPosition("LeftForeArm").y;
var z = MyAvatar.getJointPosition("LeftForeArm").z;
var jointIndexRight = MyAvatar.getJointIndex("RightHandIndex4");
var fingertipLocRight = MyAvatar.getJointPosition(jointIndexRight);
if (isCloseEnough(x, fingertipLocRight.x) &&
isCloseEnough(y, fingertipLocRight.y) &&
isCloseEnough(z, fingertipLocRight.z) && !_isPoked) {
print("You Poked Me with your Right Finger!");
_isPoked = true;
cooldowntimer = 0;
}
if (cooldowntimer >= COOLDOWNDURATION) {
_isPoked = false;
}
if (_isPoked) {
cooldowntimer++;
}
};
var isCloseEnough = function (a, b) {
return (Math.abs(a - b) <= 0.1); // within 10cm
};
var watchObject = Entities.addEntity(watchEntity);
Script.update.connect(function () {
var properties = Entities.getEntityProperties(watchObject, true);
testPoke();
});
Script.scriptEnding.connect(function () {
Entities.deleteEntity(watchObject);
});