@rydr/game-sdk 4.0.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -11
- package/dist/client/HardwareStore.d.ts +10 -0
- package/dist/client/HardwareStore.d.ts.map +1 -1
- package/dist/client/HardwareStore.js +10 -0
- package/dist/client/HardwareStore.js.map +1 -1
- package/dist/client/PlatformClient.d.ts +39 -5
- package/dist/client/PlatformClient.d.ts.map +1 -1
- package/dist/client/PlatformClient.js +32 -7
- package/dist/client/PlatformClient.js.map +1 -1
- package/dist/host/PlatformHost.d.ts +27 -7
- package/dist/host/PlatformHost.d.ts.map +1 -1
- package/dist/host/PlatformHost.js +41 -4
- package/dist/host/PlatformHost.js.map +1 -1
- package/dist/nav/README.md +5 -5
- package/dist/nav/scroll-nav.d.ts.map +1 -1
- package/dist/nav/scroll-nav.js +8 -4
- package/dist/nav/scroll-nav.js.map +1 -1
- package/dist/nav/spatial-nav.d.ts.map +1 -1
- package/dist/nav/spatial-nav.js +8 -4
- package/dist/nav/spatial-nav.js.map +1 -1
- package/dist/protocol/buttons.d.ts +49 -15
- package/dist/protocol/buttons.d.ts.map +1 -1
- package/dist/protocol/buttons.js +39 -17
- package/dist/protocol/buttons.js.map +1 -1
- package/dist/protocol/glyphs.d.ts +47 -0
- package/dist/protocol/glyphs.d.ts.map +1 -0
- package/dist/protocol/glyphs.js +75 -0
- package/dist/protocol/glyphs.js.map +1 -0
- package/dist/protocol/index.d.ts +1 -0
- package/dist/protocol/index.d.ts.map +1 -1
- package/dist/protocol/index.js +1 -0
- package/dist/protocol/index.js.map +1 -1
- package/dist/protocol/messages.d.ts +19 -5
- package/dist/protocol/messages.d.ts.map +1 -1
- package/dist/protocol/version.d.ts +2 -2
- package/dist/protocol/version.d.ts.map +1 -1
- package/dist/protocol/version.js +32 -2
- package/dist/protocol/version.js.map +1 -1
- package/dist/three/README.md +1 -1
- package/dist/ui/README.md +6 -6
- package/dist/ui/action-card.d.ts +4 -4
- package/dist/ui/action-card.d.ts.map +1 -1
- package/dist/ui/action-card.js.map +1 -1
- package/dist/ui/action-diamond.d.ts +3 -3
- package/dist/ui/action-diamond.d.ts.map +1 -1
- package/dist/ui/action-diamond.js +4 -2
- package/dist/ui/action-diamond.js.map +1 -1
- package/dist/ui/choice-card.d.ts +3 -3
- package/dist/ui/choice-card.d.ts.map +1 -1
- package/dist/ui/choice-card.js +1 -1
- package/dist/ui/choice-card.js.map +1 -1
- package/dist/ui/dialogue-card.d.ts +3 -3
- package/dist/ui/dialogue-card.d.ts.map +1 -1
- package/dist/ui/dialogue-card.js +1 -1
- package/dist/ui/dialogue-card.js.map +1 -1
- package/dist/ui/keycap.d.ts +19 -5
- package/dist/ui/keycap.d.ts.map +1 -1
- package/dist/ui/keycap.js +63 -9
- package/dist/ui/keycap.js.map +1 -1
- package/dist/ui/labeled-diamond.d.ts +4 -4
- package/dist/ui/labeled-diamond.d.ts.map +1 -1
- package/dist/ui/labeled-diamond.js +7 -4
- package/dist/ui/labeled-diamond.js.map +1 -1
- package/dist/ui/showcase/index.d.ts.map +1 -1
- package/dist/ui/showcase/index.js +53 -27
- package/dist/ui/showcase/index.js.map +1 -1
- package/dist/ui/solo-labeled-diamond.d.ts +5 -5
- package/dist/ui/solo-labeled-diamond.d.ts.map +1 -1
- package/dist/ui/solo-labeled-diamond.js +4 -2
- package/dist/ui/solo-labeled-diamond.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -191,6 +191,11 @@ const anyHeld = session.buttonsDown().length > 0;
|
|
|
191
191
|
const throttle = session.axis("RT"); // 0..1 (0 on a plain, non-hall trigger until pressed)
|
|
192
192
|
const move = session.stick("LSTICK"); // { x, y, magnitude, angle }, radially deadzoned
|
|
193
193
|
player.x += move.x * speed; // smooth on hall sticks, clean 8-way on a d-pad
|
|
194
|
+
const aim = session.stick("RSTICK"); // the SECOND stick: aim / camera (RX/RY)
|
|
195
|
+
|
|
196
|
+
// The right stick is also readable digitally, and clicking a stick is a plain button:
|
|
197
|
+
const aimX = (session.isDown("RRIGHT") ? 1 : 0) - (session.isDown("RLEFT") ? 1 : 0);
|
|
198
|
+
session.onButton(({ name, edge }) => { if (name === "RSTICK_PRESS" && edge === "down") recentreCamera(); });
|
|
194
199
|
```
|
|
195
200
|
|
|
196
201
|
- **Do NOT** add `window.addEventListener("keydown"/"keyup")`, read `e.key`/`e.code`/`keyCode`,
|
|
@@ -201,11 +206,12 @@ player.x += move.x * speed; // smooth on hall sticks, clean
|
|
|
201
206
|
delivered per-frame and per-focus. `onButton`/`isDown`/`buttonsDown` are immune to all of that:
|
|
202
207
|
the SDK normalises **keyboard, phone, and Zwift Play** into one stream and delivers it whether
|
|
203
208
|
the shell or the game canvas holds focus.
|
|
204
|
-
- **Canonical names:** `UP`/`DOWN`/`LEFT`/`RIGHT`
|
|
205
|
-
|
|
206
|
-
`
|
|
207
|
-
|
|
208
|
-
|
|
209
|
+
- **Canonical names:** `UP`/`DOWN`/`LEFT`/`RIGHT` (D-pad **and** left stick) + right-stick directions
|
|
210
|
+
`RUP`/`RDOWN`/`RLEFT`/`RRIGHT` + face diamond `DIAMOND_UP`/`DIAMOND_DOWN`/`DIAMOND_LEFT`/`DIAMOND_RIGHT` + shoulder triggers `LT`/`RT` + joystick
|
|
211
|
+
clicks `LSTICK_PRESS`/`RSTICK_PRESS`. House convention: `DIAMOND_DOWN` = confirm/primary, `DIAMOND_RIGHT` = back/cancel (as on Xbox/PlayStation/Nintendo). Never print a letter — resolve it per pad with `session.buttonLabel(name)`; every
|
|
212
|
+
other name is contextual (no built-in meaning). Show the actual glyph in prompts; never hard-code a
|
|
213
|
+
device. (Phones expose at least the `DIAMOND_DOWN`/`DIAMOND_RIGHT` pair, and most controllers have no `LT`/`RT`, no second
|
|
214
|
+
stick and no stick click — don't require them for a flow that must work everywhere.)
|
|
209
215
|
- **Edges are real holds:** a held button emits exactly one `down` and one `up`. For "is it held
|
|
210
216
|
right now?" use `isDown`/`buttonsDown` rather than tracking edges yourself.
|
|
211
217
|
- **Analog is opt-in and additive:** when a controller has **hall-effect** sensors, read the
|
|
@@ -217,8 +223,10 @@ player.x += move.x * speed; // smooth on hall sticks, clean
|
|
|
217
223
|
game uses either or both. And `axis()`/`stick()` are **always readable**: on a plain, non-hall
|
|
218
224
|
controller the value is quantized to the endpoints (a trigger snaps `0`/`1`, a d-pad snaps
|
|
219
225
|
`-1`/`0`/`+1`), so you never branch on "does this controller have hall?" — it rests at `0` until a
|
|
220
|
-
sample arrives. The **keyboard emulates axes too** (for local dev): the trigger keys drive `LT`/`RT
|
|
221
|
-
|
|
226
|
+
sample arrives. The **keyboard emulates axes too** (for local dev): the trigger keys drive `LT`/`RT`, the
|
|
227
|
+
arrow keys the left stick and `i`/`j`/`k`/`l` the right stick, so `axis()` and both `stick("LSTICK")` /
|
|
228
|
+
`stick("RSTICK")` work without a controller. The right stick is also readable digitally
|
|
229
|
+
(`RUP`/`RDOWN`/`RLEFT`/`RRIGHT`) and each stick's click is a plain button (`f`/`o` on the keyboard).
|
|
222
230
|
- **The only legitimate exception is a non-gameplay authoring tool** — an admin-gated **world /
|
|
223
231
|
level editor** or a dev-only showcase page that runs outside the rider flow. There, raw keyboard
|
|
224
232
|
(Ctrl+Z, arrows to nudge, Delete) is the correct desktop UX. *Gameplay* never uses it.
|
|
@@ -486,16 +494,16 @@ A self-contained DOM/CSS kit for the **controller-button UI** — showing "which
|
|
|
486
494
|
import { createKeycap, mountActionDiamond, mountDialogueCard } from "@rydr/game-sdk/ui";
|
|
487
495
|
|
|
488
496
|
// a single A keycap that reflects real presses — pass the session (it satisfies `ButtonSource`)
|
|
489
|
-
host.appendChild(createKeycap("
|
|
497
|
+
host.appendChild(createKeycap("DIAMOND_DOWN", { press: session }).el);
|
|
490
498
|
|
|
491
|
-
// the full
|
|
499
|
+
// the full face-diamond move diamond, wired to input
|
|
492
500
|
const dia = mountActionDiamond(host, { press: session, cards: { A: { label: "Séisme" } } });
|
|
493
501
|
dia.cards.A.setActive(true);
|
|
494
502
|
dia.cards.Z.keycap.setCooldown(0.4, 3); // depleting ring + countdown
|
|
495
503
|
```
|
|
496
504
|
|
|
497
|
-
- **`createKeycap(button, opts)`** / **`createDpadKeycap(dir, opts)`** — a keycap of the
|
|
498
|
-
- **`mountCard`** — the dark glass container with a content slot. **`mountActionCard`** — that card + a keycap straddling its bottom edge. **`mountActionDiamond`** — the full
|
|
505
|
+
- **`createKeycap(button, opts)`** / **`createDpadKeycap(dir, opts)`** — a keycap of the face-diamond face buttons or the UP/DOWN/LEFT/RIGHT d-pad. A small state machine: `solo` vs `full` diamond, pulse, pressed, cooldown ring + countdown, colored vs mono, disabled, hidden.
|
|
506
|
+
- **`mountCard`** — the dark glass container with a content slot. **`mountActionCard`** — that card + a keycap straddling its bottom edge. **`mountActionDiamond`** — the full face-diamond move diamond.
|
|
499
507
|
- **`mountDialogueCard`** — an NPC dialogue box (name + typewriter line + continue keycap). **`mountChoiceCard`** — a player menu (prompt + selectable list, ▲▼ + confirm). **`mountLabeledDiamond`** — a pip cluster with a card-seated label radiating from each active button.
|
|
500
508
|
|
|
501
509
|
Wire any keycap to real input by passing the `session` — it structurally satisfies `ButtonSource`, and the keycap then shows its pressed sink while its button is held. The kit speaks the canonical `ButtonName`/`ButtonEdge` vocabulary.
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* Buttons are events (see `PlatformSession.onButton`), not state, so they live
|
|
7
7
|
* on the client rather than here.
|
|
8
8
|
*/
|
|
9
|
+
import { type GlyphSet } from "../protocol/glyphs.js";
|
|
9
10
|
export interface HardwareSnapshot {
|
|
10
11
|
/**
|
|
11
12
|
* Raw trainer power, watts — the exact last reading, updated only when a power message
|
|
@@ -45,6 +46,15 @@ export interface HardwareSnapshot {
|
|
|
45
46
|
* setup; button events themselves stay source-agnostic. Requires the `buttons` capability.
|
|
46
47
|
*/
|
|
47
48
|
controllerConnected: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Which lettering the paired controller carries, for rendering button prompts. Prefer
|
|
51
|
+
* `session.buttonLabel(name)` over reading this directly; it's exposed here so a UI that already
|
|
52
|
+
* subscribes to hardware re-renders its prompts when the rider swaps pads mid-session.
|
|
53
|
+
*
|
|
54
|
+
* A *rendering* hint, never a device identity — several brands share a set, and gameplay must not
|
|
55
|
+
* branch on it. Defaults to {@link DEFAULT_GLYPH_SET} until the shell says otherwise.
|
|
56
|
+
*/
|
|
57
|
+
glyphSet: GlyphSet;
|
|
48
58
|
/** ms timestamp of the most recent update (0 before any data). */
|
|
49
59
|
updatedAt: number;
|
|
50
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HardwareStore.d.ts","sourceRoot":"","sources":["../../src/client/HardwareStore.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"HardwareStore.d.ts","sourceRoot":"","sources":["../../src/client/HardwareStore.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEzE,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;;;;OAYG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,yEAAyE;IACzE,YAAY,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAC7B;;;;;;;OAOG;IACH,QAAQ,EAAE,QAAQ,CAAC;IACnB,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;CACnB;AAeD,MAAM,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAEpE;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAMxC,6EAA6E;AAC7E,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+B;IAEzD,uFAAuF;IACvF,OAAO,CAAC,IAAI,CAAS;IACrB,kFAAkF;IAClF,OAAO,CAAC,UAAU,CAAK;gBAEX,UAAU,GAAE,MAA4B;IAIpD;iFAC6E;IAC7E,IAAI,OAAO,IAAI,gBAAgB,CAG9B;IAED,oGAAoG;IACpG,SAAS,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,IAAI;IAQjD;;;;OAIG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI1C;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAO9C;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;CAazB"}
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reactive snapshot of bridged hardware state for a game.
|
|
3
|
+
*
|
|
4
|
+
* A game never owns hardware; it observes this store, which the
|
|
5
|
+
* {@link PlatformClient} keeps current from the platform's `hw.*` messages.
|
|
6
|
+
* Buttons are events (see `PlatformSession.onButton`), not state, so they live
|
|
7
|
+
* on the client rather than here.
|
|
8
|
+
*/
|
|
9
|
+
import { DEFAULT_GLYPH_SET } from "../protocol/glyphs.js";
|
|
1
10
|
const EMPTY = {
|
|
2
11
|
power: 0,
|
|
3
12
|
smoothedPower: 0,
|
|
@@ -7,6 +16,7 @@ const EMPTY = {
|
|
|
7
16
|
trainerConnected: false,
|
|
8
17
|
ergSupported: false,
|
|
9
18
|
controllerConnected: false,
|
|
19
|
+
glyphSet: DEFAULT_GLYPH_SET,
|
|
10
20
|
updatedAt: 0,
|
|
11
21
|
};
|
|
12
22
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HardwareStore.js","sourceRoot":"","sources":["../../src/client/HardwareStore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HardwareStore.js","sourceRoot":"","sources":["../../src/client/HardwareStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -419,14 +419,24 @@ export interface PlatformSession {
|
|
|
419
419
|
/**
|
|
420
420
|
* Report whether the rider is in **active gameplay** or navigating a **menu** (picker,
|
|
421
421
|
* results, leaderboard, pause screen, etc.). The shell uses this to ease trainer resistance
|
|
422
|
-
* whenever the rider isn't racing — so you keep spinning comfortably while browsing — and
|
|
422
|
+
* (~35%) whenever the rider isn't racing — so you keep spinning comfortably while browsing — and
|
|
423
423
|
* restores full resistance the instant you go back to `"playing"`. The game never sets a
|
|
424
424
|
* resistance value; it only declares state.
|
|
425
425
|
*
|
|
426
|
-
* - `"
|
|
427
|
-
*
|
|
426
|
+
* - `"menu"` — any non-racing screen; the shell eases resistance. **This is the default** — a
|
|
427
|
+
* freshly-launched game is treated as being in its own menus until it says otherwise.
|
|
428
|
+
* - `"playing"` — active gameplay; the shell holds FULL rider resistance.
|
|
428
429
|
*
|
|
429
|
-
*
|
|
430
|
+
* **The one rule: call `setActivity("playing")` when your gameplay loop is live, and `"menu"`
|
|
431
|
+
* on every other screen — including your title/menu screen at boot.** If you never call it, the
|
|
432
|
+
* rider stays eased (~35% lighter) the whole time — safe, but your race won't feel full. You
|
|
433
|
+
* only ever declare menu↔play; the shell owns all the *cleanup* — opening the platform menu,
|
|
434
|
+
* pausing, exiting, or a crash all reset you to the eased rest state automatically, so you can
|
|
435
|
+
* never leave the trainer stuck at full resistance.
|
|
436
|
+
*
|
|
437
|
+
* A DOM-menu game with a screen router should map every screen → state and call this on each
|
|
438
|
+
* transition (see the guitar-hero `ACTIVITY_STATE` map). A game with a phase enum should call
|
|
439
|
+
* `"playing"` on the play phase and `"menu"` on results/pause/etc.
|
|
430
440
|
*/
|
|
431
441
|
setActivity(state: "playing" | "menu"): void;
|
|
432
442
|
/** Ask the shell to exit the game (back to the launcher). */
|
|
@@ -446,9 +456,15 @@ export interface PlatformSession {
|
|
|
446
456
|
* - **Held button** (hold-to-brake, digital steer) → `isDown(name)` / `buttonsDown()` — poll each frame.
|
|
447
457
|
* - **Analog trigger** (throttle, brake pressure) → `axis("LT"|"RT")` — `0..1`, poll each frame.
|
|
448
458
|
* - **Joystick** (2D move/aim) → `stick("LSTICK"|"RSTICK")` — deadzoned `{x, y, magnitude, angle}`.
|
|
459
|
+
* - **Second stick, digitally** (8-way aim) → `RUP`/`RDOWN`/`RLEFT`/`RRIGHT` via `onButton`/`isDown` —
|
|
460
|
+
* the right stick's own edges, so they never collide with the D-pad's `UP`/`DOWN`/`LEFT`/`RIGHT`
|
|
461
|
+
* (which the left stick shares).
|
|
462
|
+
* - **Stick click** (crouch, recentre camera) → `LSTICK_PRESS`/`RSTICK_PRESS` via `onButton`/`isDown` —
|
|
463
|
+
* an ordinary button edge, not an axis. Rare hardware: always leave a second way to do it.
|
|
449
464
|
*
|
|
450
465
|
* The digital (`onButton`/`isDown`) and analog (`axis`/`stick`) streams run in parallel — the same
|
|
451
|
-
* trigger is readable both ways (`isDown("LT")`
|
|
466
|
+
* trigger is readable both ways (`isDown("LT")` / `axis("LT")`) and so is the same stick
|
|
467
|
+
* (`isDown("RLEFT")` / `stick("RSTICK")`), so use whichever fits, or both.
|
|
452
468
|
* The SDK normalises keyboard, phone, and Zwift Play into these streams and delivers them whether
|
|
453
469
|
* the shell or the game canvas holds focus (raw DOM key events silently break across iframe focus).
|
|
454
470
|
*
|
|
@@ -483,8 +499,26 @@ export interface PlatformSession {
|
|
|
483
499
|
* the stick's two axes (`"LSTICK"` → `LX`/`LY`, `"RSTICK"` → `RX`/`RY`) into `{ x, y, magnitude,
|
|
484
500
|
* angle }`. Because axes are always populated, this returns a smooth vector on hall hardware and a
|
|
485
501
|
* clean 8-way vector on a d-pad — one code path. Default deadzone `0.1`; override via `opts`.
|
|
502
|
+
*
|
|
503
|
+
* Clicking the stick is a separate button edge (`LSTICK_PRESS`/`RSTICK_PRESS`), not part of this vector,
|
|
504
|
+
* and the right stick's deflection also arrives digitally as `RUP`/`RDOWN`/`RLEFT`/`RRIGHT`.
|
|
486
505
|
*/
|
|
487
506
|
stick(name: StickName, opts?: StickOptions): StickVector;
|
|
507
|
+
/**
|
|
508
|
+
* The label to PRINT for a button on the controller the rider is actually holding —
|
|
509
|
+
* `buttonLabel("DIAMOND_DOWN")` gives `"A"` on an Xbox pad, `"✕"` on a DualSense, `"B"` on a
|
|
510
|
+
* Switch Pro.
|
|
511
|
+
*
|
|
512
|
+
* **Use this everywhere you would otherwise type a button letter.** The wire vocabulary is
|
|
513
|
+
* positional ({@link ButtonName}) precisely because no letter is correct on every pad, so a
|
|
514
|
+
* hardcoded "Press A" is wrong for most riders. For a graphical prompt prefer a keycap from
|
|
515
|
+
* `@rydr/game-sdk/ui`, which calls this for you and draws the diamond.
|
|
516
|
+
*
|
|
517
|
+
* Reactive: the value changes when the rider swaps controllers mid-session. If you cache the
|
|
518
|
+
* string, re-read it in `onHardware` (the glyph set lives on the hardware snapshot) — or just call
|
|
519
|
+
* this at render time, it's a table lookup.
|
|
520
|
+
*/
|
|
521
|
+
buttonLabel(name: ButtonName): string;
|
|
488
522
|
/**
|
|
489
523
|
* Rumble the connected controller. Pass a named effect (`vibrate("hit")`) or a custom
|
|
490
524
|
* `{ pattern, intensity }` (`vibrate({ pattern: [100, 50, 100], intensity: 1 })`). The shell
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlatformClient.d.ts","sourceRoot":"","sources":["../../src/client/PlatformClient.ts"],"names":[],"mappings":"AASA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"PlatformClient.d.ts","sourceRoot":"","sources":["../../src/client/PlatformClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
import { RYDR_PROTOCOL_VERSION, RYDR_SDK_VERSION } from "../protocol/version.js";
|
|
10
10
|
import { ALL_CAPABILITIES } from "../protocol/capabilities.js";
|
|
11
11
|
import { KEY_TO_BUTTON } from "../protocol/buttons.js";
|
|
12
|
+
import { buttonLabel } from "../protocol/glyphs.js";
|
|
12
13
|
import { setPlatformMaster } from "../sounds/platform-master.js";
|
|
13
14
|
import { decodeReplay, encodeReplay } from "./replayCodec.js";
|
|
14
15
|
import { isPlatformToGameMessage, isRydrMessage } from "../protocol/guards.js";
|
|
@@ -27,11 +28,14 @@ function emit(set, value) {
|
|
|
27
28
|
* it stays renderer-agnostic — only a boolean flag + a DOM CustomEvent, no Three.js dependency.
|
|
28
29
|
*
|
|
29
30
|
* Two palindromes: the face-button code, and an arrows-only alternative for games where the face
|
|
30
|
-
* code can't be entered —
|
|
31
|
-
* the code completes; the D-pad only navigates *within* a game, never out of it.
|
|
31
|
+
* code can't be entered — `DIAMOND_RIGHT` is the house back/cancel button, so it pops menus/exits
|
|
32
|
+
* before the code completes; the D-pad only navigates *within* a game, never out of it.
|
|
33
|
+
*
|
|
34
|
+
* The face code is a clockwise sweep of the diamond and back (top → right → bottom → left, reversed),
|
|
35
|
+
* so it is the same physical gesture on every pad regardless of the letters printed on it.
|
|
32
36
|
*/
|
|
33
37
|
const PERF_CODES = [
|
|
34
|
-
["
|
|
38
|
+
["DIAMOND_UP", "DIAMOND_RIGHT", "DIAMOND_DOWN", "DIAMOND_LEFT", "DIAMOND_LEFT", "DIAMOND_DOWN", "DIAMOND_RIGHT", "DIAMOND_UP"],
|
|
35
39
|
["UP", "RIGHT", "DOWN", "LEFT", "LEFT", "DOWN", "RIGHT", "UP"],
|
|
36
40
|
];
|
|
37
41
|
const PERF_CODE_MAXLEN = Math.max(...PERF_CODES.map((c) => c.length));
|
|
@@ -234,6 +238,10 @@ export function connectToPlatform(options) {
|
|
|
234
238
|
// Manifest-configured smoothing wins over any ConnectOptions default.
|
|
235
239
|
if (welcome.powerSmoothing != null)
|
|
236
240
|
hardware._setSmoothingTau(welcome.powerSmoothing);
|
|
241
|
+
// Seed the glyph set BEFORE resolving, so the game's first frame already prints the right
|
|
242
|
+
// button labels instead of flashing the default and correcting on the first input.status.
|
|
243
|
+
if (welcome.glyphSet)
|
|
244
|
+
hardware._patch({ glyphSet: welcome.glyphSet });
|
|
237
245
|
resolve(session);
|
|
238
246
|
break;
|
|
239
247
|
}
|
|
@@ -286,7 +294,12 @@ export function connectToPlatform(options) {
|
|
|
286
294
|
hardware._patch({ trainerConnected: msg.connected, ergSupported: msg.ergSupported });
|
|
287
295
|
break;
|
|
288
296
|
case "rydr/input.status":
|
|
289
|
-
|
|
297
|
+
// `glyphSet` is optional on the wire (an older shell omits it), so keep the current value
|
|
298
|
+
// rather than snapping every on-screen prompt back to the default mid-session.
|
|
299
|
+
hardware._patch({
|
|
300
|
+
controllerConnected: msg.controllerConnected,
|
|
301
|
+
...(msg.glyphSet ? { glyphSet: msg.glyphSet } : {}),
|
|
302
|
+
});
|
|
290
303
|
break;
|
|
291
304
|
case "rydr/lifecycle.pause":
|
|
292
305
|
emit(pauseListeners, undefined);
|
|
@@ -396,14 +409,22 @@ export function connectToPlatform(options) {
|
|
|
396
409
|
// Keyboard analog emulation: keep the axis values in sync with keyboard-held buttons so
|
|
397
410
|
// `session.axis()` / `session.stick()` work on the keyboard for local dev — quantized to the
|
|
398
411
|
// endpoints (a real hall controller sends continuous values over the wire instead). Triggers map
|
|
399
|
-
// to their own axis; the arrow / d-pad keys drive the LEFT stick
|
|
400
|
-
//
|
|
401
|
-
//
|
|
412
|
+
// to their own axis; the arrow / d-pad keys drive the LEFT stick and the i/j/k/l keys
|
|
413
|
+
// (RUP/RLEFT/RDOWN/RRIGHT) the RIGHT one — opposite keys cancel, so LEFT+RIGHT (and RLEFT+RRIGHT)
|
|
414
|
+
// reads 0. The stick-click keys (f/o → LSTICK_PRESS/RSTICK_PRESS) are buttons only and have no axis.
|
|
415
|
+
// Derived from `kbDown` (keyboard-only held state), so a relayed controller's own `input.axis`
|
|
416
|
+
// samples are the authority whenever one is actually in use.
|
|
417
|
+
//
|
|
418
|
+
// The right-stick keys deliberately do NOT also feed `LX`/`LY`: a twin-stick game would move while
|
|
419
|
+
// aiming, and the keyboard is the reference implementation of the documented contract ("LSTICK" reads
|
|
420
|
+
// LX/LY). A game wanting one merged scheme can OR the two sticks itself; the reverse isn't possible.
|
|
402
421
|
const syncKeyboardAxes = () => {
|
|
403
422
|
axisValues.set("LT", kbDown.has("LT") ? 1 : 0);
|
|
404
423
|
axisValues.set("RT", kbDown.has("RT") ? 1 : 0);
|
|
405
424
|
axisValues.set("LX", (kbDown.has("RIGHT") ? 1 : 0) - (kbDown.has("LEFT") ? 1 : 0));
|
|
406
425
|
axisValues.set("LY", (kbDown.has("UP") ? 1 : 0) - (kbDown.has("DOWN") ? 1 : 0));
|
|
426
|
+
axisValues.set("RX", (kbDown.has("RRIGHT") ? 1 : 0) - (kbDown.has("RLEFT") ? 1 : 0));
|
|
427
|
+
axisValues.set("RY", (kbDown.has("RUP") ? 1 : 0) - (kbDown.has("RDOWN") ? 1 : 0));
|
|
407
428
|
};
|
|
408
429
|
// A game canvas has no text fields, but admin editors mounted as guests (the song and
|
|
409
430
|
// voice-over editors) do. When a keystroke is destined for a focused editable element, it
|
|
@@ -789,6 +810,9 @@ export function connectToPlatform(options) {
|
|
|
789
810
|
const scale = scaled / rawMag; // maps the raw vector to the rescaled, clamped magnitude
|
|
790
811
|
return { x: rawX * scale, y: rawY * scale, magnitude: scaled, angle: Math.atan2(rawY, rawX) };
|
|
791
812
|
},
|
|
813
|
+
// Read through to the live snapshot rather than capturing the set, so a mid-session controller
|
|
814
|
+
// swap changes every prompt on the next render with no game-side subscription.
|
|
815
|
+
buttonLabel: (name) => buttonLabel(hardware.current.glyphSet, name),
|
|
792
816
|
vibrate: (effect) => post({ rydr: true, type: "rydr/haptics.vibrate", effect }),
|
|
793
817
|
onPause: (cb) => {
|
|
794
818
|
pauseListeners.add(cb);
|
|
@@ -809,6 +833,7 @@ export function connectToPlatform(options) {
|
|
|
809
833
|
teardownKeyboard();
|
|
810
834
|
buttonListeners.clear();
|
|
811
835
|
heldButtons.clear();
|
|
836
|
+
axisValues.clear();
|
|
812
837
|
pauseListeners.clear();
|
|
813
838
|
resumeListeners.clear();
|
|
814
839
|
identityListeners.clear();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlatformClient.js","sourceRoot":"","sources":["../../src/client/PlatformClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PlatformClient.js","sourceRoot":"","sources":["../../src/client/PlatformClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
import type { Capability } from "../protocol/capabilities.js";
|
|
12
12
|
import type { ScopedIdentity } from "../protocol/identity.js";
|
|
13
13
|
import type { ButtonName, ButtonEdge, AxisName } from "../protocol/buttons.js";
|
|
14
|
+
import type { GlyphSet } from "../protocol/glyphs.js";
|
|
14
15
|
import type { HapticEffect } from "../protocol/haptics.js";
|
|
15
16
|
import type { BoardDefinition, LeaderboardPage, RankResult, ScoreSubmission, SubmitScoreResult, AdminSeedEntry } from "../protocol/boards.js";
|
|
16
17
|
import type { GameDataScope, GameDoc } from "../protocol/gamedata.js";
|
|
@@ -65,16 +66,18 @@ export interface HardwareSample {
|
|
|
65
66
|
/** ms timestamp from the platform clock. */
|
|
66
67
|
t: number;
|
|
67
68
|
}
|
|
68
|
-
/** The shell's hardware, adapted to what the host needs. The shell implements this over its HardwareManager. */
|
|
69
69
|
export interface HardwareSource {
|
|
70
70
|
/** Subscribe to live readings. Returns an unsubscribe fn. */
|
|
71
71
|
subscribe(listener: (sample: HardwareSample) => void): () => void;
|
|
72
72
|
/** Current trainer connection / ERG status, plus whether a non-keyboard controller
|
|
73
|
-
* (Zwift Play/gamepad/phone) is connected (drives `HardwareSnapshot.controllerConnected`)
|
|
73
|
+
* (Zwift Play/gamepad/phone) is connected (drives `HardwareSnapshot.controllerConnected`), and
|
|
74
|
+
* which lettering that controller carries (drives `session.buttonLabel`). Omit `glyphSet` if the
|
|
75
|
+
* shell can't tell — the game then keeps {@link DEFAULT_GLYPH_SET}. */
|
|
74
76
|
getStatus(): {
|
|
75
77
|
connected: boolean;
|
|
76
78
|
ergSupported: boolean;
|
|
77
79
|
controllerConnected: boolean;
|
|
80
|
+
glyphSet?: GlyphSet;
|
|
78
81
|
};
|
|
79
82
|
/** Apply grade-based resistance. */
|
|
80
83
|
setSimulation(gradePercent: number): void;
|
|
@@ -119,7 +122,8 @@ export interface PlatformHostOptions {
|
|
|
119
122
|
onPowerBarRequest?(visible: boolean): void;
|
|
120
123
|
/** The game reported its activity state — `"playing"` (active gameplay) vs `"menu"` (any
|
|
121
124
|
* non-racing screen). The shell uses it to ease trainer resistance when the rider isn't
|
|
122
|
-
* racing. Default (never sent) is `"
|
|
125
|
+
* racing. Default (never sent) is `"menu"` — a game is eased until it declares `"playing"`.
|
|
126
|
+
* See `PlatformClient.setActivity`. */
|
|
123
127
|
onActivityChange?(state: "playing" | "menu"): void;
|
|
124
128
|
onRequestHardwareModal?(): void;
|
|
125
129
|
/** The game forwarded a rider volume key (T/G) captured inside the focused iframe — step the
|
|
@@ -281,6 +285,14 @@ export interface PlatformHost {
|
|
|
281
285
|
* when this `down` is a still-held button being re-emitted (not a fresh press) — the host
|
|
282
286
|
* forwards it only to guests on protocol ≥ 13; older guests are shielded (one `down` per
|
|
283
287
|
* press) so they don't multi-fire. Omit `repeat` for `up` and for genuine presses.
|
|
288
|
+
*
|
|
289
|
+
* The `name` vocabulary includes the right stick's own direction edges (`RUP`/`RDOWN`/`RLEFT`/`RRIGHT`)
|
|
290
|
+
* and the joystick clicks (`LSTICK_PRESS`/`RSTICK_PRESS`). Send the RIGHT stick's deadzone crossings as
|
|
291
|
+
* the `R*` names — never as `UP`/`DOWN`/`LEFT`/`RIGHT`, which belong to the D-pad AND the left stick.
|
|
292
|
+
* Where two sources share one name like that, the shell owes the game ONE `down` and ONE `up` (hold it
|
|
293
|
+
* until the last source releases), or the game will read a release that didn't happen. Unlike `repeat`,
|
|
294
|
+
* new names need no old-guest shield: a game built before them simply has no branch for them, so
|
|
295
|
+
* they're inert rather than misread.
|
|
284
296
|
*/
|
|
285
297
|
sendButton(name: ButtonName, edge: ButtonEdge, repeat?: boolean): void;
|
|
286
298
|
/**
|
|
@@ -289,12 +301,20 @@ export interface PlatformHost {
|
|
|
289
301
|
* (`LX`/`LY`/`RX`/`RY`) to `[-1, 1]` (right/up = +1), raw (not deadzoned). Call this for every
|
|
290
302
|
* controller — send the endpoints (`0`/`1`, `-1`/`0`/`+1`) for plain digital hardware and the
|
|
291
303
|
* continuous value for hall — so the game's `session.axis()` always reads a usable value. Keep
|
|
292
|
-
* calling `sendButton` for the digital edge in parallel; the shell owns the on/off threshold
|
|
304
|
+
* calling `sendButton` for the digital edge in parallel; the shell owns the on/off threshold — the left
|
|
305
|
+
* stick's crossings as `UP`/`DOWN`/`LEFT`/`RIGHT`, the right stick's as `RUP`/`RDOWN`/`RLEFT`/`RRIGHT`.
|
|
293
306
|
*/
|
|
294
307
|
sendAxis(name: AxisName, value: number): void;
|
|
295
|
-
/**
|
|
296
|
-
*
|
|
297
|
-
|
|
308
|
+
/**
|
|
309
|
+
* Push updated controller-connected state to the game (if it was granted `buttons`), e.g. when a
|
|
310
|
+
* Zwift Play/gamepad/phone connects or drops mid-session.
|
|
311
|
+
*
|
|
312
|
+
* `glyphSet` is which lettering the newly-paired pad carries, so the game can print the button the
|
|
313
|
+
* rider is actually looking at (`session.buttonLabel`). Send it whenever it changes — swapping an
|
|
314
|
+
* Xbox pad for a DualSense mid-session must re-letter every prompt. Omit it and the game keeps its
|
|
315
|
+
* current set, so a shell that doesn't detect brands never clobbers a good value with a guess.
|
|
316
|
+
*/
|
|
317
|
+
sendInputStatus(controllerConnected: boolean, glyphSet?: GlyphSet): void;
|
|
298
318
|
/** Set the shell-owned MASTER audio level for the game (linear `[0, 1]`, 1 = unity, 0 = silent).
|
|
299
319
|
* The SDK scales every live `SoundBank` by it automatically. Ungated. */
|
|
300
320
|
setMasterVolume(volume: number): void;
|