content/hifi-content/wadewatts/race course client script 1.js
2022-02-14 02:04:11 +01:00

65 lines
1.9 KiB
JavaScript

(function() {
var messageChannel = 'MESSAGE_CHANNEL_GATE_GAME';
var entityID;
function sendMessage(message) {
message.entityID = entityID;
Messages.sendMessage(
messageChannel,
JSON.stringify(message)
);
}
function onReceivedMessage(channel, message, senderID) {
try {
var data = JSON.parse(message);
} catch (e) {
print('Error parsing message: ' + message);
return;
}
// print('data: ' + JSON.stringify(data));
switch (data.type) {
case 'RENDER':
renderScoreboard(data.racers);
break;
}
}
function renderScoreboard(racers) {
var text = '';
for (var sessionUUID in racers) {
var racer = racers[sessionUUID];
text += racer.avatarDisplayName + ' ' + racer.finishTime + '\n';
}
Entities.editEntity(entityID, {
text: text
});
}
return {
preload: function(id) {
entityID = id;
Messages.subscribe(messageChannel);
Messages.messageReceived.connect(null, onReceivedMessage);
print('Adding ' + MyAvatar.sessionUUID);
Entities.editEntity(entityID, {
text: 'Hello Scoreboard!'
});
sendMessage({
type: 'ADD_RACER',
avatarSessionUUID: MyAvatar.sessionUUID,
avatarDisplayName: MyAvatar.displayName
})
},
unload: function(id) {
sendMessage({
type: 'REMOVE_RACER',
avatarSessionUUID: MyAvatar.sessionUUID
});
Messages.unsubscribe(messageChannel);
Messages.messageReceived.disconnect(null, onReceivedMessage);
},
};
})