(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 }); } }; })