content/hifi-content/thoys/dev/2017/phoneyPhone/phoneyPhone.js
2022-02-14 02:04:11 +01:00

58 lines
2.3 KiB
JavaScript

(function() {
var MIN_DISTANCE = 1;
var wasNearHead = false;
var phoneyBoxPosition = null;
this.startNearGrab = function(entityID, args) {
print("starting PhoneyNearGrab!!");
// var hand = args[0];
wasNearHead = false;
phoneyBoxPosition = null;
Entities.findEntities(MyAvatar.position, 32000).forEach(function(entity) {
if (Entities.getEntityProperties(entity, 'name').name === 'PhoneyBox') {
phoneyBoxPosition = Entities.getEntityProperties(entity, 'position').position;
print("PhoneyBox found at " + JSON.stringify(phoneyBoxPosition));
}
});
};
this.continueNearGrab = function(entityID, args) {
print("doing continueNearGrab for PhoneyBox.");
// var hand = args[0];
if (phoneyBoxPosition === null) {
return;
}
var avatarHeadPosition = MyAvatar.getJointPosition(MyAvatar.getJointIndex('Head'));
var phoneyPosition = Entities.getEntityProperties(entityID, 'position').position;
var isNearHead = Vec3.distance(avatarHeadPosition, phoneyPosition) < MIN_DISTANCE;
print("isNearHead = " + (isNearHead ? "true" : "false"));
if (isNearHead === wasNearHead) {
print("isNearHead === wasNearHead");
return;
}
print("isNearHead !== wasNearHead");
wasNearHead = isNearHead;
if (isNearHead) {
MyAvatar.customListenPosition = phoneyBoxPosition;
MyAvatar.audioListenerMode = MyAvatar.audioListenerModeCustom;
print('Calling in from ' + JSON.stringify(phoneyBoxPosition));
} else {
MyAvatar.audioListenerMode = MyAvatar.audioListenerModeHead;
print('Stopped listening.');
}
};
this.releaseGrab = function(entityID, args) {
// var hand = args[0];
print("releaseGrab happend here!!");
//phoneyBoxPosition = null;
if (wasNearHead) {
MyAvatar.audioListenerMode = MyAvatar.audioListenerModeHead;
wasNearHead = null;
}
};
this.unload = function(entityID) {
if (wasNearHead) {
MyAvatar.audioListenerMode = MyAvatar.audioListenerModeHead;
}
};
});