58 lines
2.3 KiB
JavaScript
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;
|
|
}
|
|
};
|
|
});
|