From 268f0d8082db84bb73f200752e07d6033e66575d Mon Sep 17 00:00:00 2001 From: johnshaughnessy <johnfshaughnessy@gmail.com> Date: Mon, 29 Oct 2018 13:45:36 -0700 Subject: [PATCH] Add arrow key support --- .../userinput/bindings/keyboard-mouse-user.js | 22 ++++++++++++++++++- .../userinput/bindings/oculus-touch-user.js | 22 ++++++++++++++++++- src/systems/userinput/bindings/vive-user.js | 22 ++++++++++++++++++- 3 files changed, 63 insertions(+), 3 deletions(-) diff --git a/src/systems/userinput/bindings/keyboard-mouse-user.js b/src/systems/userinput/bindings/keyboard-mouse-user.js index 1f067d444..06c9b4f6a 100644 --- a/src/systems/userinput/bindings/keyboard-mouse-user.js +++ b/src/systems/userinput/bindings/keyboard-mouse-user.js @@ -3,6 +3,8 @@ import { sets } from "../sets"; import { xforms } from "./xforms"; const wasd_vec2 = "/var/mouse-and-keyboard/wasd_vec2"; +const keyboardCharacterAcceleration = "/var/mouse-and-keyboard/keyboardCharacterAcceleration"; +const arrows_vec2 = "/var/mouse-and-keyboard/arrows_vec2"; const dropWithRMB = "/vars/mouse-and-keyboard/drop_with_RMB"; const dropWithEsc = "/vars/mouse-and-keyboard/drop_with_esc"; @@ -35,6 +37,16 @@ export const keyboardMouseUserBindings = { }, xform: xforms.rising }, + { + src: { + w: paths.device.keyboard.key("arrowup"), + a: paths.device.keyboard.key("arrowleft"), + s: paths.device.keyboard.key("arrowdown"), + d: paths.device.keyboard.key("arrowright") + }, + dest: { vec2: arrows_vec2 }, + xform: xforms.wasd_to_vec2 + }, { src: { w: paths.device.keyboard.key("w"), @@ -46,7 +58,15 @@ export const keyboardMouseUserBindings = { xform: xforms.wasd_to_vec2 }, { - src: { value: wasd_vec2 }, + src: { + first: wasd_vec2, + second: arrows_vec2 + }, + dest: { value: keyboardCharacterAcceleration }, + xform: xforms.add_vec2 + }, + { + src: { value: keyboardCharacterAcceleration }, dest: { value: paths.actions.characterAcceleration }, xform: xforms.copy }, diff --git a/src/systems/userinput/bindings/oculus-touch-user.js b/src/systems/userinput/bindings/oculus-touch-user.js index d386016c2..6967a2628 100644 --- a/src/systems/userinput/bindings/oculus-touch-user.js +++ b/src/systems/userinput/bindings/oculus-touch-user.js @@ -47,6 +47,8 @@ const leftJoyY = `${name}left/joyY`; const leftJoyYCursorMod = `${name}left/joyYCursorMod`; const oculusTouchCharacterAcceleration = `${name}characterAcceleration`; const keyboardCharacterAcceleration = "/var/keyboard/characterAcceleration"; +const wasd_vec2 = "/var/keyboard/wasd_vec2"; +const arrows_vec2 = "/var/keyboard/arrows_vec2"; const keyboardBoost = "/var/keyboard-oculus/boost"; const rightBoost = "/var/right-oculus/boost"; const leftBoost = "/var/left-oculus/boost"; @@ -224,6 +226,16 @@ export const oculusTouchUserBindings = { dest: { value: oculusTouchCharacterAcceleration }, xform: xforms.compose_vec2 }, + { + src: { + w: paths.device.keyboard.key("arrowup"), + a: paths.device.keyboard.key("arrowleft"), + s: paths.device.keyboard.key("arrowdown"), + d: paths.device.keyboard.key("arrowright") + }, + dest: { vec2: arrows_vec2 }, + xform: xforms.wasd_to_vec2 + }, { src: { w: paths.device.keyboard.key("w"), @@ -231,9 +243,17 @@ export const oculusTouchUserBindings = { s: paths.device.keyboard.key("s"), d: paths.device.keyboard.key("d") }, - dest: { vec2: keyboardCharacterAcceleration }, + dest: { vec2: wasd_vec2 }, xform: xforms.wasd_to_vec2 }, + { + src: { + first: wasd_vec2, + second: arrows_vec2 + }, + dest: { value: keyboardCharacterAcceleration }, + xform: xforms.add_vec2 + }, { src: { first: oculusTouchCharacterAcceleration, diff --git a/src/systems/userinput/bindings/vive-user.js b/src/systems/userinput/bindings/vive-user.js index 0e20233c7..74833b02f 100644 --- a/src/systems/userinput/bindings/vive-user.js +++ b/src/systems/userinput/bindings/vive-user.js @@ -69,6 +69,8 @@ const k = name => { const keyboardSnapRight = k("snap-right"); const keyboardSnapLeft = k("snap-left"); const keyboardCharacterAcceleration = k("characterAcceleration"); +const wasd_vec2 = k("wasd_vec2"); +const arrows_vec2 = k("arrows_vec2"); const keyboardBoost = k("boost"); const teleportLeft = [ @@ -314,6 +316,16 @@ export const viveUserBindings = { dest: { value: lCharacterAcceleration }, xform: xforms.copyIfTrue }, + { + src: { + w: paths.device.keyboard.key("arrowup"), + a: paths.device.keyboard.key("arrowleft"), + s: paths.device.keyboard.key("arrowdown"), + d: paths.device.keyboard.key("arrowright") + }, + dest: { vec2: arrows_vec2 }, + xform: xforms.wasd_to_vec2 + }, { src: { w: paths.device.keyboard.key("w"), @@ -321,9 +333,17 @@ export const viveUserBindings = { s: paths.device.keyboard.key("s"), d: paths.device.keyboard.key("d") }, - dest: { vec2: keyboardCharacterAcceleration }, + dest: { vec2: wasd_vec2 }, xform: xforms.wasd_to_vec2 }, + { + src: { + first: wasd_vec2, + second: arrows_vec2 + }, + dest: { value: keyboardCharacterAcceleration }, + xform: xforms.add_vec2 + }, { src: { first: lCharacterAcceleration, -- GitLab