From 4cd632ecd6ea3ed5268f737ec8603b27bb10ca82 Mon Sep 17 00:00:00 2001 From: netpro2k <netpro2k@gmail.com> Date: Thu, 8 Nov 2018 18:53:25 -0800 Subject: [PATCH] Update Daydream bindings for new priority system --- .../userinput/bindings/daydream-user.js | 123 ++++++++---------- src/systems/userinput/userinput-debug.js | 2 +- 2 files changed, 52 insertions(+), 73 deletions(-) diff --git a/src/systems/userinput/bindings/daydream-user.js b/src/systems/userinput/bindings/daydream-user.js index 61526d9ee..86581e104 100644 --- a/src/systems/userinput/bindings/daydream-user.js +++ b/src/systems/userinput/bindings/daydream-user.js @@ -5,47 +5,41 @@ import { addSetsToBindings } from "./utils"; // vars const v = s => `/vars/daydream/${s}`; -const touchpad = v("touchpad"); -const touchpadPressed = v("touchpadPressed"); -const touchpadReleased = v("touchpadReleased"); +const touchpad = v("touchpad/axis"); +const touchpadRising = v("touchpad/rising"); +const touchpadFalling = v("touchpad/falling"); +const touchpadPressed = v("touchpad/pressed"); const dpadNorth = v("dpad/north"); const dpadSouth = v("dpad/south"); const dpadEast = v("dpad/east"); const dpadWest = v("dpad/west"); const dpadCenter = v("dpad/center"); -const vec2zero = "/vars/vec2zero"; const brushSizeDelta = v("brushSizeDelta"); const cursorModDelta = v("cursorModDelta"); -const dpadSouthDrop = v("dpad/southDrop"); -const dpadCenterDrop = v("dpad/centerDrop"); - -// roots -const dpadEastRoot = "daydreamDpadEast"; -const dpadWestRoot = "daydreamDpadWest"; -const dpadCenterRoot = "daydreamDpadCenter"; -const touchpadFallingRoot = "daydreamTouchpadFalling"; -const cursorModDeltaRoot = "daydreamCursorModDeltaRoot"; +const dpadSouthDrop = v("dropSouth"); +const dpadCenterDrop = v("dropCenter"); const grabBinding = [ { - src: { value: dpadCenter, bool: touchpadPressed }, + src: { value: dpadCenter, bool: touchpadRising }, dest: { value: paths.actions.cursor.grab }, xform: xforms.copyIfTrue, - root: dpadCenterRoot, - priority: 200 + priority: 100 } ]; const dropOnCenterOrSouth = [ { - src: { value: dpadCenter, bool: touchpadPressed }, + src: { value: dpadCenter, bool: touchpadRising }, dest: { value: dpadCenterDrop }, - xform: xforms.copyIfTrue + xform: xforms.copyIfTrue, + priority: 100 }, { - src: { value: dpadSouth, bool: touchpadPressed }, + src: { value: dpadSouth, bool: touchpadRising }, dest: { value: dpadSouthDrop }, - xform: xforms.copyIfTrue + xform: xforms.copyIfTrue, + priority: 100 }, { src: [dpadCenterDrop, dpadSouthDrop], @@ -68,16 +62,23 @@ export const daydreamUserBindings = addSetsToBindings({ src: { value: paths.device.daydream.button("touchpad").pressed }, - dest: { value: touchpadPressed }, + dest: { value: touchpadRising }, xform: xforms.rising }, { src: { value: paths.device.daydream.button("touchpad").pressed }, - dest: { value: touchpadReleased }, + dest: { value: touchpadFalling }, xform: xforms.falling }, + { + src: { + value: paths.device.daydream.button("touchpad").pressed + }, + dest: { value: touchpadPressed }, + xform: xforms.copy + }, { src: { value: touchpad @@ -94,40 +95,30 @@ export const daydreamUserBindings = addSetsToBindings({ { src: { value: dpadEast, - bool: touchpadPressed + bool: touchpadRising }, dest: { value: paths.actions.snapRotateRight }, - xform: xforms.copyIfTrue, - root: dpadEastRoot, - priority: 100 + xform: xforms.copyIfTrue }, { src: { value: dpadWest, - bool: touchpadPressed + bool: touchpadRising }, dest: { value: paths.actions.snapRotateLeft }, - xform: xforms.copyIfTrue, - root: dpadWestRoot, - priority: 100 + xform: xforms.copyIfTrue }, { src: { value: dpadCenter, - bool: touchpadPressed + bool: touchpadRising }, dest: { value: paths.actions.rightHand.startTeleport }, - xform: xforms.copyIfTrue, - root: dpadCenterRoot, - priority: 100 - }, - { - dest: { value: vec2zero }, - xform: xforms.always([0, -0.2]) + xform: xforms.copyIfTrue }, { src: { value: paths.device.daydream.pose }, @@ -146,11 +137,9 @@ export const daydreamUserBindings = addSetsToBindings({ [sets.cursorHoldingInteractable]: [ { - src: { value: paths.device.daydream.button("touchpad").pressed }, + src: { value: touchpadFalling }, dest: { value: paths.actions.cursor.drop }, - xform: xforms.falling, - root: touchpadFallingRoot, - priority: 100 + xform: xforms.copy }, { src: { @@ -163,36 +152,30 @@ export const daydreamUserBindings = addSetsToBindings({ { src: { value: cursorModDelta }, dest: { value: paths.actions.cursor.modDelta }, - xform: xforms.copy, - root: cursorModDeltaRoot, - priority: 100 + xform: xforms.copy } ], [sets.rightHandTeleporting]: [ { - src: { value: paths.device.daydream.button("touchpad").pressed }, + src: { value: touchpadFalling }, dest: { value: paths.actions.rightHand.stopTeleport }, - xform: xforms.falling, - root: touchpadFallingRoot, - priority: 100 + xform: xforms.copy } ], [sets.cursorHoldingPen]: [ { - src: { value: dpadNorth, bool: touchpadPressed }, + src: { value: dpadNorth, bool: touchpadRising }, dest: { value: paths.actions.cursor.startDrawing }, xform: xforms.copyIfTrue, - root: dpadCenterRoot, - priority: 300 + priority: 100 }, { - src: { value: touchpadReleased }, + src: { value: touchpadFalling }, dest: { value: paths.actions.cursor.stopDrawing }, xform: xforms.copy, - root: touchpadFallingRoot, - priority: 300 + priority: 100 }, { src: { @@ -205,38 +188,36 @@ export const daydreamUserBindings = addSetsToBindings({ { src: { value: brushSizeDelta, - bool: paths.device.daydream.button("touchpad").pressed + bool: touchpadPressed }, dest: { value: paths.actions.cursor.scalePenTip }, - xform: xforms.copyIfFalse + xform: xforms.copyIfFalse, + priority: 100 }, { - src: { value: dpadEast, bool: touchpadPressed }, + src: { value: dpadEast, bool: touchpadRising }, dest: { value: paths.actions.cursor.penPrevColor }, xform: xforms.copyIfTrue, - root: dpadEastRoot, - priority: 200 + priority: 100 }, { - src: { value: dpadWest, bool: touchpadPressed }, + src: { value: dpadWest, bool: touchpadRising }, dest: { value: paths.actions.cursor.penNextColor }, xform: xforms.copyIfTrue, - root: dpadWestRoot, - priority: 200 + priority: 100 }, { src: { value: cursorModDelta, - bool: paths.device.daydream.button("touchpad").pressed + bool: touchpadPressed }, dest: { value: paths.actions.cursor.modDelta }, xform: xforms.copyIfFalse, - root: cursorModDeltaRoot, - priority: 200 + priority: 100 }, ...dropOnCenterOrSouth ], @@ -245,21 +226,19 @@ export const daydreamUserBindings = addSetsToBindings({ // Don't drop on touchpad release { src: { - value: paths.device.daydream.button("touchpad").pressed + value: touchpadFalling }, xform: xforms.noop, - root: touchpadFallingRoot, - priority: 300 + priority: 100 }, { src: { value: dpadNorth, - bool: touchpadPressed + bool: touchpadRising }, dest: { value: paths.actions.cursor.takeSnapshot }, xform: xforms.copyIfTrue, - root: dpadCenterRoot, - priority: 300 + priority: 100 }, ...dropOnCenterOrSouth ] diff --git a/src/systems/userinput/userinput-debug.js b/src/systems/userinput/userinput-debug.js index 20cdb4560..ca2f8eb3e 100644 --- a/src/systems/userinput/userinput-debug.js +++ b/src/systems/userinput/userinput-debug.js @@ -32,7 +32,7 @@ AFRAME.registerSystem("userinput-debug", { sortedBindings[i], "\n", "dest: ", - Object.values(sortedBindings[i].dest), + sortedBindings[i].dest && Object.values(sortedBindings[i].dest), "\n", "active: ", actives[i], -- GitLab