From f1ff399225e4014d9559176a3dc7732a20e35587 Mon Sep 17 00:00:00 2001 From: Kasen IO Date: Sat, 4 Apr 2020 05:13:11 -0400 Subject: [PATCH] Nearby user loading functionality enabled. --- scripts/system/inventory/inventory.html | 14 +++++--- scripts/system/inventory/inventory.js | 43 ++++++++++++++++++------- 2 files changed, 42 insertions(+), 15 deletions(-) diff --git a/scripts/system/inventory/inventory.html b/scripts/system/inventory/inventory.html index 551c282890..913f1f8b63 100644 --- a/scripts/system/inventory/inventory.html +++ b/scripts/system/inventory/inventory.html @@ -117,7 +117,7 @@ Share @@ -473,7 +473,7 @@ EventBridge.scriptEventReceived.connect(function(receivedCommand) { if (receivedCommand.app == "inventory") { // We route the data based on the command given. if (receivedCommand.command == 'script-to-web-inventory') { - alert("INVENTORY RECEIVED ON APP:" + JSON.stringify(receivedCommand.data)); + // alert("INVENTORY RECEIVED ON APP:" + JSON.stringify(receivedCommand.data)); vue_this.receiveInventory(receivedCommand.data); } @@ -482,8 +482,10 @@ EventBridge.scriptEventReceived.connect(function(receivedCommand) { } if (receivedCommand.command == 'script-to-web-nearby-users') { - alert("RECEIVING NEARBY USERS:" + JSON.stringify(receivedCommand.data)); + // alert("RECEIVING NEARBY USERS:" + JSON.stringify(receivedCommand.data)); + vue_this.receiveNearbyUsers(receivedCommand.data); } + } }); @@ -734,7 +736,11 @@ new Vue({ return this.iconType[itemType].color; }, receiveNearbyUsers: function(receivedUsers) { - this.nearbyUsers = receivedUsers; + if (!receivedUsers) { + this.nearbyUsers = []; + } else { + this.nearbyUsers = receivedUsers; + } }, sendAppMessage: function(command, data) { var JSONtoSend = { diff --git a/scripts/system/inventory/inventory.js b/scripts/system/inventory/inventory.js index 3ef17c2298..041f811617 100644 --- a/scripts/system/inventory/inventory.js +++ b/scripts/system/inventory/inventory.js @@ -39,6 +39,10 @@ function onWebAppEventReceived(event) { shareItem(eventJSON.data); } + if (eventJSON.command == "web-to-script-request-nearby-users") { + sendNearbyUsers(); + } + } } @@ -54,18 +58,18 @@ function sendToWeb(command, data) { tablet.emitScriptEvent(JSON.stringify(dataToSend)); } -// var inventoryMessagesChannel = "com.vircadia.inventory"; +var inventoryMessagesChannel = "com.vircadia.inventory"; -// function onMessageReceived(channel, message, sender, localOnly) { -// if (channel == inventoryMessagesChannel) { -// var messageJSON = JSON.parse(message); -// } -// print("Message received:"); -// print("- channel: " + channel); -// print("- message: " + message); -// print("- sender: " + sender); -// print("- localOnly: " + localOnly); -// } +function onMessageReceived(channel, message, sender, localOnly) { + if (channel == inventoryMessagesChannel) { + var messageJSON = JSON.parse(message); + } + print("Message received:"); + print("- channel: " + channel); + print("- message: " + message); + print("- sender: " + sender); + print("- localOnly: " + localOnly); +} // END APP EVENT AND MESSAGING ROUTING @@ -98,6 +102,23 @@ function shareItem(data) { } +function sendNearbyUsers() { + var nearbyUsers = AvatarList.getAvatarsInRange(Vec3.ZERO, 25); // Find all users within 25m. + var nearbyUsersToSend = []; + + nearbyUsers.forEach(function(user, i) { + var objectToWrite; + var aviName = AvatarList.getAvatar(user).displayName; + + if (aviName != MyAvatar.displayName) { + objectToWrite = { "name": aviName, "uuid": user }; + nearbyUsersToSend.push = objectToWrite; + } + }); + + sendToWeb("script-to-web-nearby-users", nearbyUsersToSend); +} + function useItem(item) { //TODO: Add animation support for avatars, add JSON loading...?