From 28438d4b80b1828fd58bae79e00acf646abdf9fa Mon Sep 17 00:00:00 2001 From: Kevin Lee <kevin@infinite-lee.com> Date: Thu, 30 Aug 2018 16:10:05 -0700 Subject: [PATCH] fix issue with pen not drawing until second primary_grab; fix spawn_pen-hover icon; enable spawning pen from in-world-hud; re-enable personal space bubble as default --- src/assets/hud/spawn_pen-hover.png | Bin 5371 -> 5376 bytes src/components/in-world-hud.js | 16 ++++++++-------- src/hub.html | 8 +++++--- src/utils/action-event-handler.js | 3 ++- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/assets/hud/spawn_pen-hover.png b/src/assets/hud/spawn_pen-hover.png index 1c130307ea49d140d604d38b4e3801865310d043..eb298cd91498432098056cd69213919574364dee 100644 GIT binary patch delta 5157 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 delta 5154 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 diff --git a/src/components/in-world-hud.js b/src/components/in-world-hud.js index a4fe8c965..cdf18ee62 100644 --- a/src/components/in-world-hud.js +++ b/src/components/in-world-hud.js @@ -11,23 +11,23 @@ AFRAME.registerComponent("in-world-hud", { init() { this.mic = this.el.querySelector(".mic"); this.freeze = this.el.querySelector(".freeze"); - this.bubble = this.el.querySelector(".bubble"); + this.pen = this.el.querySelector(".pen"); this.background = this.el.querySelector(".bg"); const renderOrder = window.APP.RENDER_ORDER; this.mic.object3DMap.mesh.renderOrder = renderOrder.HUD_ICONS; this.freeze.object3DMap.mesh.renderOrder = renderOrder.HUD_ICONS; - this.bubble.object3DMap.mesh.renderOrder = renderOrder.HUD_ICONS; + this.pen.object3DMap.mesh.renderOrder = renderOrder.HUD_ICONS; this.background.object3DMap.mesh.renderORder = renderOrder.HUD_BACKGROUND; this.updateButtonStates = () => { this.mic.setAttribute("icon-button", "active", this.el.sceneEl.is("muted")); this.freeze.setAttribute("icon-button", "active", this.el.sceneEl.is("frozen")); - this.bubble.setAttribute("icon-button", "active", this.el.sceneEl.is("spacebubble")); + this.pen.setAttribute("icon-button", "active", this.el.sceneEl.is("pen")); }; this.updateButtonStates(); this.onStateChange = evt => { - if (!(evt.detail === "muted" || evt.detail === "frozen" || evt.detail === "spacebubble")) return; + if (!(evt.detail === "muted" || evt.detail === "frozen" || evt.detail === "pen")) return; this.updateButtonStates(); }; @@ -39,8 +39,8 @@ AFRAME.registerComponent("in-world-hud", { this.el.emit("action_freeze"); }; - this.onBubbleClick = () => { - this.el.emit("action_space_bubble"); + this.onPenClick = () => { + this.el.emit("spawn_pen"); }; }, @@ -50,7 +50,7 @@ AFRAME.registerComponent("in-world-hud", { this.mic.addEventListener("click", this.onMicClick); this.freeze.addEventListener("click", this.onFreezeClick); - this.bubble.addEventListener("click", this.onBubbleClick); + this.pen.addEventListener("click", this.onPenClick); }, pause() { @@ -59,6 +59,6 @@ AFRAME.registerComponent("in-world-hud", { this.mic.removeEventListener("click", this.onMicClick); this.freeze.removeEventListener("click", this.onFreezeClick); - this.bubble.removeEventListener("click", this.onBubbleClick); + this.pen.removeEventListener("click", this.onPenClick); } }); diff --git a/src/hub.html b/src/hub.html index c01952d5c..0a55b1190 100644 --- a/src/hub.html +++ b/src/hub.html @@ -27,7 +27,7 @@ physics="gravity: -6; debug: false;" mute-mic="eventSrc: a-scene; toggleEvents: action_mute" freeze-controller="toggleEvent: action_freeze" - personal-space-bubble="enabled: false; debug: false;" + personal-space-bubble="debug: false;" vr-mode-ui="enabled: false" pinch-to-move input-configurator=" @@ -56,6 +56,8 @@ <img id="freeze-off-hover" crossorigin="anonymous" src="./assets/hud/freeze_off-hover.png"> <img id="freeze-on" crossorigin="anonymous" src="./assets/hud/freeze_on.png"> <img id="freeze-on-hover" crossorigin="anonymous" src="./assets/hud/freeze_on-hover.png"> + <img id="spawn-pen" crossorigin="anonymous" src="./assets/hud/spawn_pen.png"> + <img id="spawn-pen-hover" crossorigin="anonymous" src="./assets/hud/spawn_pen-hover.png"> <a-asset-item id="botdefault" response-type="arraybuffer" src="https://asset-bundles-prod.reticulum.io/bots/BotDefault_Avatar-9f71f8ff22.gltf"></a-asset-item> <a-asset-item id="botbobo" response-type="arraybuffer" src="https://asset-bundles-prod.reticulum.io/bots/BotBobo_Avatar-f9740a010b.gltf"></a-asset-item> @@ -315,7 +317,7 @@ <a-rounded height="0.13" width="0.48" color="#000000" position="-0.24 -0.065 0" radius="0.065" opacity="0.35" class="hud bg"></a-rounded> <a-image icon-button="tooltip: #hud-tooltip; tooltipText: Mute Mic; activeTooltipText: Unmute Mic; image: #mute-off; hoverImage: #mute-off-hover; activeImage: #mute-on; activeHoverImage: #mute-on-hover" scale="0.1 0.1 0.1" position="-0.17 0 0.001" class="ui hud mic" material="alphaTest:0.1;"></a-image> <a-image icon-button="tooltip: #hud-tooltip; tooltipText: Pause; activeTooltipText: Resume; image: #freeze-off; hoverImage: #freeze-off-hover; activeImage: #freeze-on; activeHoverImage: #freeze-on-hover" scale="0.2 0.2 0.2" position="0 0 0.005" class="ui hud freeze"></a-image> - <a-image icon-button="tooltip: #hud-tooltip; tooltipText: Enable Bubble; activeTooltipText: Disable Bubble; image: #bubble-off; hoverImage: #bubble-off-hover; activeImage: #bubble-on; activeHoverImage: #bubble-on-hover" scale="0.1 0.1 0.1" position="0.17 0 0.001" class="ui hud bubble" material="alphaTest:0.1;"></a-image> + <a-image icon-button="tooltip: #hud-tooltip; tooltipText: Spawn Pen; activeTooltipText: Spawn Pen; image: #spawn-pen; hoverImage: #spawn-pen-hover; activeImage: #spawn-pen; activeHoverImage: #spawn-pen-hover" scale="0.1 0.1 0.1" position="0.17 0 0.001" class="ui hud pen" material="alphaTest:0.1;"></a-image> <a-rounded visible="false" id="hud-tooltip" height="0.08" width="0.3" color="#000000" position="-0.15 -0.2 0" rotation="-20 0 0" radius="0.025" opacity="0.35" class="hud bg"> <a-entity text="value: Mute Mic; align:center;" position="0.15 0.04 0.001" ></a-entity> </a-rounded> @@ -327,7 +329,7 @@ class="camera" camera position="0 1.6 0" - personal-space-bubble="enabled: false; radius: 0.4;" + personal-space-bubble="radius: 0.4;" pitch-yaw-rotator > <a-entity diff --git a/src/utils/action-event-handler.js b/src/utils/action-event-handler.js index 3e31fafb9..3faacd7d7 100644 --- a/src/utils/action-event-handler.js +++ b/src/utils/action-event-handler.js @@ -112,6 +112,7 @@ export default class ActionEventHandler { event = event || e.type; const superHand = e.target.components["super-hands"]; const isCursorHand = this.isHandThatAlsoDrivesCursor(e.target); + this.isCursorInteracting = this.cursor.isInteracting(); if (isCursorHand && !this.isCursorInteracting) { if (superHand.state.has("hover-start") || superHand.state.get("grab-start")) { e.target.emit(event); @@ -132,7 +133,7 @@ export default class ActionEventHandler { //need to check both grab-start and hover-start in the case that the spawner is being grabbed this frame if (this.isToggle(this.cursorHand.state.get("grab-start") || this.cursorHand.state.get("hover-start"))) { this.cursorHand.el.emit(event); - this.isCursorInteracting = !!this.cursorHand.state.get("grab-start"); + this.isCursorInteracting = this.cursor.isInteracting(); } else { this.isCursorInteracting = false; this.cursor.endInteraction(); -- GitLab