80 lines
2.4 KiB
JavaScript
80 lines
2.4 KiB
JavaScript
(function() {
|
|
var messageChannel = 'MESSAGE_CHANNEL_GATE_GAME';
|
|
var SOUND_URL = 'https://hifi-content.s3.amazonaws.com/wadewatts/coin%20noise.wav?v=' + Date.now();
|
|
var gateID;
|
|
var sound;
|
|
|
|
function sendMessage(message) {
|
|
message.gateID = gateID;
|
|
Messages.sendMessage(
|
|
messageChannel,
|
|
JSON.stringify(message)
|
|
);
|
|
}
|
|
|
|
function onReceivedMessage(channel, message, senderID) {
|
|
try {
|
|
var data = JSON.parse(message);
|
|
} catch (e) {
|
|
print('[gate] Error parsing message: ' + message);
|
|
return;
|
|
}
|
|
|
|
switch (data.type) {
|
|
// case 'CHECKPOINT':
|
|
// if (gateID === data.gateID) {
|
|
// var position = Entities.getEntityProperties(gateID, 'position').position;
|
|
// var audioProperties = {
|
|
// volume: 0.1,
|
|
// position: position
|
|
// };
|
|
// Audio.playSound(sound, audioProperties);
|
|
// }
|
|
// break;
|
|
}
|
|
}
|
|
|
|
function getUserData() {
|
|
var userData = Entities.getEntityProperties(gateID, 'userData').userData;
|
|
try {
|
|
userData = JSON.parse(userData);
|
|
} catch (e) {
|
|
print('[gate.js] Error parsing userData');
|
|
}
|
|
return userData;
|
|
}
|
|
|
|
return {
|
|
preload: function(id) {
|
|
gateID = id;
|
|
var userData = getUserData();
|
|
sound = SoundCache.getSound(userData.soundUrl || SOUND_URL);
|
|
|
|
sendMessage({
|
|
type: 'INIT_GATE'
|
|
});
|
|
},
|
|
|
|
unload: function(id) {
|
|
sendMessage({
|
|
type: 'REMOVE_GATE'
|
|
});
|
|
},
|
|
|
|
enterEntity: function(id) {
|
|
var position = Entities.getEntityProperties(gateID, 'position').position;
|
|
var userData = getUserData();
|
|
var audioProperties = {
|
|
volume: (userData.volume || 1),
|
|
position: position
|
|
};
|
|
Audio.playSound(sound, audioProperties);
|
|
|
|
sendMessage({
|
|
type: 'CHECKPOINT',
|
|
racerID: MyAvatar.sessionUUID,
|
|
racerName: MyAvatar.displayName
|
|
});
|
|
}
|
|
};
|
|
})
|