From d834c5aca1c7f7d98ff895f0e7356d50a876d998 Mon Sep 17 00:00:00 2001 From: Wayne Chen Date: Thu, 14 Mar 2019 15:05:26 -0700 Subject: [PATCH] adding test script for creating avatar input bar --- scripts/defaultScripts.js | 3 +- scripts/system/createAvatarInputsBarEntity.js | 76 +++++++++++++++++++ 2 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 scripts/system/createAvatarInputsBarEntity.js diff --git a/scripts/defaultScripts.js b/scripts/defaultScripts.js index bd7e79dffc..0d9799a035 100644 --- a/scripts/defaultScripts.js +++ b/scripts/defaultScripts.js @@ -32,7 +32,8 @@ var DEFAULT_SCRIPTS_COMBINED = [ "system/firstPersonHMD.js", "system/tablet-ui/tabletUI.js", "system/emote.js", - "system/miniTablet.js" + "system/miniTablet.js", + "system/createAvatarInputsBarEntity.js" ]; var DEFAULT_SCRIPTS_SEPARATE = [ "system/controllers/controllerScripts.js", diff --git a/scripts/system/createAvatarInputsBarEntity.js b/scripts/system/createAvatarInputsBarEntity.js new file mode 100644 index 0000000000..babf519035 --- /dev/null +++ b/scripts/system/createAvatarInputsBarEntity.js @@ -0,0 +1,76 @@ +"use strict"; + +(function(){ + + var button; + var buttonName = "AVBAR"; + var onCreateAvatarInputsBarEntity = false; + var micBarEntity, bubbleIconEntity; + var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system"); + + function onClicked(){ + onCreateAvatarInputsBarEntity = !onCreateAvatarInputsBarEntity; + button.editProperties({isActive: onCreateAvatarInputsBarEntity}); + var micBarDimensions = {x: 0.036, y: 0.048, z: 0.3}; + var bubbleIconDimensions = {x: 0.036, y: 0.036, z: 0.3}; + var micBarLocalPosition = {x: (-(micBarDimensions.x / 2)) - 0.2, y: -0.125, z: -0.5}; + var bubbleIconLocalPosition = {x: (micBarDimensions.x * 1.2 / 2) - 0.2, y: ((micBarDimensions.y - bubbleIconDimensions.y) / 2 - 0.125), z: -0.5}; + if (onCreateAvatarInputsBarEntity) { + var props = { + type: "Web", + parentID: MyAvatar.SELF_ID, + parentJointIndex: MyAvatar.getJointIndex("_CAMERA_MATRIX"), + localPosition: micBarLocalPosition, + localRotation: Quat.lookAtSimple(Camera.orientation, micBarLocalPosition), + sourceUrl: Script.resourcesPath() + "qml/hifi/audio/MicBarApplication.qml", + dimensions: micBarDimensions, + userData: { + grabbable: false + }, + }; + micBarEntity = Entities.addEntity(props, "local"); + var props = { + type: "Web", + parentID: MyAvatar.SELF_ID, + parentJointIndex: MyAvatar.getJointIndex("_CAMERA_MATRIX"), + // y is 0.01 - (0.048 + 0.036) / 2 + // have 10% spacing separation between the entities + localPosition: bubbleIconLocalPosition, + localRotation: Quat.lookAtSimple(Camera.orientation, bubbleIconLocalPosition), + sourceUrl: Script.resourcesPath() + "qml/BubbleIcon.qml", + dimensions: bubbleIconDimensions, + userData: { + grabbable: false + }, + }; + bubbleIconEntity = Entities.addEntity(props, "local"); + console.log("creating entity"); + } else { + console.log("deleting entity"); + Entities.deleteEntity(micBarEntity); + Entities.deleteEntity(bubbleIconEntity); + } + }; + + function setup() { + button = tablet.addButton({ + icon: "icons/tablet-icons/edit-i.svg", + activeIcon: "icons/tablet-icons/edit-a.svg", + text: buttonName + }); + button.clicked.connect(onClicked); + }; + + setup(); + + Script.scriptEnding.connect(function() { + if (micBarEntity) { + Entities.deleteEntity(micBarEntity); + } + if (bubbleIconEntity) { + Entities.deleteEntity(bubbleIconEntity); + } + tablet.removeButton(button); + }); + +}());