@rydr/game-sdk 10.0.0 → 11.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 +3 -6
- package/dist/client/PlatformClient.d.ts.map +1 -1
- package/dist/client/PlatformClient.js +1 -15
- package/dist/client/PlatformClient.js.map +1 -1
- package/dist/protocol/buttons.d.ts +7 -51
- package/dist/protocol/buttons.d.ts.map +1 -1
- package/dist/protocol/buttons.js +0 -72
- package/dist/protocol/buttons.js.map +1 -1
- package/dist/protocol/glyphs.d.ts +2 -2
- package/dist/protocol/glyphs.d.ts.map +1 -1
- package/dist/protocol/glyphs.js +25 -14
- package/dist/protocol/glyphs.js.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 +10 -2
- package/dist/protocol/version.js.map +1 -1
- package/dist/ui/README.md +11 -13
- package/dist/ui/controller/combo-demo.js +1 -1
- package/dist/ui/controller/combo-demo.js.map +1 -1
- package/dist/ui/controller/control-spotlight.d.ts +5 -5
- package/dist/ui/controller/control-spotlight.js +6 -6
- package/dist/ui/controller/control-trainer.d.ts +5 -5
- package/dist/ui/controller/control-trainer.d.ts.map +1 -1
- package/dist/ui/controller/control-trainer.js +4 -4
- package/dist/ui/controller/control-trainer.js.map +1 -1
- package/dist/ui/controller/controller-map.js +2 -2
- package/dist/ui/controller/controller-map.js.map +1 -1
- package/dist/ui/controller/controller-pad.d.ts +9 -8
- package/dist/ui/controller/controller-pad.d.ts.map +1 -1
- package/dist/ui/controller/controller-pad.js +31 -6
- package/dist/ui/controller/controller-pad.js.map +1 -1
- package/dist/ui/controller/input-chip.d.ts +3 -5
- package/dist/ui/controller/input-chip.d.ts.map +1 -1
- package/dist/ui/controller/input-chip.js +15 -51
- package/dist/ui/controller/input-chip.js.map +1 -1
- package/dist/ui/controller/layouts/dualsense.js +6 -6
- package/dist/ui/controller/layouts/dualsense.js.map +1 -1
- package/dist/ui/controller/layouts/joycon.js +6 -6
- package/dist/ui/controller/layouts/joycon.js.map +1 -1
- package/dist/ui/controller/layouts/switch-pro.js +6 -6
- package/dist/ui/controller/layouts/switch-pro.js.map +1 -1
- package/dist/ui/controller/layouts/xbox.js +6 -6
- package/dist/ui/controller/layouts/xbox.js.map +1 -1
- package/dist/ui/controller/live-presses.d.ts +10 -7
- package/dist/ui/controller/live-presses.d.ts.map +1 -1
- package/dist/ui/controller/live-presses.js +13 -4
- package/dist/ui/controller/live-presses.js.map +1 -1
- package/dist/ui/controller/pad-svg.d.ts +10 -11
- package/dist/ui/controller/pad-svg.d.ts.map +1 -1
- package/dist/ui/controller/pad-svg.js +11 -19
- package/dist/ui/controller/pad-svg.js.map +1 -1
- package/dist/ui/controller/parts-map.d.ts +8 -9
- package/dist/ui/controller/parts-map.d.ts.map +1 -1
- package/dist/ui/controller/parts-map.js +14 -30
- package/dist/ui/controller/parts-map.js.map +1 -1
- package/dist/ui/controller/styles.js +1 -1
- package/dist/ui/controller/tokens.d.ts +9 -14
- package/dist/ui/controller/tokens.d.ts.map +1 -1
- package/dist/ui/controller/tokens.js +1 -1
- package/dist/ui/controller/tokens.js.map +1 -1
- package/dist/ui/keycap.d.ts +1 -1
- package/dist/ui/option-menu.js +1 -1
- package/dist/ui/option-menu.js.map +1 -1
- package/dist/ui/showcase/index.d.ts.map +1 -1
- package/dist/ui/showcase/index.js +19 -21
- package/dist/ui/showcase/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -20,19 +20,22 @@ import type { PadPart } from "./types.js";
|
|
|
20
20
|
export interface HeldPartsOptions {
|
|
21
21
|
/** Everything the rider is holding, from the component's own `onButton` bookkeeping. */
|
|
22
22
|
held: Iterable<ControlName>;
|
|
23
|
-
/** The analog axes, when the source has them. Present ⇒ the
|
|
23
|
+
/** The analog axes, when the source has them. Present ⇒ the d-pad suppression below applies. */
|
|
24
24
|
axis?(name: AxisName): number;
|
|
25
25
|
/**
|
|
26
|
-
* May the shell-owned
|
|
27
|
-
*
|
|
26
|
+
* May the shell-owned shoulders light? False on a drawing that draws them faint (nothing there teaches
|
|
27
|
+
* them), where a highlight would be a highlight nobody can read.
|
|
28
28
|
*/
|
|
29
29
|
shellOwned: boolean;
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
32
|
* Which parts the rider is holding down, ready to paint.
|
|
33
33
|
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
34
|
+
* The one subtlety is the d-pad: `UP`/`DOWN`/`LEFT`/`RIGHT` are emitted by the d-pad *and* by the left
|
|
35
|
+
* stick past its deadzone (see `protocol/buttons.ts`), and nothing in the canonical stream says which. So
|
|
36
|
+
* when the axes already explain a direction, its d-pad arm is left alone — the cap's own position is the
|
|
37
|
+
* truthful picture, and lighting both makes it look like the rider is pressing a d-pad they never touched.
|
|
38
|
+
* Without axes we light the d-pad for both, which is the honest best available.
|
|
36
39
|
*/
|
|
37
40
|
export declare function heldParts(opts: HeldPartsOptions): Set<PadPart>;
|
|
38
41
|
export interface LivePressesOptions extends Omit<HeldPartsOptions, "held"> {
|
|
@@ -43,8 +46,8 @@ export interface LivePressesOptions extends Omit<HeldPartsOptions, "held"> {
|
|
|
43
46
|
/**
|
|
44
47
|
* Move a stick the rider is actually deflecting, in the same colour as their presses.
|
|
45
48
|
*
|
|
46
|
-
* REQUIRED whenever `axis` is given, and the two go together for one reason: `heldParts`
|
|
47
|
-
*
|
|
49
|
+
* REQUIRED whenever `axis` is given, and the two go together for one reason: `heldParts` refuses to
|
|
50
|
+
* light a d-pad arm the stick already explains, so a component that reads the axes and then draws no
|
|
48
51
|
* stick shows the rider NOTHING for a direction they're holding. Called only while a stick is past the
|
|
49
52
|
* deadzone — the component's own animation gets its cap back on the next frame by simply drawing it.
|
|
50
53
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live-presses.d.ts","sourceRoot":"","sources":["../../../src/ui/controller/live-presses.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,WAAW,gBAAgB;IAC/B,wFAAwF;IACxF,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC5B,
|
|
1
|
+
{"version":3,"file":"live-presses.d.ts","sourceRoot":"","sources":["../../../src/ui/controller/live-presses.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,WAAW,gBAAgB;IAC/B,wFAAwF;IACxF,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC5B,gGAAgG;IAChG,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC9B;;;OAGG;IACH,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAAC,CAa9D;AAED,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC;IACxE,8EAA8E;IAC9E,KAAK,EAAE,YAAY,CAAC;IACpB,uGAAuG;IACvG,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAChD;;;;;;;OAOG;IACH,QAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5E;;;;;;;;;OASG;IACH,SAAS,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;IAClC;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,IAAI,CAiBjG"}
|
|
@@ -14,22 +14,31 @@
|
|
|
14
14
|
* green is the only thing left that can mean "and that one was yours".
|
|
15
15
|
*/
|
|
16
16
|
import { STICK_LIT_DEADZONE } from "./pad-svg.js";
|
|
17
|
-
import { litPartOfControl } from "./parts-map.js";
|
|
17
|
+
import { DPAD_DIRECTIONS, litPartOfControl } from "./parts-map.js";
|
|
18
18
|
import { isShellControl } from "./tokens.js";
|
|
19
19
|
/**
|
|
20
20
|
* Which parts the rider is holding down, ready to paint.
|
|
21
21
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
22
|
+
* The one subtlety is the d-pad: `UP`/`DOWN`/`LEFT`/`RIGHT` are emitted by the d-pad *and* by the left
|
|
23
|
+
* stick past its deadzone (see `protocol/buttons.ts`), and nothing in the canonical stream says which. So
|
|
24
|
+
* when the axes already explain a direction, its d-pad arm is left alone — the cap's own position is the
|
|
25
|
+
* truthful picture, and lighting both makes it look like the rider is pressing a d-pad they never touched.
|
|
26
|
+
* Without axes we light the d-pad for both, which is the honest best available.
|
|
24
27
|
*/
|
|
25
28
|
export function heldParts(opts) {
|
|
29
|
+
const { axis } = opts;
|
|
30
|
+
const lx = axis?.("LX") ?? 0;
|
|
31
|
+
const ly = axis?.("LY") ?? 0;
|
|
26
32
|
const parts = new Set();
|
|
27
33
|
for (const name of opts.held) {
|
|
28
34
|
if (!opts.shellOwned && isShellControl(name))
|
|
29
35
|
continue;
|
|
36
|
+
const dir = DPAD_DIRECTIONS[name];
|
|
37
|
+
if (axis && dir && lx * dir[0] + ly * dir[1] > STICK_LIT_DEADZONE)
|
|
38
|
+
continue;
|
|
30
39
|
const part = litPartOfControl(name);
|
|
31
40
|
if (part)
|
|
32
|
-
parts.add(part); // a stick DIRECTION has no part to light (see LIT_PART_OF_BUTTON)
|
|
41
|
+
parts.add(part); // a right-stick DIRECTION has no part to light (see LIT_PART_OF_BUTTON)
|
|
33
42
|
}
|
|
34
43
|
return parts;
|
|
35
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live-presses.js","sourceRoot":"","sources":["../../../src/ui/controller/live-presses.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"live-presses.js","sourceRoot":"","sources":["../../../src/ui/controller/live-presses.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAoB,MAAM,aAAa,CAAC;AAe/D;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CAAC,IAAsB;IAC9C,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAW,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,cAAc,CAAC,IAAI,CAAC;YAAE,SAAS;QACvD,MAAM,GAAG,GAAG,eAAe,CAAC,IAAoC,CAAC,CAAC;QAClE,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,kBAAkB;YAAE,SAAS;QAC5E,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,IAAI;YAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,wEAAwE;IACrG,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAmCD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAwB;IACxD,IAAI,GAAG,GAAG,IAAI,GAAG,EAAW,CAAC;IAC7B,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC/E,KAAK,MAAM,IAAI,IAAI,IAAI;YAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACtD,KAAK,MAAM,IAAI,IAAI,GAAG;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChE,GAAG,GAAG,IAAI,CAAC;QAEX,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAC3C,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC/B,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,CAAU,EAAE,CAAC;YACvC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,kBAAkB;gBAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;;gBACvE,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -18,27 +18,26 @@ import { type PadLayout, type PadPart } from "./types.js";
|
|
|
18
18
|
/**
|
|
19
19
|
* Parts a game can never bind, so the drawing must never light them.
|
|
20
20
|
*
|
|
21
|
-
* The
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* when they became game input (`LB`/`RB`).
|
|
21
|
+
* The bumpers are the rider's resistance − / + and `select`/`home` are the shell's own menu and guide —
|
|
22
|
+
* all four are handled by the shell and are never delivered to a game (see `protocol/buttons.ts` on
|
|
23
|
+
* the shell-owned keys).
|
|
25
24
|
*
|
|
26
25
|
* `setPart` refuses them outright rather than trusting callers: today no `ButtonName` maps here, and
|
|
27
26
|
* enforcing it in the driver keeps that true if someone later adds one by mistake.
|
|
28
27
|
*
|
|
29
28
|
* ⚠️ This set is about BINDING, not about how a part is drawn — see {@link FAINT_PARTS}. The two used
|
|
30
|
-
* to be the same set, which is what drew the
|
|
29
|
+
* to be the same set, which is what drew the shoulders at 40% on every pad in the kit.
|
|
31
30
|
*/
|
|
32
31
|
export declare const SHELL_OWNED_PARTS: ReadonlySet<PadPart>;
|
|
33
32
|
/**
|
|
34
33
|
* Parts drawn FAINT — the ones a rider should read as "not this screen's business".
|
|
35
34
|
*
|
|
36
35
|
* Deliberately NOT the whole of {@link SHELL_OWNED_PARTS}. Faintness answers "is this control part of
|
|
37
|
-
* what you're looking at", and for the **
|
|
38
|
-
* resistance
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
36
|
+
* what you're looking at", and for the **shoulders** the answer is always yes: they are the rider's
|
|
37
|
+
* resistance − / +, the one control on the pad that works identically in the chrome and inside every
|
|
38
|
+
* game, on every screen, all the time. Drawing them at 40% said "not yours to use" when the truth is
|
|
39
|
+
* the opposite — the rider can always reach for them — and it read as *disabled*, which is why every
|
|
40
|
+
* caller that put them on screen ended up overriding the opacity by hand.
|
|
42
41
|
*
|
|
43
42
|
* `select`/`home` stay faint because for them the original argument holds: the shell's menu and guide
|
|
44
43
|
* are genuinely someone else's business, and drawing them bright beside the buttons a game *does* bind
|
|
@@ -128,7 +127,7 @@ export interface PadDriver {
|
|
|
128
127
|
}
|
|
129
128
|
export interface PadDriverOptions {
|
|
130
129
|
/**
|
|
131
|
-
* Let the driver light the shell-owned parts (the
|
|
130
|
+
* Let the driver light the shell-owned parts (the resistance bumpers, View, Guide).
|
|
132
131
|
*
|
|
133
132
|
* Off by default, deliberately: a game can never receive those controls, so lighting them would be
|
|
134
133
|
* telling the rider something untrue. The one legitimate caller is a **lesson that teaches the rider
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pad-svg.d.ts","sourceRoot":"","sources":["../../../src/ui/controller/pad-svg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,OAAO,EAAkD,MAAM,YAAY,CAAC;AAItH
|
|
1
|
+
{"version":3,"file":"pad-svg.d.ts","sourceRoot":"","sources":["../../../src/ui/controller/pad-svg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,OAAO,EAAkD,MAAM,YAAY,CAAC;AAItH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,OAAO,CAAoD,CAAC;AAExG;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,OAAO,CAAwC,CAAC;AAItF,4FAA4F;AAC5F,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,aAAa,CAAC;IACnB,oGAAoG;IACpG,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACjC,gGAAgG;IAChG,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;IAChD,iCAAiC;IACjC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;CACpD;AA8BD;;;GAGG;AACH,eAAO,MAAM,WAAW,MAAM,CAAC;AAE/B;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAoErC;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,MAAM,CAsFtF;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC;AAE1D,MAAM,WAAW,SAAS;IACxB,6FAA6F;IAC7F,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1C,yEAAyE;IACzE,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IACvD;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;IACrG,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,iFAAiF;IACjF,YAAY,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;IACrD,wFAAwF;IACxF,QAAQ,IAAI,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,GAAE,gBAAqB,GAAG,SAAS,CAyFtG"}
|
|
@@ -19,34 +19,26 @@ const NS = "http://www.w3.org/2000/svg";
|
|
|
19
19
|
/**
|
|
20
20
|
* Parts a game can never bind, so the drawing must never light them.
|
|
21
21
|
*
|
|
22
|
-
* The
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* when they became game input (`LB`/`RB`).
|
|
22
|
+
* The bumpers are the rider's resistance − / + and `select`/`home` are the shell's own menu and guide —
|
|
23
|
+
* all four are handled by the shell and are never delivered to a game (see `protocol/buttons.ts` on
|
|
24
|
+
* the shell-owned keys).
|
|
26
25
|
*
|
|
27
26
|
* `setPart` refuses them outright rather than trusting callers: today no `ButtonName` maps here, and
|
|
28
27
|
* enforcing it in the driver keeps that true if someone later adds one by mistake.
|
|
29
28
|
*
|
|
30
29
|
* ⚠️ This set is about BINDING, not about how a part is drawn — see {@link FAINT_PARTS}. The two used
|
|
31
|
-
* to be the same set, which is what drew the
|
|
30
|
+
* to be the same set, which is what drew the shoulders at 40% on every pad in the kit.
|
|
32
31
|
*/
|
|
33
|
-
export const SHELL_OWNED_PARTS = new Set([
|
|
34
|
-
"dpadUp",
|
|
35
|
-
"dpadDown",
|
|
36
|
-
"dpadLeft",
|
|
37
|
-
"dpadRight",
|
|
38
|
-
"select",
|
|
39
|
-
"home",
|
|
40
|
-
]);
|
|
32
|
+
export const SHELL_OWNED_PARTS = new Set(["lb", "rb", "select", "home"]);
|
|
41
33
|
/**
|
|
42
34
|
* Parts drawn FAINT — the ones a rider should read as "not this screen's business".
|
|
43
35
|
*
|
|
44
36
|
* Deliberately NOT the whole of {@link SHELL_OWNED_PARTS}. Faintness answers "is this control part of
|
|
45
|
-
* what you're looking at", and for the **
|
|
46
|
-
* resistance
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
37
|
+
* what you're looking at", and for the **shoulders** the answer is always yes: they are the rider's
|
|
38
|
+
* resistance − / +, the one control on the pad that works identically in the chrome and inside every
|
|
39
|
+
* game, on every screen, all the time. Drawing them at 40% said "not yours to use" when the truth is
|
|
40
|
+
* the opposite — the rider can always reach for them — and it read as *disabled*, which is why every
|
|
41
|
+
* caller that put them on screen ended up overriding the opacity by hand.
|
|
50
42
|
*
|
|
51
43
|
* `select`/`home` stay faint because for them the original argument holds: the shell's menu and guide
|
|
52
44
|
* are genuinely someone else's business, and drawing them bright beside the buttons a game *does* bind
|
|
@@ -115,7 +107,7 @@ export const STICK_PRESS_SCALE = 0.9;
|
|
|
115
107
|
function buildPart(name, spec, showGlyph, smallGlyph = false) {
|
|
116
108
|
// Two independent classes: `shell-owned` is the semantic marker (a game can't bind this), `faint` is
|
|
117
109
|
// the visual one. Keeping `shell-owned` stamped on all four preserves the hook consumers already
|
|
118
|
-
// target, while only `faint` carries an opacity — see FAINT_PARTS for why the
|
|
110
|
+
// target, while only `faint` carries an opacity — see FAINT_PARTS for why the shoulders lost theirs.
|
|
119
111
|
const classes = "rydr-pad-part" +
|
|
120
112
|
(SHELL_OWNED_PARTS.has(name) ? " shell-owned" : "") +
|
|
121
113
|
(FAINT_PARTS.has(name) ? " faint" : "");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pad-svg.js","sourceRoot":"","sources":["../../../src/ui/controller/pad-svg.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pad-svg.js","sourceRoot":"","sources":["../../../src/ui/controller/pad-svg.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,15 +32,15 @@ import { type PadLayout, type PadPart, type PartGeom } from "./types.js";
|
|
|
32
32
|
export declare const LIT_PART_OF_BUTTON: Readonly<Partial<Record<ButtonName, PadPart>>>;
|
|
33
33
|
/**
|
|
34
34
|
* The shell-owned controls, which have no {@link ButtonName} but do have a place on the drawing: the
|
|
35
|
-
*
|
|
36
|
-
*
|
|
35
|
+
* upper shoulders ARE the rider's resistance − / +, and `select` IS the platform menu — the way out of
|
|
36
|
+
* a running game.
|
|
37
37
|
*
|
|
38
38
|
* Kept separate from {@link LIT_PART_OF_BUTTON} so that nothing which walks the game vocabulary can
|
|
39
39
|
* accidentally light them — a game never receives these. Only an explicit opt-in lets them light, which
|
|
40
40
|
* is exactly what a lesson teaching the rider where they are needs.
|
|
41
41
|
*
|
|
42
42
|
* The two are drawn differently until lit, and correctly so (see `FAINT_PARTS` in `pad-svg.ts`): the
|
|
43
|
-
*
|
|
43
|
+
* shoulders are at FULL opacity always, because the rider can reach for their gear on every screen in
|
|
44
44
|
* the product; `select` is FAINT, because on all but this one lesson the platform menu really isn't the
|
|
45
45
|
* screen's business. Lighting it un-faints it — `.faint.on` is opacity 1 — so a lesson that teaches it
|
|
46
46
|
* reads at full strength without anything having to special-case the drawing.
|
|
@@ -58,21 +58,20 @@ export declare function litPartOfButton(name: ButtonName): PadPart | undefined;
|
|
|
58
58
|
export declare function triggerSideOfPart(part: PadPart): "l" | "r" | undefined;
|
|
59
59
|
/** The part to light for any control — game button or shell-owned. */
|
|
60
60
|
export declare function litPartOfControl(name: ControlName): PadPart | undefined;
|
|
61
|
-
/** The four canonical directions the LEFT stick
|
|
61
|
+
/** The four canonical directions the LEFT stick shares with the d-pad, and their axis signs. */
|
|
62
62
|
export declare const DPAD_DIRECTIONS: Readonly<Record<"UP" | "DOWN" | "LEFT" | "RIGHT", readonly [number, number]>>;
|
|
63
63
|
/**
|
|
64
64
|
* Which part a callout LINE should point at.
|
|
65
65
|
*
|
|
66
|
-
* Differs from {@link litPartOfButton} in
|
|
67
|
-
* stick, because "this action uses the stick" is precisely what the line
|
|
68
|
-
* *direction* shouldn't light the stick's click.
|
|
69
|
-
* its trigger, the larger of the two parts it stands for.
|
|
66
|
+
* Differs from {@link litPartOfButton} in exactly one way: a right-stick direction (or a bare stick
|
|
67
|
+
* token) resolves to that stick, because "this action uses the right stick" is precisely what the line
|
|
68
|
+
* should be saying — even though a *direction* shouldn't light the stick's click.
|
|
70
69
|
*/
|
|
71
70
|
export declare function anchorPartOfToken(token: ComboToken): PadPart | undefined;
|
|
72
71
|
/**
|
|
73
72
|
* The movement controls that many actions share, so a callout line to one of them says nothing useful.
|
|
74
73
|
*
|
|
75
|
-
* Both sticks (whole or directional), both stick clicks, and the
|
|
74
|
+
* Both sticks (whole or directional), both stick clicks, the d-pad, and the right-stick directions. In a
|
|
76
75
|
* game where the left stick steers, half the actions mention it; anchoring all their lines there makes a
|
|
77
76
|
* hairball around one part, while the distinctive button in each combination is what actually identifies
|
|
78
77
|
* the action.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parts-map.d.ts","sourceRoot":"","sources":["../../../src/ui/controller/parts-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAErF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"parts-map.d.ts","sourceRoot":"","sources":["../../../src/ui/controller/parts-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAErF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAc7E,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAIzE,CAAC;AAEF,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,CAErE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,CAEtE;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,GAAG,SAAS,CAEvE;AAED,gGAAgG;AAChG,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAKzG,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,CAYxE;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAkBzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,UAAU,GAAG,SAAS,CAG3E;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CA0BjF;AAED,sFAAsF;AACtF,eAAO,MAAM,aAAa,EAAE,SAAS,OAAO,EAM3C,CAAC;AAEF,mGAAmG;AACnG,wBAAgB,SAAS,CACvB,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,OAAO,GACZ;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAM5D;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAYjG;AAED,4FAA4F;AAC5F,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAGnG;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAI7E;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC;QAAC,GAAG,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;KAAE,CAAC;CACpE;AAED,iEAAiE;AACjE,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,EAAE,CAc3D"}
|
|
@@ -29,44 +29,38 @@ import { partCentre } from "./types.js";
|
|
|
29
29
|
* "☰ Menu" is this one, the GAME's, and the platform's own menu is the one printed "View".
|
|
30
30
|
*/
|
|
31
31
|
export const LIT_PART_OF_BUTTON = {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
UP: "dpadUp",
|
|
33
|
+
DOWN: "dpadDown",
|
|
34
|
+
LEFT: "dpadLeft",
|
|
35
|
+
RIGHT: "dpadRight",
|
|
36
36
|
DIAMOND_UP: "faceTop",
|
|
37
37
|
DIAMOND_RIGHT: "faceRight",
|
|
38
38
|
DIAMOND_DOWN: "faceBottom",
|
|
39
39
|
DIAMOND_LEFT: "faceLeft",
|
|
40
40
|
LT: "lt",
|
|
41
41
|
RT: "rt",
|
|
42
|
-
LB: "lb",
|
|
43
|
-
RB: "rb",
|
|
44
|
-
// LEFTANY / RIGHTANY light nothing of their own: they are derived from LB|LT and RB|RT, whose own
|
|
45
|
-
// edges already light the shoulder the rider actually pulled.
|
|
46
42
|
LSTICK_PRESS: "lstickPress",
|
|
47
43
|
RSTICK_PRESS: "rstickPress",
|
|
48
44
|
OPTIONS: "start",
|
|
49
45
|
};
|
|
50
46
|
/**
|
|
51
47
|
* The shell-owned controls, which have no {@link ButtonName} but do have a place on the drawing: the
|
|
52
|
-
*
|
|
53
|
-
*
|
|
48
|
+
* upper shoulders ARE the rider's resistance − / +, and `select` IS the platform menu — the way out of
|
|
49
|
+
* a running game.
|
|
54
50
|
*
|
|
55
51
|
* Kept separate from {@link LIT_PART_OF_BUTTON} so that nothing which walks the game vocabulary can
|
|
56
52
|
* accidentally light them — a game never receives these. Only an explicit opt-in lets them light, which
|
|
57
53
|
* is exactly what a lesson teaching the rider where they are needs.
|
|
58
54
|
*
|
|
59
55
|
* The two are drawn differently until lit, and correctly so (see `FAINT_PARTS` in `pad-svg.ts`): the
|
|
60
|
-
*
|
|
56
|
+
* shoulders are at FULL opacity always, because the rider can reach for their gear on every screen in
|
|
61
57
|
* the product; `select` is FAINT, because on all but this one lesson the platform menu really isn't the
|
|
62
58
|
* screen's business. Lighting it un-faints it — `.faint.on` is opacity 1 — so a lesson that teaches it
|
|
63
59
|
* reads at full strength without anything having to special-case the drawing.
|
|
64
60
|
*/
|
|
65
61
|
export const PART_OF_SHELL_CONTROL = {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
DPAD_LEFT: "dpadLeft",
|
|
69
|
-
DPAD_RIGHT: "dpadRight",
|
|
62
|
+
LB: "lb",
|
|
63
|
+
RB: "rb",
|
|
70
64
|
MENU: "select",
|
|
71
65
|
};
|
|
72
66
|
export function litPartOfButton(name) {
|
|
@@ -87,7 +81,7 @@ export function triggerSideOfPart(part) {
|
|
|
87
81
|
export function litPartOfControl(name) {
|
|
88
82
|
return isShellControl(name) ? PART_OF_SHELL_CONTROL[name] : LIT_PART_OF_BUTTON[name];
|
|
89
83
|
}
|
|
90
|
-
/** The four canonical directions the LEFT stick
|
|
84
|
+
/** The four canonical directions the LEFT stick shares with the d-pad, and their axis signs. */
|
|
91
85
|
export const DPAD_DIRECTIONS = {
|
|
92
86
|
UP: [0, 1],
|
|
93
87
|
DOWN: [0, -1],
|
|
@@ -97,30 +91,20 @@ export const DPAD_DIRECTIONS = {
|
|
|
97
91
|
/**
|
|
98
92
|
* Which part a callout LINE should point at.
|
|
99
93
|
*
|
|
100
|
-
* Differs from {@link litPartOfButton} in
|
|
101
|
-
* stick, because "this action uses the stick" is precisely what the line
|
|
102
|
-
* *direction* shouldn't light the stick's click.
|
|
103
|
-
* its trigger, the larger of the two parts it stands for.
|
|
94
|
+
* Differs from {@link litPartOfButton} in exactly one way: a right-stick direction (or a bare stick
|
|
95
|
+
* token) resolves to that stick, because "this action uses the right stick" is precisely what the line
|
|
96
|
+
* should be saying — even though a *direction* shouldn't light the stick's click.
|
|
104
97
|
*/
|
|
105
98
|
export function anchorPartOfToken(token) {
|
|
106
99
|
const t = parseToken(token);
|
|
107
100
|
if (t.kind === "stick")
|
|
108
101
|
return t.stick === "LSTICK" ? "lstickPress" : "rstickPress";
|
|
109
102
|
switch (t.name) {
|
|
110
|
-
case "UP":
|
|
111
|
-
case "DOWN":
|
|
112
|
-
case "LEFT":
|
|
113
|
-
case "RIGHT":
|
|
114
|
-
return "lstickPress";
|
|
115
103
|
case "RUP":
|
|
116
104
|
case "RDOWN":
|
|
117
105
|
case "RLEFT":
|
|
118
106
|
case "RRIGHT":
|
|
119
107
|
return "rstickPress";
|
|
120
|
-
case "LEFTANY":
|
|
121
|
-
return "lt";
|
|
122
|
-
case "RIGHTANY":
|
|
123
|
-
return "rt";
|
|
124
108
|
default:
|
|
125
109
|
return litPartOfControl(t.name);
|
|
126
110
|
}
|
|
@@ -128,7 +112,7 @@ export function anchorPartOfToken(token) {
|
|
|
128
112
|
/**
|
|
129
113
|
* The movement controls that many actions share, so a callout line to one of them says nothing useful.
|
|
130
114
|
*
|
|
131
|
-
* Both sticks (whole or directional), both stick clicks, and the
|
|
115
|
+
* Both sticks (whole or directional), both stick clicks, the d-pad, and the right-stick directions. In a
|
|
132
116
|
* game where the left stick steers, half the actions mention it; anchoring all their lines there makes a
|
|
133
117
|
* hairball around one part, while the distinctive button in each combination is what actually identifies
|
|
134
118
|
* the action.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parts-map.js","sourceRoot":"","sources":["../../../src/ui/controller/parts-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EACL,cAAc,EACd,UAAU,EACV,gBAAgB,GAKjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAA+C,MAAM,YAAY,CAAC;AAErF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAmD;IAChF,
|
|
1
|
+
{"version":3,"file":"parts-map.js","sourceRoot":"","sources":["../../../src/ui/controller/parts-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -176,7 +176,7 @@ const CSS = `
|
|
|
176
176
|
.rydr-pad-part.on .rydr-pad-glyph-vec { stroke: #06121a; }
|
|
177
177
|
|
|
178
178
|
/* Faint: View and Guide only — the shell's own menu and guide, genuinely not this screen's business.
|
|
179
|
-
The
|
|
179
|
+
The resistance bumpers are shell-owned too but are NOT faint: the rider can always reach for them,
|
|
180
180
|
on every screen, so dimming them read as "disabled". See FAINT_PARTS in pad-svg.ts. */
|
|
181
181
|
.rydr-pad-part.faint { opacity: 0.4; }
|
|
182
182
|
/* Two exceptions, both cases where the control IS the subject rather than someone else's business:
|
|
@@ -18,13 +18,9 @@ export type StickDir = "up" | "down" | "left" | "right";
|
|
|
18
18
|
* A control the SHELL owns, which is therefore not a {@link ButtonName} and never arrives on a game's
|
|
19
19
|
* `onButton`.
|
|
20
20
|
*
|
|
21
|
-
* `
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* for the same reason every other control here is: the position is the fixed fact, while what it *does*
|
|
25
|
-
* belongs on the label. They are NOT `UP`/`DOWN`/`LEFT`/`RIGHT`, which a game does receive (from the left
|
|
26
|
-
* stick, the arrow keys and the phone). Before protocol 44 the shell owned the upper shoulders instead,
|
|
27
|
-
* named `LB`/`RB` here; those are ordinary {@link ButtonName}s now.
|
|
21
|
+
* `LB`/`RB` are the UPPER shoulders. Named by position, not by function, for the same reason every other
|
|
22
|
+
* control here is: the position is the fixed fact, while what it *does* belongs on the label. On this
|
|
23
|
+
* platform they drive the rider's trainer resistance − / +.
|
|
28
24
|
*
|
|
29
25
|
* `MENU` is the LEFT of the two small system buttons (`b8`), which summons the platform's own overlay —
|
|
30
26
|
* the rider's way back out of a running game. It is emphatically **not** `OPTIONS`: that one is a real
|
|
@@ -35,18 +31,18 @@ export type StickDir = "up" | "down" | "left" | "right";
|
|
|
35
31
|
* on a drawing of the rider's actual pad is the only honest way to teach it.
|
|
36
32
|
*
|
|
37
33
|
* They exist here for one reason: **teaching a rider where they are.** A rider who doesn't know the
|
|
38
|
-
*
|
|
34
|
+
* upper shoulders change resistance can't use them, and a rider who can't find `MENU` cannot leave the
|
|
39
35
|
* game they are in — so the shell needs to draw them and build a guided lesson around them, which
|
|
40
36
|
* means naming them in the same vocabulary as everything else.
|
|
41
37
|
*
|
|
42
|
-
* ⚠️ **A game cannot observe these.**
|
|
43
|
-
*
|
|
44
|
-
*
|
|
38
|
+
* ⚠️ **A game cannot observe these.** `protocol/buttons.ts` lists the shell-owned keys (`W`/`X` for
|
|
39
|
+
* resistance among them) and the SDK client forwards them as intents rather than button edges, so
|
|
40
|
+
* `session.onButton` will never fire for `LB`/`RB`. `MENU` is consumed by the shell even earlier — it
|
|
45
41
|
* is what opens the overlay, so it is never forwarded at all. A control-legend built by a game may
|
|
46
42
|
* *mention* them, and `mountControllerMap` will happily point a callout at them; only the interactive
|
|
47
43
|
* `mountControlTrainer` needs a source that actually sees them, and today that source is the shell.
|
|
48
44
|
*/
|
|
49
|
-
export type ShellControl = "
|
|
45
|
+
export type ShellControl = "LB" | "RB" | "MENU";
|
|
50
46
|
/** Anything nameable in a combination: a game button or a shell-owned control. */
|
|
51
47
|
export type ControlName = ButtonName | ShellControl;
|
|
52
48
|
/** Is this a control the shell owns (and a game therefore can't receive)? */
|
|
@@ -59,8 +55,7 @@ export declare function isShellControl(name: string): name is ShellControl;
|
|
|
59
55
|
* - a stick pushed one way — `"LSTICK:left"`
|
|
60
56
|
*
|
|
61
57
|
* `"LEFT"` and `"LSTICK:left"` are both legitimate and mean different things: `"LEFT"` is the canonical
|
|
62
|
-
* direction (the left stick past its deadzone
|
|
63
|
-
* physical d-pad, which is the shell's `DPAD_*`),
|
|
58
|
+
* direction (a d-pad press, or the left stick past its deadzone — the platform emits it for both),
|
|
64
59
|
* while `"LSTICK:left"` says specifically "push the stick left", which is what you want when the action
|
|
65
60
|
* needs analog travel or when you're pairing it with another button.
|
|
66
61
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../src/ui/controller/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEvE,2FAA2F;AAC3F,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAExD
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../src/ui/controller/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEvE,2FAA2F;AAC3F,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAEhD,kFAAkF;AAClF,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,YAAY,CAAC;AAIpD,6EAA6E;AAC7E,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,YAAY,CAEjE;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,SAAS,GAAG,GAAG,SAAS,IAAI,QAAQ,EAAE,CAAC;AAE9E,gEAAgE;AAChE,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IAC7B,mGAAmG;IACnG,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oGAAoG;IACpG,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,sGAAsG;IACtG,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wFAAwF;IACxF,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,4BAA4B;AAC5B,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,SAAS,CAAC;IAAC,GAAG,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC;AAIxD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CASzD;AAED,4GAA4G;AAC5G,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAKlF,CAAC;AAEF,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAEvD"}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* way". So a game never maintains a second, parallel naming scheme for its help screen: whatever it
|
|
12
12
|
* passed to `session.isDown(...)` is what it passes here.
|
|
13
13
|
*/
|
|
14
|
-
const SHELL_CONTROLS = ["
|
|
14
|
+
const SHELL_CONTROLS = ["LB", "RB", "MENU"];
|
|
15
15
|
/** Is this a control the shell owns (and a game therefore can't receive)? */
|
|
16
16
|
export function isShellControl(name) {
|
|
17
17
|
return SHELL_CONTROLS.includes(name);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/ui/controller/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/ui/controller/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAwCH,MAAM,cAAc,GAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAE/D,6EAA6E;AAC7E,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAsDD,MAAM,MAAM,GAAsB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,KAAiB;IAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACnC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAkB,EAAE,GAAG,EAAE,GAAe,EAAE,CAAC;IACxG,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAkB,EAAE,CAAC;IAChF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAoB,EAAE,CAAC;AACxD,CAAC;AAED,4GAA4G;AAC5G,MAAM,CAAC,MAAM,gBAAgB,GAA0D;IACrF,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACV,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACb,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACb,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;CACd,CAAC;AAEF,2EAA2E;AAC3E,MAAM,UAAU,SAAS,CAAC,MAAqB;IAC7C,OAAO,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC;AACnC,CAAC"}
|
package/dist/ui/keycap.d.ts
CHANGED
|
@@ -40,7 +40,7 @@ export type DiamondVariant = KeycapVariant;
|
|
|
40
40
|
*
|
|
41
41
|
* The event name is {@link ControlName}, not `ButtonName`: a `PlatformSession` only ever emits the
|
|
42
42
|
* `ButtonName` subset and still satisfies this, while a SHELL-side source that also sees the shell-owned
|
|
43
|
-
*
|
|
43
|
+
* shoulders (`LB`/`RB`, the rider's resistance) can feed the same object to a keycap, a pad and a lesson
|
|
44
44
|
* instead of needing one shape per consumer. A keycap simply never matches those names.
|
|
45
45
|
*/
|
|
46
46
|
export interface ButtonSource {
|
package/dist/ui/option-menu.js
CHANGED
|
@@ -393,7 +393,7 @@ export function mountOptionMenu(host, opts) {
|
|
|
393
393
|
// ── Input ──────────────────────────────────────────────────────────────────────────────────────
|
|
394
394
|
/** Route one `down` edge. Returns whether the menu consumed it. */
|
|
395
395
|
function handleButton(name) {
|
|
396
|
-
// The shell-owned
|
|
396
|
+
// The shell-owned shoulders mean "resistance" and nothing else — never a menu action, even though a
|
|
397
397
|
// shell-side source hands them to the same stream.
|
|
398
398
|
if (isShellControl(name))
|
|
399
399
|
return false;
|