From c25896ceca5b5967ad0f77494b14ce7c7bf2a525 Mon Sep 17 00:00:00 2001 From: Micheal Parks Date: Thu, 21 Dec 2023 15:36:02 -0500 Subject: [PATCH 1/2] useGamepad hook --- .../src/components/gamepad/index.svelte | 265 +++++------------- 1 file changed, 75 insertions(+), 190 deletions(-) diff --git a/web/frontend/src/components/gamepad/index.svelte b/web/frontend/src/components/gamepad/index.svelte index 2d841320c3a..10a4b979698 100644 --- a/web/frontend/src/components/gamepad/index.svelte +++ b/web/frontend/src/components/gamepad/index.svelte @@ -1,48 +1,52 @@ @@ -264,13 +150,13 @@ $: { - {#if currentGamepad?.connected} - ({currentGamepad.id}) + {#if $connected} + ({gamepad.raw?.id}) {/if}
- {#if currentGamepad?.connected && enabled} + {#if $connected && enabled} {:else} @@ -286,9 +172,9 @@ $: { />
- {#if currentGamepad?.connected} + {#if $connected}
- {#each Object.keys(curStates) as stateName, value} + {#each Object.keys({}) as stateName, value}

{stateName}

{value.toFixed((/X|Y|Z$/u).test(stateName.toString()) ? 4 : 0)} @@ -304,5 +190,4 @@ $: { .subtitle { color: var(--black-70); } - From c58557ce71bd6e1579950aefe3975b5c1e47b33f Mon Sep 17 00:00:00 2001 From: Micheal Parks Date: Tue, 23 Jan 2024 12:41:17 -0500 Subject: [PATCH 2/2] update --- .../src/components/gamepad/index.svelte | 21 +++++++------------ 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/web/frontend/src/components/gamepad/index.svelte b/web/frontend/src/components/gamepad/index.svelte index 10a4b979698..98053e54546 100644 --- a/web/frontend/src/components/gamepad/index.svelte +++ b/web/frontend/src/components/gamepad/index.svelte @@ -48,9 +48,6 @@ const isAxis = (key: string) => { } const sendEvent = (newEvent: InputController.Event) => { - if (!enabled) { - return; - } const req = new InputController.TriggerEventRequest(); req.setController(name); req.setEvent(newEvent); @@ -115,9 +112,13 @@ gamepad.leftStick.on('change', ({ value }) => process('X', value.x)) gamepad.leftStick.on('change', ({ value }) => process('Y', value.y)) gamepad.rightStick.on('change', ({ value }) => process('RX', value.x)) gamepad.rightStick.on('change', ({ value }) => process('RY', value.y)) +gamepad.leftStickButton.on('change', ({ value }) => process('LThumb', value)) +gamepad.rightStickButton.on('change', ({ value }) => process('RThumb', value)) gamepad.leftTrigger.on('change', ({ value }) => process('Z', value)) gamepad.rightTrigger.on('change', ({ value }) => process('RZ', value)) +gamepad.leftBumper.on('change', ({ value }) => process('LT', value)) +gamepad.rightBumper.on('change', ({ value }) => process('RT', value)) const onDirXChange = () => process('Hat0X', -gamepad.directionalLeft.value + gamepad.directionalRight.value) gamepad.directionalLeft.on('change', onDirXChange) @@ -130,20 +131,14 @@ gamepad.directionalBottom.on('change', onDirYChange) gamepad.clusterBottom.on('change', ({ value }) => process('South', value)) gamepad.clusterRight.on('change', ({ value }) => process('East', value)) gamepad.clusterLeft.on('change', ({ value }) => process('West', value)) +gamepad.clusterTop.on('change', ({ value }) => process('North', value)) - curStates.West = trunc(gamepad.buttons[2]?.value); - curStates.North = trunc(gamepad.buttons[3]?.value); - curStates.LT = trunc(gamepad.buttons[4]?.value); - curStates.RT = trunc(gamepad.buttons[5]?.value); - curStates.Select = trunc(gamepad.buttons[8]?.value); - curStates.Start = trunc(gamepad.buttons[9]?.value); - curStates.LThumb = trunc(gamepad.buttons[10]?.value); - curStates.RThumb = trunc(gamepad.buttons[11]?.value); - curStates.Menu = trunc(gamepad.buttons[16]?.value); +gamepad.select.on('change', ({ value }) => process('Select', value)) +gamepad.start.on('change', ({ value }) => process('Start', value)) +gamepad.center.on('change', ({ value }) => process('Menu', value)) $: connected = gamepad.connected $: updateConnection($connected && enabled); -