@rydr/game-sdk 8.3.0 → 8.5.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/dist/client/Room.d.ts +3 -6
- package/dist/client/Room.d.ts.map +1 -1
- package/dist/client/Room.js +149 -58
- package/dist/client/Room.js.map +1 -1
- package/dist/protocol/version.d.ts +1 -1
- package/dist/protocol/version.js +1 -1
- package/dist/ui/README.md +20 -11
- package/dist/ui/controller/combo-demo.d.ts +0 -3
- package/dist/ui/controller/combo-demo.d.ts.map +1 -1
- package/dist/ui/controller/combo-demo.js +7 -1
- package/dist/ui/controller/combo-demo.js.map +1 -1
- package/dist/ui/controller/control-spotlight.d.ts.map +1 -1
- package/dist/ui/controller/control-spotlight.js +8 -0
- package/dist/ui/controller/control-spotlight.js.map +1 -1
- package/dist/ui/controller/control-trainer.d.ts +3 -11
- package/dist/ui/controller/control-trainer.d.ts.map +1 -1
- package/dist/ui/controller/control-trainer.js +1 -1
- package/dist/ui/controller/control-trainer.js.map +1 -1
- package/dist/ui/controller/controller-map.d.ts +0 -3
- package/dist/ui/controller/controller-map.d.ts.map +1 -1
- package/dist/ui/controller/controller-map.js +0 -1
- package/dist/ui/controller/controller-map.js.map +1 -1
- package/dist/ui/controller/controller-pad.d.ts +35 -10
- package/dist/ui/controller/controller-pad.d.ts.map +1 -1
- package/dist/ui/controller/controller-pad.js +23 -8
- package/dist/ui/controller/controller-pad.js.map +1 -1
- package/dist/ui/controller/input-chip.d.ts +4 -26
- package/dist/ui/controller/input-chip.d.ts.map +1 -1
- package/dist/ui/controller/input-chip.js +107 -106
- package/dist/ui/controller/input-chip.js.map +1 -1
- package/dist/ui/controller/live-presses.d.ts +11 -0
- package/dist/ui/controller/live-presses.d.ts.map +1 -1
- package/dist/ui/controller/live-presses.js +3 -1
- package/dist/ui/controller/live-presses.js.map +1 -1
- package/dist/ui/controller/styles.js +81 -29
- package/dist/ui/controller/styles.js.map +1 -1
- package/dist/ui/controller/types.d.ts +2 -1
- package/dist/ui/controller/types.d.ts.map +1 -1
- package/dist/ui/controller/types.js.map +1 -1
- package/dist/ui/keycap.d.ts +19 -0
- package/dist/ui/keycap.d.ts.map +1 -1
- package/dist/ui/keycap.js +4 -1
- package/dist/ui/keycap.js.map +1 -1
- package/dist/ui/labeled-diamond.d.ts +12 -1
- package/dist/ui/labeled-diamond.d.ts.map +1 -1
- package/dist/ui/labeled-diamond.js +6 -3
- package/dist/ui/labeled-diamond.js.map +1 -1
- package/dist/ui/power-race.d.ts +84 -3
- package/dist/ui/power-race.d.ts.map +1 -1
- package/dist/ui/power-race.js +98 -41
- package/dist/ui/power-race.js.map +1 -1
- package/dist/ui/showcase/index.d.ts.map +1 -1
- package/dist/ui/showcase/index.js +23 -132
- package/dist/ui/showcase/index.js.map +1 -1
- package/dist/ui/styles.js +17 -5
- package/dist/ui/styles.js.map +1 -1
- package/package.json +2 -1
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
* UP/DOWN/LEFT/RIGHT, R* → `createDpadKeycap` (the kit's chevron-on-steel keycap)
|
|
8
8
|
* LT / RT / OPTIONS → `createButtonKeycap` (the kit's pill "L2"/"ZL" for a trigger, the
|
|
9
9
|
* pad's round ☰ / + icon pip for OPTIONS)
|
|
10
|
-
* LSTICK / RSTICK → a stick pictogram
|
|
11
|
-
* LSTICK / RSTICK :direction → the same pictogram
|
|
12
|
-
* LSTICK_PRESS / RSTICK_PRESS →
|
|
13
|
-
*
|
|
10
|
+
* LSTICK / RSTICK → a stick pictogram whose cap runs its travel circle: any direction
|
|
11
|
+
* LSTICK / RSTICK :direction → the same pictogram, cap pushing that way and back on a loop
|
|
12
|
+
* LSTICK_PRESS / RSTICK_PRESS → the same pictogram again, cap centred: it shrinks under a real
|
|
13
|
+
* press, exactly as the live pad's cap does
|
|
14
14
|
*
|
|
15
15
|
* The sticks are pictures rather than lettered chips throughout, because that is the one control where
|
|
16
16
|
* the letter tells a rider nothing: "L3" does not say *click the stick*, and it changes per brand on
|
|
@@ -32,38 +32,30 @@ import { createKeycap, createDpadKeycap, createButtonKeycap } from "../keycap.js
|
|
|
32
32
|
import { injectPadCss } from "./styles.js";
|
|
33
33
|
import { isShellControl, parseToken, STICK_DIR_VECTOR } from "./tokens.js";
|
|
34
34
|
const NS = "http://www.w3.org/2000/svg";
|
|
35
|
-
/** The style used when a caller doesn't ask for one. */
|
|
36
|
-
export const DEFAULT_STICK_STYLE = "profile";
|
|
37
35
|
/**
|
|
38
|
-
* Plan-view geometry.
|
|
39
|
-
* its rim, in clear air.
|
|
36
|
+
* Plan-view geometry. One drawing convention, deliberately plain: a well and a cap, and nothing else.
|
|
40
37
|
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
38
|
+
* There used to be three conventions (a top-down one, this one, and a bold console-UI glyph) and every
|
|
39
|
+
* one of them drew direction ARROWS around the well. They're gone: an arrow at chip size is stroked in
|
|
40
|
+
* the same `currentColor` as the well rim, so it either touches the rim and fuses into a blob, or it
|
|
41
|
+
* sits outside it and eats the room the well needed to look like a well. The cap itself says it better —
|
|
42
|
+
* it MOVES (see {@link animateStick}), which is what a stick actually does and what an arrow was only
|
|
43
|
+
* ever a static shorthand for.
|
|
44
|
+
*
|
|
45
|
+
* With the arrows gone the well can have the whole box, so these are much bigger than the arrowed
|
|
46
|
+
* version's.
|
|
44
47
|
*/
|
|
45
|
-
const WELL_R =
|
|
46
|
-
const CAP_R =
|
|
47
|
-
/** Outline chevron pointing OUTWARD, clear of the well rim. */
|
|
48
|
-
const STICK_ARROW = "M9.3 4 L12 1 L14.7 4";
|
|
49
|
-
/** The same cue as a SOLID triangle — heavier, and far more legible at chip size. */
|
|
50
|
-
const STICK_TRI = "M12 0.6 L14.9 4 L9.1 4 Z";
|
|
51
|
-
/** A solid triangle for the glyph style, whose disc has no rim to collide with. */
|
|
52
|
-
const STICK_TRI_FAR = "M12 1.2 L15.2 5.6 L8.8 5.6 Z";
|
|
53
|
-
/** The four rotations that turn one arrow into the "any direction" cue. */
|
|
54
|
-
const OMNI_ROTATIONS = [0, 90, 180, 270];
|
|
55
|
-
/** Chevron pointing DOWN at the well from outside it — the top-down style's "click" cue. */
|
|
56
|
-
const STICK_PRESS_ARROW = "M9.4 1 L12 3.8 L14.6 1";
|
|
57
|
-
/** Solid arrow pressing DOWN onto the thumb pad of the side-view stick. */
|
|
58
|
-
const STICK_PRESS_TRI = "M12 7.4 L9.4 3.4 L14.6 3.4 Z";
|
|
59
|
-
/** Solid arrow pointing DOWN *inside* the glyph style's heavy ring. */
|
|
60
|
-
const STICK_PRESS_TRI_IN = "M12 16.8 L8.3 9.6 L15.7 9.6 Z";
|
|
61
|
-
/** The side-view stick: a socket ellipse, a tapering shaft, and a rounded thumb pad. */
|
|
62
|
-
const STICK_SHAFT = "M9.8 19 L10.9 12.6 L13.1 12.6 L14.2 19 Z";
|
|
48
|
+
const WELL_R = 9;
|
|
49
|
+
const CAP_R = 4.6;
|
|
63
50
|
/** How far the cap slides at full deflection, in the pictogram's own 24-unit box. Kept under
|
|
64
51
|
* `WELL_R - CAP_R` so a fully-deflected cap still reads as *inside* its well rather than escaping it. */
|
|
65
|
-
const PIC_TRAVEL =
|
|
66
|
-
|
|
52
|
+
const PIC_TRAVEL = 3.6;
|
|
53
|
+
/** One full revolution of the "any direction" sweep, ms. Matches `combo-demo` / `control-spotlight`. */
|
|
54
|
+
const SWEEP_MS = 1200;
|
|
55
|
+
/** One out-and-back nudge of a DIRECTIONAL cap, ms. Matches `control-trainer`'s hint sweep. */
|
|
56
|
+
const NUDGE_MS = 1400;
|
|
57
|
+
/** Where a reduced-motion "any direction" cap parks: off-centre, so it still reads as a live stick. */
|
|
58
|
+
const OMNI_STILL = [0.7, 0.7];
|
|
67
59
|
/** Lesson colours. Kept beside the CSS block that mirrors them for the plain chips. */
|
|
68
60
|
const STATE_COLOR = {
|
|
69
61
|
idle: null, // null = whatever setColored would give
|
|
@@ -99,8 +91,8 @@ function textChip(text, extraClass = "") {
|
|
|
99
91
|
return span;
|
|
100
92
|
}
|
|
101
93
|
/**
|
|
102
|
-
* A directional chip
|
|
103
|
-
*
|
|
94
|
+
* A directional chip is BORN deflected — that is the information ("push it left"), and it's the frame a
|
|
95
|
+
* reduced-motion reader keeps. The loop and the combo demo both start from centre and take over anyway.
|
|
104
96
|
*/
|
|
105
97
|
function seatCap(cap, mode, travel = PIC_TRAVEL) {
|
|
106
98
|
if (mode === "omni" || mode === "press")
|
|
@@ -108,92 +100,96 @@ function seatCap(cap, mode, travel = PIC_TRAVEL) {
|
|
|
108
100
|
const [vx, vy] = STICK_DIR_VECTOR[mode];
|
|
109
101
|
cap.setAttribute("transform", `translate(${vx * travel} ${-vy * travel})`);
|
|
110
102
|
}
|
|
111
|
-
/**
|
|
112
|
-
function
|
|
113
|
-
|
|
114
|
-
return;
|
|
115
|
-
const rots = mode === "omni" ? OMNI_ROTATIONS : [ARROW_ROT[mode]];
|
|
116
|
-
for (const rot of rots)
|
|
117
|
-
svg.appendChild(svgEl("path", { d, transform: `rotate(${rot} 12 12)` }, cls));
|
|
118
|
-
}
|
|
119
|
-
/** Plan view, light outline chevrons. The click is concentric rings + a chevron pressing in. */
|
|
120
|
-
function drawTopDown(svg, mode) {
|
|
121
|
-
svg.appendChild(svgEl("circle", { cx: 12, cy: 12, r: WELL_R }, "rydr-pad-stickpic-well"));
|
|
122
|
-
if (mode === "press") {
|
|
123
|
-
svg.appendChild(svgEl("path", { d: STICK_PRESS_ARROW }, "rydr-pad-stickpic-arrow"));
|
|
124
|
-
svg.appendChild(svgEl("circle", { cx: 12, cy: 12, r: 4.9 }, "rydr-pad-stickpic-ring"));
|
|
125
|
-
const cap = svgEl("circle", { cx: 12, cy: 13, r: 3 }, "rydr-pad-stickpic-cap rydr-pad-stickpic-press");
|
|
126
|
-
svg.appendChild(cap);
|
|
127
|
-
return cap;
|
|
128
|
-
}
|
|
129
|
-
addArrows(svg, mode, STICK_ARROW, "rydr-pad-stickpic-arrow");
|
|
130
|
-
const cap = svgEl("circle", { cx: 12, cy: 12, r: CAP_R }, "rydr-pad-stickpic-cap");
|
|
131
|
-
seatCap(cap, mode);
|
|
132
|
-
svg.appendChild(cap);
|
|
133
|
-
return cap;
|
|
103
|
+
/** Write a deflection onto a cap, in the SDK's convention (right = +1, **up = +1**). */
|
|
104
|
+
function placeCap(cap, x, y) {
|
|
105
|
+
cap.setAttribute("transform", `translate(${(x * PIC_TRAVEL).toFixed(2)} ${(-y * PIC_TRAVEL).toFixed(2)})`);
|
|
134
106
|
}
|
|
135
107
|
/**
|
|
136
|
-
*
|
|
108
|
+
* Draw the pictogram: a well, and a cap in it. Same two shapes for every mode — what differs is what the
|
|
109
|
+
* cap DOES, which is the animation's job, not the drawing's.
|
|
137
110
|
*
|
|
138
|
-
*
|
|
139
|
-
* axis,
|
|
140
|
-
*
|
|
141
|
-
* stick with an arrow on top of it.
|
|
111
|
+
* The click's cap carries `-press` as well, which is what the pressed CSS scales: a click is motion along
|
|
112
|
+
* the viewing axis, so the cap shrinks in place (smaller = pushed away from you) and stays centred,
|
|
113
|
+
* exactly as the live pad's own cap does.
|
|
142
114
|
*/
|
|
143
|
-
function
|
|
144
|
-
if (mode === "press") {
|
|
145
|
-
svg.appendChild(svgEl("path", { d: STICK_PRESS_TRI }, "rydr-pad-stickpic-fill"));
|
|
146
|
-
svg.appendChild(svgEl("ellipse", { cx: 12, cy: 20, rx: 7.5, ry: 2.4 }, "rydr-pad-stickpic-base"));
|
|
147
|
-
svg.appendChild(svgEl("path", { d: STICK_SHAFT }, "rydr-pad-stickpic-shaft"));
|
|
148
|
-
const cap = svgEl("rect", { x: 7.4, y: 8.4, width: 9.2, height: 4.8, rx: 2.4 }, "rydr-pad-stickpic-cap rydr-pad-stickpic-press");
|
|
149
|
-
svg.appendChild(cap);
|
|
150
|
-
return cap;
|
|
151
|
-
}
|
|
115
|
+
function drawStick(svg, mode) {
|
|
152
116
|
svg.appendChild(svgEl("circle", { cx: 12, cy: 12, r: WELL_R }, "rydr-pad-stickpic-well"));
|
|
153
|
-
|
|
154
|
-
const cap = svgEl("circle", { cx: 12, cy: 12, r: CAP_R },
|
|
117
|
+
const cls = mode === "press" ? "rydr-pad-stickpic-cap rydr-pad-stickpic-press" : "rydr-pad-stickpic-cap";
|
|
118
|
+
const cap = svgEl("circle", { cx: 12, cy: 12, r: CAP_R }, cls);
|
|
155
119
|
seatCap(cap, mode);
|
|
156
120
|
svg.appendChild(cap);
|
|
157
121
|
return cap;
|
|
158
122
|
}
|
|
159
|
-
/**
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
123
|
+
/**
|
|
124
|
+
* Make the cap DEMONSTRATE its gesture instead of parking at it — this is what replaced the arrows.
|
|
125
|
+
*
|
|
126
|
+
* "omni" → the cap runs its travel circle: every direction, in turn.
|
|
127
|
+
* a dir → the cap pushes that way and comes back, on a loop. A cap parked at full deflection reads
|
|
128
|
+
* as "already done" (the same reason `control-trainer` sweeps its hints); moving out and
|
|
129
|
+
* back reads as an instruction.
|
|
130
|
+
* "press" → nothing. A click is along the viewing axis, so there is no in-plane motion to loop; it
|
|
131
|
+
* shows the live pad's pressed look when the rider actually clicks (`setPressed`).
|
|
132
|
+
*
|
|
133
|
+
* `prefers-reduced-motion` gets a still frame, not a twitch: a directional cap parks deflected, an
|
|
134
|
+
* undirected one parks off-centre.
|
|
135
|
+
*
|
|
136
|
+
* Returns the stopper, which a driver calls on its first `setDeflection`: once the combo demo, the
|
|
137
|
+
* trainer or real axes are driving this cap, two things writing the same transform would fight.
|
|
138
|
+
*/
|
|
139
|
+
function animateStick(wrap, cap, mode) {
|
|
140
|
+
if (mode === "press")
|
|
141
|
+
return () => { };
|
|
142
|
+
const reduceMotion = typeof matchMedia === "function" && matchMedia("(prefers-reduced-motion: reduce)").matches;
|
|
143
|
+
if (reduceMotion) {
|
|
144
|
+
if (mode === "omni")
|
|
145
|
+
placeCap(cap, OMNI_STILL[0], OMNI_STILL[1]);
|
|
146
|
+
return () => { };
|
|
166
147
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
148
|
+
// The cap's CSS transition smooths a driver's occasional writes; per-frame it would only add lag.
|
|
149
|
+
wrap.classList.add("anim");
|
|
150
|
+
let raf = 0;
|
|
151
|
+
let t0 = 0;
|
|
152
|
+
const frame = (t) => {
|
|
153
|
+
if (!t0)
|
|
154
|
+
t0 = t;
|
|
155
|
+
const p = t - t0;
|
|
156
|
+
if (mode === "omni") {
|
|
157
|
+
const a = (p / SWEEP_MS) * Math.PI * 2;
|
|
158
|
+
placeCap(cap, Math.cos(a), Math.sin(a));
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
const [vx, vy] = STICK_DIR_VECTOR[mode];
|
|
162
|
+
const s = 0.5 - 0.5 * Math.cos((p / NUDGE_MS) * Math.PI * 2);
|
|
163
|
+
placeCap(cap, vx * s, vy * s);
|
|
164
|
+
}
|
|
165
|
+
raf = requestAnimationFrame(frame);
|
|
166
|
+
};
|
|
167
|
+
raf = requestAnimationFrame(frame);
|
|
168
|
+
return () => {
|
|
169
|
+
cancelAnimationFrame(raf);
|
|
170
|
+
wrap.classList.remove("anim");
|
|
171
|
+
};
|
|
172
172
|
}
|
|
173
|
-
const STICK_DRAW = {
|
|
174
|
-
topdown: drawTopDown,
|
|
175
|
-
profile: drawProfile,
|
|
176
|
-
glyph: drawGlyph,
|
|
177
|
-
};
|
|
178
173
|
/**
|
|
179
|
-
* The stick pictogram. Three things must be tellable apart at a glance on a trainer screen
|
|
174
|
+
* The stick pictogram. Three things must be tellable apart at a glance on a trainer screen, and none of
|
|
175
|
+
* them is drawn — all three are the SAME well and cap, told apart by how the cap moves:
|
|
180
176
|
*
|
|
181
|
-
* "omni" — the whole stick, free movement:
|
|
182
|
-
* a dir — the stick pushed one way:
|
|
183
|
-
* "press" — the stick CLICKED straight down (`LSTICK_PRESS`)
|
|
177
|
+
* "omni" — the whole stick, free movement: the cap runs its circle
|
|
178
|
+
* a dir — the stick pushed one way: the cap pushes out that way and comes back, on a loop
|
|
179
|
+
* "press" — the stick CLICKED straight down (`LSTICK_PRESS`): the cap stays centred and shrinks under
|
|
180
|
+
* a real press, the live pad's own click
|
|
184
181
|
*
|
|
185
182
|
* Sticks are pictures rather than lettered chips because that is the one control where the letter tells
|
|
186
183
|
* a rider nothing — "L3" does not say *click the stick*, and it changes per brand on top of that. The
|
|
187
|
-
* printed label still reaches them through the chip's tooltip.
|
|
188
|
-
* three drawing conventions and why a click is the hard case.
|
|
184
|
+
* printed label still reaches them through the chip's tooltip.
|
|
189
185
|
*/
|
|
190
|
-
function stickChip(mode
|
|
186
|
+
function stickChip(mode) {
|
|
191
187
|
const wrap = document.createElement("span");
|
|
192
|
-
wrap.className =
|
|
188
|
+
wrap.className = "rydr-pad-chip stick";
|
|
193
189
|
const svg = svgEl("svg", { viewBox: "0 0 24 24" });
|
|
194
|
-
const cap =
|
|
190
|
+
const cap = drawStick(svg, mode);
|
|
195
191
|
wrap.appendChild(svg);
|
|
196
|
-
return { el: wrap, cap };
|
|
192
|
+
return { el: wrap, cap, stop: animateStick(wrap, cap, mode) };
|
|
197
193
|
}
|
|
198
194
|
/**
|
|
199
195
|
* Build the chip for one control.
|
|
@@ -204,7 +200,6 @@ function stickChip(mode, style) {
|
|
|
204
200
|
export function createInputChip(token, opts = {}) {
|
|
205
201
|
injectPadCss();
|
|
206
202
|
const set = opts.glyphSet ?? DEFAULT_GLYPH_SET;
|
|
207
|
-
const stickStyle = opts.stickStyle ?? DEFAULT_STICK_STYLE;
|
|
208
203
|
const parsed = parseToken(token);
|
|
209
204
|
let el;
|
|
210
205
|
let setPressed;
|
|
@@ -219,14 +214,14 @@ export function createInputChip(token, opts = {}) {
|
|
|
219
214
|
/** The control whose real presses this chip reflects (a stick pictogram has none). */
|
|
220
215
|
let pressName;
|
|
221
216
|
if (parsed.kind === "stick") {
|
|
222
|
-
const { el: node, cap } = stickChip(parsed.dir ?? "omni"
|
|
217
|
+
const { el: node, cap, stop } = stickChip(parsed.dir ?? "omni");
|
|
223
218
|
el = node;
|
|
224
219
|
node.title = parsed.stick === "LSTICK" ? "Left stick" : "Right stick";
|
|
225
220
|
setPressed = (on) => node.classList.toggle("pressed", on);
|
|
226
221
|
setState = (s) => classState(node, s);
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
222
|
+
// A driver taking over ends the self-demonstrating loop — see animateStick.
|
|
223
|
+
setDeflection = (x, y) => { stop(); placeCap(cap, x, y); };
|
|
224
|
+
disposeInner = stop;
|
|
230
225
|
}
|
|
231
226
|
else if (isShellControl(parsed.name)) {
|
|
232
227
|
// The rider's resistance − / +, i.e. the UPPER shoulders. Same rectangle as a trigger, because
|
|
@@ -242,12 +237,18 @@ export function createInputChip(token, opts = {}) {
|
|
|
242
237
|
else if (parsed.name === "LSTICK_PRESS" || parsed.name === "RSTICK_PRESS") {
|
|
243
238
|
// Clicking a stick is its own gesture, so it gets its own picture rather than a "L3"/"LS" chip.
|
|
244
239
|
// The brand letter still reaches the rider through the tooltip and assistive tech.
|
|
245
|
-
const { el: node } = stickChip("press"
|
|
240
|
+
const { el: node } = stickChip("press");
|
|
246
241
|
el = node;
|
|
247
242
|
const side = parsed.name === "LSTICK_PRESS" ? "Left" : "Right";
|
|
248
243
|
node.title = `${side} stick click (${buttonLabel(set, parsed.name)})`;
|
|
249
244
|
setPressed = (on) => node.classList.toggle("pressed", on);
|
|
250
|
-
|
|
245
|
+
// The click chip is the one whose lesson states must also MOVE. Everywhere else a state is a colour,
|
|
246
|
+
// because the shape already says which control it is; here the shape is a dot in a well and the
|
|
247
|
+
// gesture is the only thing that distinguishes clicking the stick from pushing it. So `active` —
|
|
248
|
+
// "you are holding it right now" — drives the very same `pressed` class a real press drives, which
|
|
249
|
+
// is what makes the chip in the card and the cap on the live drawing perform the same click. `hint`
|
|
250
|
+
// loops that click in white, from CSS (see .rydr-pad-hint .rydr-pad-stickpic-press).
|
|
251
|
+
setState = (s) => { classState(node, s); setPressed(s === "active"); };
|
|
251
252
|
pressName = parsed.name;
|
|
252
253
|
}
|
|
253
254
|
else if (DIAMONDS.includes(parsed.name)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-chip.js","sourceRoot":"","sources":["../../../src/ui/controller/input-chip.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"input-chip.js","sourceRoot":"","sources":["../../../src/ui/controller/input-chip.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,6 +52,17 @@ export interface LivePressesOptions extends Omit<HeldPartsOptions, "held"> {
|
|
|
52
52
|
* deadzone — the component's own animation gets its cap back on the next frame by simply drawing it.
|
|
53
53
|
*/
|
|
54
54
|
setStick?(side: "l" | "r", x: number, y: number, state: PadPartState): void;
|
|
55
|
+
/**
|
|
56
|
+
* Put a stick back: neither the rider nor the caller's own animation is moving this one.
|
|
57
|
+
*
|
|
58
|
+
* REQUIRED alongside `setStick`, and the reason is the release. `setStick` is called only while a stick
|
|
59
|
+
* is PAST the deadzone, on the understanding that the caller redraws its cap on the next frame — but a
|
|
60
|
+
* caller only ever writes the sticks its OWN animation names, so a deflection on any other side had
|
|
61
|
+
* nobody to undo it and the cap stayed parked where the rider left it, still lit. Called once per pass
|
|
62
|
+
* for every side the rider is not deflecting; the implementation decides whether its own animation owns
|
|
63
|
+
* that side (in which case it leaves it alone) and otherwise recentres it.
|
|
64
|
+
*/
|
|
65
|
+
restStick?(side: "l" | "r"): void;
|
|
55
66
|
/**
|
|
56
67
|
* The rider let go of a part this pass had lit. A component that repaints the part itself every frame
|
|
57
68
|
* (because its animation owns it) should hand it back rather than blank it — blanking flashes one dark
|
|
@@ -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,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;;;;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,
|
|
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"}
|
|
@@ -57,7 +57,7 @@ export function createLivePresses(opts) {
|
|
|
57
57
|
if (!next.has(part))
|
|
58
58
|
opts.release(part);
|
|
59
59
|
lit = next;
|
|
60
|
-
const { axis, setStick } = opts;
|
|
60
|
+
const { axis, setStick, restStick } = opts;
|
|
61
61
|
if (!axis || !setStick)
|
|
62
62
|
return;
|
|
63
63
|
for (const side of ["l", "r"]) {
|
|
@@ -65,6 +65,8 @@ export function createLivePresses(opts) {
|
|
|
65
65
|
const y = axis(side === "l" ? "LY" : "RY");
|
|
66
66
|
if (Math.hypot(x, y) > STICK_LIT_DEADZONE)
|
|
67
67
|
setStick(side, x, y, opts.state);
|
|
68
|
+
else
|
|
69
|
+
restStick?.(side);
|
|
68
70
|
}
|
|
69
71
|
};
|
|
70
72
|
}
|
|
@@ -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,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;
|
|
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"}
|
|
@@ -69,10 +69,25 @@ const CSS = `
|
|
|
69
69
|
the off-centre click that sank the first attempt at this. Scoped to the stick cap group, whose
|
|
70
70
|
bounding box is the cap itself; the buttons keep the pure translate above, where the origin can't
|
|
71
71
|
matter. Declared after that rule (same specificity) so it wins for a stick. */
|
|
72
|
-
.rydr-pad-stickcap {
|
|
73
|
-
|
|
72
|
+
.rydr-pad-stickcap {
|
|
73
|
+
transform-box: fill-box; transform-origin: center;
|
|
74
|
+
/* The click, as two numbers rather than as a transform. Both the real press below and the lesson's
|
|
75
|
+
"do this" loop (rydr-pad-click) read them, so the two can never drift apart: there is exactly one
|
|
76
|
+
definition of what clicking a stick LOOKS like on this drawing. */
|
|
77
|
+
--pad-click-depth: ${PRESS_DEPTH}px;
|
|
78
|
+
--pad-click-scale: ${STICK_PRESS_SCALE};
|
|
79
|
+
}
|
|
80
|
+
.rydr-pad-part.on .rydr-pad-stickcap { transform: translateY(var(--pad-click-depth)) scale(var(--pad-click-scale)); }
|
|
81
|
+
/* A stick CLICK is the one prompt that does move: it CLICKS, on a loop. Every other "do this" prompt
|
|
82
|
+
stays raised, because a sunk button would claim the rider is already holding it — but a raised white
|
|
83
|
+
cap is the one prompt that says nothing at all, being pixel-identical to a hinted round button. The
|
|
84
|
+
gesture itself is along the viewing axis, so the only way to name it is to perform it: the cap sinks
|
|
85
|
+
and shrinks and comes back, exactly the frame a real click lands on, in white instead of the accent.
|
|
86
|
+
The stick twin of a hinted DIRECTION sweeping out and back (see control-trainer's hint sweep). */
|
|
87
|
+
.rydr-pad-part.hint .rydr-pad-stickcap { animation: rydr-pad-click 1.6s ease-in-out infinite; }
|
|
74
88
|
/* Only a real press sinks. A white "do this" prompt must stay RAISED — it is an instruction, and a
|
|
75
|
-
sunk-looking prompt would claim the rider is already holding it.
|
|
89
|
+
sunk-looking prompt would claim the rider is already holding it. (The stick click above is the one
|
|
90
|
+
exception, and it earns it by being a MOTION rather than a resting state.) */
|
|
76
91
|
.rydr-pad-decor .rydr-pad-shape { fill: rgba(255,255,255,0.06); stroke: var(--pad-body-stroke); stroke-width: 1; }
|
|
77
92
|
.rydr-pad-well { fill: rgba(0,0,0,0.30); stroke: var(--pad-body-stroke); stroke-width: 1; }
|
|
78
93
|
|
|
@@ -143,6 +158,15 @@ const CSS = `
|
|
|
143
158
|
0%, 100% { opacity: 0.6; }
|
|
144
159
|
50% { opacity: 1; }
|
|
145
160
|
}
|
|
161
|
+
/* ONE definition of the click gesture, for every surface that has to demonstrate one: the pad's stick
|
|
162
|
+
cap and the chip pictogram's. Neither depth nor scale is written here — each surface declares
|
|
163
|
+
--pad-click-depth / --pad-click-scale beside its own pressed rule, so the loop lands on precisely the
|
|
164
|
+
frame that surface's real press lands on. The cap holds the clicked frame for a beat (45%→70%) rather
|
|
165
|
+
than touching it and leaving: a click that bounces straight back reads as a twitch. */
|
|
166
|
+
@keyframes rydr-pad-click {
|
|
167
|
+
0%, 100% { transform: translateY(0) scale(1); }
|
|
168
|
+
45%, 70% { transform: translateY(var(--pad-click-depth, 0px)) scale(var(--pad-click-scale, 1)); }
|
|
169
|
+
}
|
|
146
170
|
|
|
147
171
|
/* Not present on the rider's current device (opt-in, via the "available" option). */
|
|
148
172
|
.rydr-pad-part.unavailable { opacity: 0.22; }
|
|
@@ -200,33 +224,30 @@ const CSS = `
|
|
|
200
224
|
.rydr-pad-chip.stick > svg { width: 30px; height: 30px; display: block; }
|
|
201
225
|
.rydr-pad-stickpic-well { fill: rgba(0,0,0,0.35); stroke: currentColor; stroke-width: 1.4; opacity: 0.75; }
|
|
202
226
|
.rydr-pad-stickpic-cap { fill: currentColor; opacity: 0.9; transition: transform 120ms ease-out; }
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
227
|
+
/* While the chip runs its own loop (the cap sweeping its circle, or nudging one way and back — see
|
|
228
|
+
animateStick in input-chip.ts) it writes a transform EVERY frame, and a transition on top of that is
|
|
229
|
+
pure lag. The transition stays for the driven case, where writes are occasional. */
|
|
230
|
+
.rydr-pad-chip.stick.anim .rydr-pad-stickpic-cap { transition: none; }
|
|
231
|
+
/* The chip's own CLICK, pressed: the cap SHRINKS IN PLACE, same as the live pad's cap. Pressing a stick
|
|
232
|
+
is motion along the viewing axis and the cap carries no lettering to travel with it, so smaller —
|
|
233
|
+
pushed away from you — is the honest cue; sliding it would say "pushed sideways" instead, which is a
|
|
234
|
+
different gesture. fill-box for the same reason as the pad: without it the scale is about the
|
|
235
|
+
DRAWING's origin, so the cap drifts towards the corner as it shrinks. Scoped to the press pictogram's
|
|
236
|
+
own class so it never fights the transform attribute a DIRECTIONAL chip's cap carries. */
|
|
210
237
|
.rydr-pad-chip.stick .rydr-pad-stickpic-press {
|
|
211
238
|
transform-box: fill-box; transform-origin: center;
|
|
212
239
|
transition: transform 120ms cubic-bezier(0.3, 0, 0.2, 1);
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
.rydr-pad-stickpic-
|
|
220
|
-
/*
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
.rydr-pad-stickpic-base { fill: none; stroke: currentColor; stroke-width: 1.5; opacity: 0.6; }
|
|
225
|
-
.rydr-pad-stickpic-shaft { fill: currentColor; opacity: 0.5; }
|
|
226
|
-
/* the glyph style's heavy outer ring */
|
|
227
|
-
.rydr-pad-stickpic-bigring { fill: none; stroke: currentColor; stroke-width: 2; }
|
|
228
|
-
/* the glyph style is ringless — its solid disc carries the whole mark */
|
|
229
|
-
.rydr-pad-chip.stick.glyph .rydr-pad-stickpic-cap { opacity: 1; }
|
|
240
|
+
/* Same two knobs as the pad's cap, so the pressed rule below and the hinted loop share one frame.
|
|
241
|
+
No depth: the pictogram's well is drawn flat with no shadow under the cap, so a 1-unit drop in a
|
|
242
|
+
24-unit box would read as the cap slipping rather than sinking. Scale carries it alone, a touch
|
|
243
|
+
deeper than the pad's to survive being 30px wide. */
|
|
244
|
+
--pad-click-scale: ${STICK_PRESS_SCALE * 0.85};
|
|
245
|
+
}
|
|
246
|
+
.rydr-pad-chip.stick.pressed .rydr-pad-stickpic-press { transform: scale(var(--pad-click-scale)); }
|
|
247
|
+
/* The chip's "do this": the same click, looping, in the hint's white — the pad's cap one line down is
|
|
248
|
+
doing exactly this at exactly this rate, which is the point. Without it a hinted click chip is a
|
|
249
|
+
static dot and the rider is told nothing about what to do with their thumb. */
|
|
250
|
+
.rydr-pad-chip.stick.rydr-pad-hint .rydr-pad-stickpic-press { animation: rydr-pad-click 1.6s ease-in-out infinite; }
|
|
230
251
|
|
|
231
252
|
/* ── chip lesson states, mirroring the pad's ─────────────────────────────────
|
|
232
253
|
Only the PLAIN chips (shoulder rectangle, stick pictogram, system chip) are styled here. The
|
|
@@ -384,8 +405,17 @@ const CSS = `
|
|
|
384
405
|
.rydr-padtrainer .rydr-pad-chip {
|
|
385
406
|
transition: background 260ms ease, border-color 260ms ease, color 260ms ease, transform 90ms linear;
|
|
386
407
|
}
|
|
387
|
-
/* …except a press, which must still read as instant even mid-lesson
|
|
388
|
-
.
|
|
408
|
+
/* …except a press, which must still read as instant even mid-lesson — the rider's own hand included
|
|
409
|
+
(.done, the green): a hand that takes ~a quarter-second to show up feels like lag, not a hand-off. */
|
|
410
|
+
.rydr-padtrainer .rydr-pad-part.on .rydr-pad-shape,
|
|
411
|
+
.rydr-padtrainer .rydr-pad-part.done .rydr-pad-shape,
|
|
412
|
+
.rydr-padtrainer .rydr-pad-stick.done .rydr-pad-shape {
|
|
413
|
+
transition: fill 70ms linear, stroke 70ms linear, filter 70ms linear;
|
|
414
|
+
}
|
|
415
|
+
.rydr-padtrainer .rydr-pad-part.on .rydr-pad-glyph,
|
|
416
|
+
.rydr-padtrainer .rydr-pad-part.done .rydr-pad-glyph { transition: fill 70ms linear; }
|
|
417
|
+
.rydr-padtrainer .rydr-pad-part.on .rydr-pad-glyph-vec,
|
|
418
|
+
.rydr-padtrainer .rydr-pad-part.done .rydr-pad-glyph-vec { transition: stroke 70ms linear; }
|
|
389
419
|
.rydr-padtrainer .rydr-pad-chip.rydr-pad-active { transition: background 70ms linear, border-color 70ms linear, color 70ms linear; }
|
|
390
420
|
/* The shared drawing spans the whole width, so it reads as one pad serving both panels rather than as a
|
|
391
421
|
third column. Its own size preset still caps it. */
|
|
@@ -463,6 +493,17 @@ const CSS = `
|
|
|
463
493
|
.rydr-padspot .rydr-pad-part .rydr-pad-glyph-vec {
|
|
464
494
|
transition: fill 260ms ease, stroke 260ms ease;
|
|
465
495
|
}
|
|
496
|
+
/* …except the rider's own hand (.done, the green) and a real press, which must read as instant: the glide
|
|
497
|
+
is for one control handing over to the next, not for answering a button someone just pushed. */
|
|
498
|
+
.rydr-padspot .rydr-pad-part.on .rydr-pad-shape,
|
|
499
|
+
.rydr-padspot .rydr-pad-part.done .rydr-pad-shape,
|
|
500
|
+
.rydr-padspot .rydr-pad-stick.done .rydr-pad-shape {
|
|
501
|
+
transition: fill 70ms linear, stroke 70ms linear, filter 70ms linear;
|
|
502
|
+
}
|
|
503
|
+
.rydr-padspot .rydr-pad-part.on .rydr-pad-glyph,
|
|
504
|
+
.rydr-padspot .rydr-pad-part.done .rydr-pad-glyph { transition: fill 70ms linear; }
|
|
505
|
+
.rydr-padspot .rydr-pad-part.on .rydr-pad-glyph-vec,
|
|
506
|
+
.rydr-padspot .rydr-pad-part.done .rydr-pad-glyph-vec { transition: stroke 70ms linear; }
|
|
466
507
|
|
|
467
508
|
/* glow: false — the halo reads as "this is highlighted", the fill alone reads as "this is held down",
|
|
468
509
|
and the second is the only thing a spotlight is saying. */
|
|
@@ -494,6 +535,17 @@ const CSS = `
|
|
|
494
535
|
full opacity rather than leaving it stuck at whatever frame the animation was cancelled on. */
|
|
495
536
|
.rydr-pad-part.hint .rydr-pad-shape,
|
|
496
537
|
.rydr-pad-chip.rydr-pad-hint { animation: none; opacity: 1; }
|
|
538
|
+
/* The hinted CLICK is the one prompt whose animation carries the actual instruction, so it can't just
|
|
539
|
+
be cancelled: park it on the clicked frame. Raised, it would be indistinguishable from a hinted
|
|
540
|
+
round button, which is the whole thing this says. White still separates it from a real press. */
|
|
541
|
+
.rydr-pad-part.hint .rydr-pad-stickcap {
|
|
542
|
+
animation: none;
|
|
543
|
+
transform: translateY(var(--pad-click-depth)) scale(var(--pad-click-scale));
|
|
544
|
+
}
|
|
545
|
+
.rydr-pad-chip.stick.rydr-pad-hint .rydr-pad-stickpic-press {
|
|
546
|
+
animation: none;
|
|
547
|
+
transform: scale(var(--pad-click-scale));
|
|
548
|
+
}
|
|
497
549
|
.rydr-padtrainer-check, .rydr-padtrainer-step { transition: none; animation: none; }
|
|
498
550
|
/* The spotlight forces mode "still" here, so nothing fades in or out — every caption is simply up. */
|
|
499
551
|
.rydr-padspot-tag, .rydr-padspot-caret, .rydr-padspot .rydr-pad-part .rydr-pad-shape { transition: none; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/ui/controller/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,QAAQ,GAAG,cAAc,CAAC;AAChC,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,wFAAwF;AACxF,MAAM,UAAU,YAAY;IAC1B,IAAI,WAAW,IAAI,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,WAAW,GAAG,IAAI,CAAC;QACnB,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC;IACpB,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACjC,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC;AAED,qGAAqG;AACrG,mGAAmG;AACnG,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;2DA0B+C,WAAW
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/ui/controller/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,QAAQ,GAAG,cAAc,CAAC;AAChC,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,wFAAwF;AACxF,MAAM,UAAU,YAAY;IAC1B,IAAI,WAAW,IAAI,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,WAAW,GAAG,IAAI,CAAC;QACnB,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC;IACpB,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACjC,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC;AAED,qGAAqG;AACrG,mGAAmG;AACnG,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;2DA0B+C,WAAW;;;;;;;;;;;;;;;;;uBAiB/C,WAAW;uBACX,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAsKjB,iBAAiB,GAAG,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqT9C,CAAC"}
|
|
@@ -23,7 +23,8 @@ import type { GlyphSet } from "../../protocol/glyphs.js";
|
|
|
23
23
|
*
|
|
24
24
|
* A {@link GlyphSet} plus the shapes that need their own drawing regardless of lettering: a Joy-Con
|
|
25
25
|
* pair is a Nintendo device but is two slim halves rather than one shell, so `"joycon"` is a *drawing*
|
|
26
|
-
* key rather than a glyph family — reachable only by asking for it explicitly
|
|
26
|
+
* key rather than a glyph family — reachable only by asking for it explicitly, or by a HOST that
|
|
27
|
+
* knows more than the lettering telling us through `PadHardwareStore.padBrand`.
|
|
27
28
|
*/
|
|
28
29
|
export type PadBrandKey = GlyphSet | "joycon";
|
|
29
30
|
/** Every drawable, highlightable part of a controller. Positional names only. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ui/controller/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ui/controller/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/ui/controller/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/ui/controller/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAuFH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAA8C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEzF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,aAAa,GACxB,6EAA6E;IAC7E,uEAAuE;IACvE,8EAA8E;IAC9E,+BAA+B,CAAC;AAElC,sFAAsF;AACtF,MAAM,UAAU,UAAU,CAAC,CAAW;IACpC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,QAAQ;YACX,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;QAC9B,KAAK,MAAM;YACT,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAChD,KAAK,MAAM;YACT,8FAA8F;YAC9F,uFAAuF;YACvF,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAC1B,CAAC;AACH,CAAC"}
|