overte/unpublishedScripts/DomainContent/Home/whiteboard/swiper.js
2016-07-25 11:05:55 -07:00

72 lines
No EOL
2.1 KiB
JavaScript

// Created by James B. Pollack @imgntn 6/8/2016
// Copyright 2016 High Fidelity, Inc.
//
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
//
(function() {
var _this;
Swiper = function() {
_this = this;
}
Swiper.prototype = {
busy: false,
preload: function(entityID) {
this.entityID = entityID;
Entities.editEntity(entityID, {
userData: JSON.stringify({
grabbableKey: {
grabbable: false,
wantsTrigger: true
}
})
});
Script.update.connect(this.update);
},
clickReleaseOnEntity: function() {
this.createSupplies();
},
startFarTrigger: function() {
this.createSupplies();
},
update: function() {
if (_this.busy === true) {
return;
}
var position = Entities.getEntityProperties(_this.entityID).position;
var TRIGGER_THRESHOLD = 0.11;
var leftHandPosition = MyAvatar.getLeftPalmPosition();
var rightHandPosition = MyAvatar.getRightPalmPosition();
var leftDistance = Vec3.distance(leftHandPosition, position)
var rightDistance = Vec3.distance(rightHandPosition, position)
if (rightDistance < TRIGGER_THRESHOLD || leftDistance < TRIGGER_THRESHOLD) {
_this.createSupplies();
_this.busy = true;
Script.setTimeout(function() {
_this.busy = false;
}, 2000)
}
},
createSupplies: function() {
var myProperties = Entities.getEntityProperties(this.entityID);
Entities.callEntityMethod(myProperties.parentID, "createMarkers");
Entities.callEntityMethod(myProperties.parentID, "createEraser");
},
unload: function() {
Script.update.disconnect(this.update);
}
}
return new Swiper
})