From 06244338d6e84fbc9ee93acc7a6c275741440454 Mon Sep 17 00:00:00 2001 From: milad Date: Wed, 9 Oct 2019 12:36:44 -0700 Subject: [PATCH 1/3] updated nametags to work in selfie mode --- .../resources/modules/nameTagListManager.js | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/scripts/simplifiedUI/ui/simplifiedNametag/resources/modules/nameTagListManager.js b/scripts/simplifiedUI/ui/simplifiedNametag/resources/modules/nameTagListManager.js index a38ba129db..4700d7528c 100644 --- a/scripts/simplifiedUI/ui/simplifiedNametag/resources/modules/nameTagListManager.js +++ b/scripts/simplifiedUI/ui/simplifiedNametag/resources/modules/nameTagListManager.js @@ -197,6 +197,27 @@ function toggleInterval() { } +// Disconnect the camera mode updated signal if we have one connected for the selfie mode +var cameraModeUpdatedSignalConnected = false; +function maybeDisconnectCameraModeUpdatedSignal(){ + if (cameraModeUpdatedSignalConnected) { + Camera.modeUpdated.disconnect(handleCameraModeChanged); + cameraModeUpdatedSignalConnected = false; + } +} + + +// Turn on the nametag for yourself if you are in selfie mode, other wise delete it +function handleCameraModeChanged(mode) { + if (mode === "selfie") { + if (avatarNametagMode === "alwaysOn") { + add(MyAvatar.sessionUUID); + } + } else { + maybeRemove(MyAvatar.sessionUUID); + } +} + // Handle checking to see if we should add or delete nametags in persistent mode var alwaysOnAvatarDistanceCheck = false; var DISTANCE_CHECK_INTERVAL_MS = 1000; @@ -215,6 +236,10 @@ function handleAlwaysOnMode(shouldTurnOnAlwaysOnMode) { }); maybeClearAlwaysOnAvatarDistanceCheck(); alwaysOnAvatarDistanceCheck = Script.setInterval(maybeAddOrRemoveIntervalCheck, DISTANCE_CHECK_INTERVAL_MS); + + if (Camera.mode === "selfie") { + add(MyAvatar.sessionUUID); + } } } @@ -652,6 +677,7 @@ function reset() { _this.avatars = {}; shouldToggleInterval(); maybeClearAlwaysOnAvatarDistanceCheck(); + maybeDisconnectCameraModeUpdatedSignal(); return _this; } @@ -662,11 +688,14 @@ var avatarNametagMode = "on"; function handleAvatarNametagMode(newAvatarNametagMode) { if (avatarNametagMode === "alwaysOn") { handleAlwaysOnMode(false); + maybeDisconnectCameraModeUpdatedSignal(); } avatarNametagMode = newAvatarNametagMode; if (avatarNametagMode === "alwaysOn") { handleAlwaysOnMode(true); + Camera.modeUpdated.connect(handleCameraModeChanged); + cameraModeUpdatedSignalConnected = true; } if (avatarNametagMode === "off" || avatarNametagMode === "on") { From e2fee5361d8b82b25ab2088fee75b7f4efbd5102 Mon Sep 17 00:00:00 2001 From: milad Date: Wed, 9 Oct 2019 13:09:38 -0700 Subject: [PATCH 2/3] updated startup/shutdown --- .../resources/modules/nameTagListManager.js | 28 +++++++++++++++++-- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/scripts/simplifiedUI/ui/simplifiedNametag/resources/modules/nameTagListManager.js b/scripts/simplifiedUI/ui/simplifiedNametag/resources/modules/nameTagListManager.js index 4700d7528c..f9bb5de9b0 100644 --- a/scripts/simplifiedUI/ui/simplifiedNametag/resources/modules/nameTagListManager.js +++ b/scripts/simplifiedUI/ui/simplifiedNametag/resources/modules/nameTagListManager.js @@ -22,6 +22,31 @@ var SECONDS_IN_MINUTE = 60; // Delete after 5 minutes in case a nametag is hanging around in on mode var ALWAYS_ON_MAX_LIFETIME_IN_SECONDS = 5 * SECONDS_IN_MINUTE; +// ************************************* +// START STARTUP/SHUTDOWN +// ************************************* +// #region STARTUP/SHUTDOWN + + +// Connect the camera mode updated signal on startup +function startup() { + Camera.modeUpdated.connect(handleCameraModeChanged); + cameraModeUpdatedSignalConnected = true; + + Script.scriptEnding.connect(shutdown); +} + +startup(); + +function shutdown() { + maybeDisconnectCameraModeUpdatedSignal(); +} + + +// ************************************* +// END STARTUP/SHUTDOWN +// ************************************* + // ************************************* // START UTILTY // ************************************* @@ -688,14 +713,11 @@ var avatarNametagMode = "on"; function handleAvatarNametagMode(newAvatarNametagMode) { if (avatarNametagMode === "alwaysOn") { handleAlwaysOnMode(false); - maybeDisconnectCameraModeUpdatedSignal(); } avatarNametagMode = newAvatarNametagMode; if (avatarNametagMode === "alwaysOn") { handleAlwaysOnMode(true); - Camera.modeUpdated.connect(handleCameraModeChanged); - cameraModeUpdatedSignalConnected = true; } if (avatarNametagMode === "off" || avatarNametagMode === "on") { From 77d17e0ff78556c0ed4d6330bb31ae29710fead9 Mon Sep 17 00:00:00 2001 From: milad Date: Wed, 9 Oct 2019 13:26:53 -0700 Subject: [PATCH 3/3] removed extra disconnect function --- .../simplifiedNametag/resources/modules/nameTagListManager.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scripts/simplifiedUI/ui/simplifiedNametag/resources/modules/nameTagListManager.js b/scripts/simplifiedUI/ui/simplifiedNametag/resources/modules/nameTagListManager.js index f9bb5de9b0..c073a06589 100644 --- a/scripts/simplifiedUI/ui/simplifiedNametag/resources/modules/nameTagListManager.js +++ b/scripts/simplifiedUI/ui/simplifiedNametag/resources/modules/nameTagListManager.js @@ -224,7 +224,7 @@ function toggleInterval() { // Disconnect the camera mode updated signal if we have one connected for the selfie mode var cameraModeUpdatedSignalConnected = false; -function maybeDisconnectCameraModeUpdatedSignal(){ +function maybeDisconnectCameraModeUpdatedSignal() { if (cameraModeUpdatedSignalConnected) { Camera.modeUpdated.disconnect(handleCameraModeChanged); cameraModeUpdatedSignalConnected = false; @@ -702,7 +702,6 @@ function reset() { _this.avatars = {}; shouldToggleInterval(); maybeClearAlwaysOnAvatarDistanceCheck(); - maybeDisconnectCameraModeUpdatedSignal(); return _this; }