From 0cf71bd3e13e70ee8c9dda6ca9557e8115cf1338 Mon Sep 17 00:00:00 2001 From: SilverfishVR <53531160+SilverfishVR@users.noreply.github.com> Date: Wed, 18 Aug 2021 22:19:10 +0200 Subject: [PATCH] make HUD bubble/shield button optional Adds an menu item in "Settings" to toggle the HUD shield/bubble button on or off. Shield button remains available in the tablet or toolbar, it is called "HUD shield button" but suggestions are welcome fixes https://github.com/vircadia/vircadia/issues/1210 --- scripts/system/bubble.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/scripts/system/bubble.js b/scripts/system/bubble.js index eca3b3dcd4..0c019f4e4b 100644 --- a/scripts/system/bubble.js +++ b/scripts/system/bubble.js @@ -46,6 +46,27 @@ }); } + //create a menu item in "Setings" to toggle the bubble/shield HUD button + var menuItemName = "HUD shield button"; + Menu.addMenuItem({ + menuName: "Settings", + menuItemName: menuItemName, + isCheckable: true, + isChecked: AvatarInputs.showBubbleTools + }); + Menu.menuItemEvent.connect(onToggleHudShieldButton); + AvatarInputs.showBubbleToolsChanged.connect(showBubbleToolsChanged); + + function onToggleHudShieldButton(menuItem) { + if (menuItem == menuItemName) { + AvatarInputs.setShowBubbleTools(Menu.isOptionChecked(menuItem)) + }; + } + + function showBubbleToolsChanged(show) { + Menu.setIsOptionChecked(menuItemName, show); + } + // Make the bubble overlay visible, set its position, and play the sound function createOverlays() { var nowTimestamp = Date.now(); @@ -191,6 +212,9 @@ // Cleanup the tablet button and overlays when script is stopped Script.scriptEnding.connect(function () { + Menu.menuItemEvent.disconnect(onToggleHudShieldButton); + AvatarInputs.showBubbleToolsChanged.disconnect(showBubbleToolsChanged); + Menu.removeMenuItem("Settings", menuItemName); button.clicked.disconnect(Users.toggleIgnoreRadius); if (tablet) { tablet.removeButton(button);