From 06244338d6e84fbc9ee93acc7a6c275741440454 Mon Sep 17 00:00:00 2001 From: milad Date: Wed, 9 Oct 2019 12:36:44 -0700 Subject: [PATCH] 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") {