@typeonce/ritmo-browser 0.10.0 → 0.12.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/CHANGELOG.md +106 -0
- package/README.md +6 -1
- package/dist/Controls.d.ts +496 -0
- package/dist/Controls.d.ts.map +1 -0
- package/dist/Controls.js +343 -0
- package/dist/Controls.js.map +1 -0
- package/dist/Gamepad.d.ts +376 -0
- package/dist/Gamepad.d.ts.map +1 -0
- package/dist/Gamepad.js +459 -0
- package/dist/Gamepad.js.map +1 -0
- package/dist/InputCapture.d.ts +46 -16
- package/dist/InputCapture.d.ts.map +1 -1
- package/dist/InputCapture.js +1 -1
- package/dist/InputCapture.js.map +1 -1
- package/dist/Keyboard.d.ts +177 -25
- package/dist/Keyboard.d.ts.map +1 -1
- package/dist/Keyboard.js +257 -91
- package/dist/Keyboard.js.map +1 -1
- package/dist/Pointer.d.ts +233 -64
- package/dist/Pointer.d.ts.map +1 -1
- package/dist/Pointer.js +205 -145
- package/dist/Pointer.js.map +1 -1
- package/dist/Touch.d.ts +75 -33
- package/dist/Touch.d.ts.map +1 -1
- package/dist/Touch.js +25 -30
- package/dist/Touch.js.map +1 -1
- package/dist/index.d.ts +10 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/buttons.d.ts +52 -0
- package/dist/internal/buttons.d.ts.map +1 -0
- package/dist/internal/buttons.js +211 -0
- package/dist/internal/buttons.js.map +1 -0
- package/dist/internal/introspect.d.ts +14 -0
- package/dist/internal/introspect.d.ts.map +1 -0
- package/dist/internal/introspect.js +19 -0
- package/dist/internal/introspect.js.map +1 -0
- package/dist/internal/state.d.ts +13 -0
- package/dist/internal/state.d.ts.map +1 -0
- package/dist/internal/state.js +2 -0
- package/dist/internal/state.js.map +1 -0
- package/dist/internal/used.d.ts +8 -0
- package/dist/internal/used.d.ts.map +1 -0
- package/dist/internal/used.js +14 -0
- package/dist/internal/used.js.map +1 -0
- package/dist/internal/vectors.d.ts +29 -0
- package/dist/internal/vectors.d.ts.map +1 -0
- package/dist/internal/vectors.js +22 -0
- package/dist/internal/vectors.js.map +1 -0
- package/package.json +4 -3
- package/src/Controls.ts +800 -0
- package/src/Gamepad.ts +752 -0
- package/src/InputCapture.ts +43 -24
- package/src/Keyboard.ts +387 -72
- package/src/Pointer.ts +392 -166
- package/src/Touch.ts +113 -61
- package/src/index.ts +10 -1
- package/src/internal/buttons.ts +222 -0
- package/src/internal/introspect.ts +23 -0
- package/src/internal/state.ts +12 -0
- package/src/internal/used.ts +14 -0
- package/src/internal/vectors.ts +41 -0
package/dist/Touch.d.ts
CHANGED
|
@@ -28,8 +28,9 @@
|
|
|
28
28
|
*
|
|
29
29
|
* @example
|
|
30
30
|
* ```ts
|
|
31
|
-
* const touch = Touch.
|
|
32
|
-
*
|
|
31
|
+
* const touch = Touch.actions(canvas, window, ({ width, height }) => ({
|
|
32
|
+
* // `vector` names the action the stick drives, so it merges into `Controls`.
|
|
33
|
+
* stick: { region: { left: 0, top: 0, width: width / 2, height }, radius: 60, vector: "move" },
|
|
33
34
|
* buttons: {
|
|
34
35
|
* attack: { center: { x: width - 90, y: height - 90 }, radius: 55, aimRadius: 80 },
|
|
35
36
|
* dash: { center: { x: width - 200, y: height - 60 }, radius: 36 }
|
|
@@ -37,39 +38,41 @@
|
|
|
37
38
|
* }))
|
|
38
39
|
*
|
|
39
40
|
* // Once per update:
|
|
40
|
-
* const {
|
|
41
|
-
* move(
|
|
42
|
-
* if (
|
|
41
|
+
* const { vectors, actions } = touch.snapshot()
|
|
42
|
+
* move(vectors.move)
|
|
43
|
+
* if (actions.attack.released && !actions.attack.cancelled) fire(actions.attack.aim)
|
|
43
44
|
* ```
|
|
44
45
|
*
|
|
45
46
|
* For tests and headless runs, `scripted(...)` plays a timeline of stick
|
|
46
47
|
* vectors, presses, drags, and releases.
|
|
47
48
|
*/
|
|
48
|
-
import type
|
|
49
|
+
import type * as System from "@typeonce/ritmo/System";
|
|
50
|
+
import type { ActionState } from "./internal/state.ts";
|
|
51
|
+
import type { Vector } from "./internal/vectors.ts";
|
|
49
52
|
/** A position in CSS pixels relative to the element's top-left corner. */
|
|
50
53
|
export interface Position {
|
|
51
54
|
readonly x: number;
|
|
52
55
|
readonly y: number;
|
|
53
56
|
}
|
|
54
|
-
/** A
|
|
55
|
-
export interface Vector {
|
|
56
|
-
readonly x: number;
|
|
57
|
-
readonly y: number;
|
|
58
|
-
}
|
|
57
|
+
/** A rectangle in CSS pixels relative to the element's top-left corner. */
|
|
59
58
|
export interface Rect {
|
|
60
59
|
readonly left: number;
|
|
61
60
|
readonly top: number;
|
|
62
61
|
readonly width: number;
|
|
63
62
|
readonly height: number;
|
|
64
63
|
}
|
|
65
|
-
|
|
64
|
+
/** The floating stick of a {@link Layout}. */
|
|
65
|
+
export interface StickZone<V extends string = never> {
|
|
66
66
|
/** Where a touch starts the stick. The stick is centered where the thumb lands. */
|
|
67
67
|
readonly region: Rect;
|
|
68
68
|
/** Drag distance in CSS pixels for full tilt. */
|
|
69
69
|
readonly radius: number;
|
|
70
70
|
/** Fraction of `radius` that reads as zero. Defaults to 0.15. */
|
|
71
71
|
readonly deadZone?: number;
|
|
72
|
+
/** The vector action the stick drives (`"move"`), reported in the snapshot's `vectors`. */
|
|
73
|
+
readonly vector?: V;
|
|
72
74
|
}
|
|
75
|
+
/** A round on-screen button of a {@link Layout}; it reports the action named like its key. */
|
|
73
76
|
export interface ButtonZone {
|
|
74
77
|
readonly center: Position;
|
|
75
78
|
/** Touch radius in CSS pixels. */
|
|
@@ -79,12 +82,17 @@ export interface ButtonZone {
|
|
|
79
82
|
/** Fraction of `aimRadius` that counts as a tap (no aim). Defaults to 0.2. */
|
|
80
83
|
readonly aimDeadZone?: number;
|
|
81
84
|
}
|
|
85
|
+
/** The swipe area of a {@link Layout}. */
|
|
82
86
|
export interface SwipeZone {
|
|
83
87
|
/** Where a touch that is not on a button or the stick starts a swipe. */
|
|
84
88
|
readonly region: Rect;
|
|
85
89
|
}
|
|
86
|
-
|
|
87
|
-
|
|
90
|
+
/**
|
|
91
|
+
* The touch controls, returned by the layout function {@link actions} calls
|
|
92
|
+
* with the element's size. The button names are fixed by the first layout.
|
|
93
|
+
*/
|
|
94
|
+
export interface Layout<B extends string, V extends string = never> {
|
|
95
|
+
readonly stick: StickZone<V>;
|
|
88
96
|
readonly buttons: {
|
|
89
97
|
readonly [K in B]: ButtonZone;
|
|
90
98
|
};
|
|
@@ -96,12 +104,14 @@ export interface Size {
|
|
|
96
104
|
readonly width: number;
|
|
97
105
|
readonly height: number;
|
|
98
106
|
}
|
|
107
|
+
/** The stick's state in a snapshot. */
|
|
99
108
|
export interface Stick {
|
|
100
109
|
/** Whether a thumb is on the stick. */
|
|
101
110
|
readonly active: boolean;
|
|
102
111
|
/** Tilt with the dead zone removed: zero at rest, length 1 at full tilt. */
|
|
103
112
|
readonly vector: Vector;
|
|
104
113
|
}
|
|
114
|
+
/** One button's state: its action's edges, plus the drag aim and whether the release was cancelled. */
|
|
105
115
|
export interface ButtonState extends ActionState {
|
|
106
116
|
/**
|
|
107
117
|
* The drag from the button's center as a fraction of `aimRadius` (length at
|
|
@@ -112,24 +122,38 @@ export interface ButtonState extends ActionState {
|
|
|
112
122
|
/** The release came from a cancelled touch, not a finger lifting. */
|
|
113
123
|
readonly cancelled: boolean;
|
|
114
124
|
}
|
|
125
|
+
/** The swipe area's state in a snapshot. */
|
|
115
126
|
export interface Swipe {
|
|
116
127
|
/** Whether a finger is on the swipe area. */
|
|
117
128
|
readonly active: boolean;
|
|
118
129
|
/** How far the finger moved since the previous snapshot, in CSS pixels. */
|
|
119
130
|
readonly delta: Vector;
|
|
120
131
|
}
|
|
121
|
-
|
|
132
|
+
/**
|
|
133
|
+
* The controls' state. Each button is an action named like it, and the
|
|
134
|
+
* stick drives the vector action its layout names, so the snapshot has the
|
|
135
|
+
* same core as the other devices' (`actions`, `vectors`, and `used`) and
|
|
136
|
+
* `Controls` can merge it.
|
|
137
|
+
*/
|
|
138
|
+
export interface Snapshot<B extends string, V extends string = never> {
|
|
122
139
|
readonly stick: Stick;
|
|
123
|
-
readonly
|
|
140
|
+
readonly actions: {
|
|
124
141
|
readonly [K in B]: ButtonState;
|
|
125
142
|
};
|
|
143
|
+
/** The vector action the stick drives, when the layout names one: the stick's vector. */
|
|
144
|
+
readonly vectors: {
|
|
145
|
+
readonly [K in V]: Vector;
|
|
146
|
+
};
|
|
126
147
|
readonly swipe: Swipe;
|
|
127
|
-
/**
|
|
128
|
-
|
|
148
|
+
/**
|
|
149
|
+
* A button was pressed in this window or is held, or a finger is on the
|
|
150
|
+
* stick or the swipe area: the player is using the touch controls.
|
|
151
|
+
*/
|
|
152
|
+
readonly used: boolean;
|
|
129
153
|
}
|
|
130
154
|
/** Live control positions for drawing, in CSS pixels. Reading it consumes nothing. */
|
|
131
|
-
export interface View<B extends string> {
|
|
132
|
-
readonly layout: Layout<B>;
|
|
155
|
+
export interface View<B extends string, V extends string = never> {
|
|
156
|
+
readonly layout: Layout<B, V>;
|
|
133
157
|
/** Where the stick was centered and where the thumb is, while it is held. */
|
|
134
158
|
readonly stick: {
|
|
135
159
|
readonly origin: Position;
|
|
@@ -142,11 +166,17 @@ export interface View<B extends string> {
|
|
|
142
166
|
};
|
|
143
167
|
};
|
|
144
168
|
}
|
|
145
|
-
|
|
169
|
+
/**
|
|
170
|
+
* Touch controls, built with {@link actions} (live) or {@link scripted}.
|
|
171
|
+
* Capture them with `InputCapture.system(...)`, or merge them with
|
|
172
|
+
* `Controls` (through `lacking(...)` for actions with no on-screen
|
|
173
|
+
* control). There is no `rebind`: the layout is the binding.
|
|
174
|
+
*/
|
|
175
|
+
export interface Actions<B extends string, V extends string = never> extends System.Consumes<"snapshot"> {
|
|
146
176
|
/** Returns the controls' state and starts a new press/release window. */
|
|
147
|
-
snapshot(): Snapshot<B>;
|
|
177
|
+
snapshot(): Snapshot<B, V>;
|
|
148
178
|
/** The live state for drawing. */
|
|
149
|
-
view(): View<B>;
|
|
179
|
+
view(): View<B, V>;
|
|
150
180
|
/** Removes the event listeners and restores the element's `touch-action`. */
|
|
151
181
|
dispose(): void;
|
|
152
182
|
}
|
|
@@ -178,19 +208,31 @@ export interface BlurHost {
|
|
|
178
208
|
addEventListener(type: "blur", listener: () => void): void;
|
|
179
209
|
removeEventListener(type: "blur", listener: () => void): void;
|
|
180
210
|
}
|
|
181
|
-
|
|
211
|
+
/** Options for {@link actions}. */
|
|
212
|
+
export interface ActionsOptions {
|
|
182
213
|
/** `PointerEvent.pointerType`s that drive the controls. Defaults to `["touch"]`. */
|
|
183
214
|
readonly pointerTypes?: ReadonlyArray<string>;
|
|
184
215
|
}
|
|
185
|
-
/**
|
|
186
|
-
export
|
|
216
|
+
/** The names a layout's controls report, for {@link idle} and {@link scripted}. */
|
|
217
|
+
export interface Names<B extends string, V extends string = never> {
|
|
218
|
+
readonly buttons: ReadonlyArray<B>;
|
|
219
|
+
/** The vector action the stick drives, as the layout's `stick.vector`. */
|
|
220
|
+
readonly vector?: V;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* A snapshot with nothing held, for initializing an input resource before
|
|
224
|
+
* the first capture: pass the layout's button names and stick vector, as
|
|
225
|
+
* `Touch.idle({ buttons: ["attack", "dash"], vector: "move" })`.
|
|
226
|
+
*/
|
|
227
|
+
export declare const idle: <const B extends string, const V extends string = never>(names: Names<B, V>) => Snapshot<B, V>;
|
|
187
228
|
/**
|
|
188
229
|
* Starts tracking touches over `target` with the controls `layout` returns
|
|
189
230
|
* for the element's current size (it is read again on every new touch, so a
|
|
190
231
|
* resize takes effect at the next touch). `blurHost` (usually `window`)
|
|
191
|
-
* cancels held controls when the page loses focus.
|
|
232
|
+
* cancels held controls when the page loses focus. Use `Pointer.actions`
|
|
233
|
+
* for mouse and pen input.
|
|
192
234
|
*/
|
|
193
|
-
export declare const
|
|
235
|
+
export declare const actions: <const B extends string, const V extends string = never>(target: TouchTarget, blurHost: BlurHost, layout: (size: Size) => Layout<B, V>, options?: ActionsOptions) => Actions<B, V>;
|
|
194
236
|
/**
|
|
195
237
|
* Control changes applied just before one snapshot, in this order: the stick
|
|
196
238
|
* and swipe, presses, aims, releases. `frame` is the snapshot's index, counting from 0 at
|
|
@@ -215,14 +257,14 @@ export interface TimelineEntry<B extends string> {
|
|
|
215
257
|
/** Control changes by snapshot index. Plain data, so it round-trips through JSON. */
|
|
216
258
|
export type Timeline<B extends string> = ReadonlyArray<TimelineEntry<B>>;
|
|
217
259
|
/** Touch controls driven by a timeline instead of an element. */
|
|
218
|
-
export interface Scripted<B extends string> extends
|
|
260
|
+
export interface Scripted<B extends string, V extends string = never> extends Actions<B, V> {
|
|
219
261
|
/** Number of snapshots taken so far, which is the next frame index. */
|
|
220
262
|
readonly frames: () => number;
|
|
221
263
|
}
|
|
222
264
|
/**
|
|
223
|
-
* Plays `timeline` over controls
|
|
224
|
-
*
|
|
225
|
-
*
|
|
265
|
+
* Plays `timeline` over controls with `names` (the buttons, and the vector
|
|
266
|
+
* action the stick drives): before the snapshot at index `frame`, every
|
|
267
|
+
* entry for that frame is applied. Vectors longer than 1 are clamped.
|
|
226
268
|
*/
|
|
227
|
-
export declare const scripted: <const B extends string>(
|
|
269
|
+
export declare const scripted: <const B extends string, const V extends string = never>(names: Names<B, V>, timeline: Timeline<NoInfer<B>>) => Scripted<B, V>;
|
|
228
270
|
//# sourceMappingURL=Touch.d.ts.map
|
package/dist/Touch.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Touch.d.ts","sourceRoot":"","sources":["../src/Touch.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Touch.d.ts","sourceRoot":"","sources":["../src/Touch.ts"],"names":[],"mappings":"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"}
|
package/dist/Touch.js
CHANGED
|
@@ -1,12 +1,19 @@
|
|
|
1
|
+
import { anyUsed } from "./internal/used.js";
|
|
2
|
+
const snapshotOf = (vector, stick, actions, swipe) => ({
|
|
3
|
+
stick,
|
|
4
|
+
actions,
|
|
5
|
+
vectors: (vector === undefined ? {} : { [vector]: stick.vector }),
|
|
6
|
+
swipe,
|
|
7
|
+
used: stick.active || swipe.active || anyUsed(actions)
|
|
8
|
+
});
|
|
1
9
|
const zero = { x: 0, y: 0 };
|
|
2
10
|
const released = () => ({ held: false, pressed: false, released: false, aim: null, cancelled: false });
|
|
3
|
-
/**
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
});
|
|
11
|
+
/**
|
|
12
|
+
* A snapshot with nothing held, for initializing an input resource before
|
|
13
|
+
* the first capture: pass the layout's button names and stick vector, as
|
|
14
|
+
* `Touch.idle({ buttons: ["attack", "dash"], vector: "move" })`.
|
|
15
|
+
*/
|
|
16
|
+
export const idle = (names) => snapshotOf(names.vector, { active: false, vector: zero }, Object.fromEntries(names.buttons.map((button) => [button, released()])), { active: false, delta: zero });
|
|
10
17
|
/** `offset / radius`, clamped to length 1, with the inner `deadZone` fraction mapped to zero. */
|
|
11
18
|
const tilt = (offset, radius, deadZone) => {
|
|
12
19
|
const length = Math.sqrt(offset.x * offset.x + offset.y * offset.y);
|
|
@@ -59,9 +66,10 @@ const lift = (track, cancelled) => {
|
|
|
59
66
|
* Starts tracking touches over `target` with the controls `layout` returns
|
|
60
67
|
* for the element's current size (it is read again on every new touch, so a
|
|
61
68
|
* resize takes effect at the next touch). `blurHost` (usually `window`)
|
|
62
|
-
* cancels held controls when the page loses focus.
|
|
69
|
+
* cancels held controls when the page loses focus. Use `Pointer.actions`
|
|
70
|
+
* for mouse and pen input.
|
|
63
71
|
*/
|
|
64
|
-
export const
|
|
72
|
+
export const actions = (target, blurHost, layout, options = {}) => {
|
|
65
73
|
const pointerTypes = options.pointerTypes ?? ["touch"];
|
|
66
74
|
const sizeOf = () => {
|
|
67
75
|
const rect = target.getBoundingClientRect();
|
|
@@ -70,7 +78,6 @@ export const track = (target, blurHost, layout, options = {}) => {
|
|
|
70
78
|
let current = layout(sizeOf());
|
|
71
79
|
const names = Object.keys(current.buttons);
|
|
72
80
|
const buttons = makeButtonTracks(names);
|
|
73
|
-
let touched = false;
|
|
74
81
|
let stick;
|
|
75
82
|
/** Which button each finger holds. */
|
|
76
83
|
const fingers = new Map();
|
|
@@ -89,7 +96,6 @@ export const track = (target, blurHost, layout, options = {}) => {
|
|
|
89
96
|
// A pointer id that comes down again without an up in between (the up
|
|
90
97
|
// was lost) releases what it held first, as a cancel.
|
|
91
98
|
end(event, true);
|
|
92
|
-
touched = true;
|
|
93
99
|
current = layout(sizeOf());
|
|
94
100
|
const at = locate(event);
|
|
95
101
|
for (const name of names) {
|
|
@@ -176,12 +182,7 @@ export const track = (target, blurHost, layout, options = {}) => {
|
|
|
176
182
|
};
|
|
177
183
|
return {
|
|
178
184
|
snapshot() {
|
|
179
|
-
const snapshot = {
|
|
180
|
-
stick: stickState(),
|
|
181
|
-
buttons: Object.fromEntries(names.map((name) => [name, buttonSnapshot(buttons.get(name))])),
|
|
182
|
-
swipe: { active: swipe !== undefined, delta: swiped },
|
|
183
|
-
touched
|
|
184
|
-
};
|
|
185
|
+
const snapshot = snapshotOf(current.stick.vector, stickState(), Object.fromEntries(names.map((name) => [name, buttonSnapshot(buttons.get(name))])), { active: swipe !== undefined, delta: swiped });
|
|
185
186
|
for (const button of buttons.values())
|
|
186
187
|
startWindow(button);
|
|
187
188
|
swiped = zero;
|
|
@@ -217,11 +218,12 @@ export const track = (target, blurHost, layout, options = {}) => {
|
|
|
217
218
|
};
|
|
218
219
|
};
|
|
219
220
|
/**
|
|
220
|
-
* Plays `timeline` over controls
|
|
221
|
-
*
|
|
222
|
-
*
|
|
221
|
+
* Plays `timeline` over controls with `names` (the buttons, and the vector
|
|
222
|
+
* action the stick drives): before the snapshot at index `frame`, every
|
|
223
|
+
* entry for that frame is applied. Vectors longer than 1 are clamped.
|
|
223
224
|
*/
|
|
224
|
-
export const scripted = (
|
|
225
|
+
export const scripted = (names, timeline) => {
|
|
226
|
+
const buttons = names.buttons;
|
|
225
227
|
const byFrame = new Map();
|
|
226
228
|
for (const entry of timeline) {
|
|
227
229
|
const entries = byFrame.get(entry.frame);
|
|
@@ -236,10 +238,9 @@ export const scripted = (buttons, timeline) => {
|
|
|
236
238
|
};
|
|
237
239
|
const tracks = makeButtonTracks(buttons);
|
|
238
240
|
let stick = null;
|
|
239
|
-
let touched = false;
|
|
240
241
|
let frame = 0;
|
|
241
242
|
const layout = {
|
|
242
|
-
stick: { region: { left: 0, top: 0, width: 0, height: 0 }, radius: 1 },
|
|
243
|
+
stick: { region: { left: 0, top: 0, width: 0, height: 0 }, radius: 1, ...(names.vector === undefined ? {} : { vector: names.vector }) },
|
|
243
244
|
buttons: Object.fromEntries(buttons.map((button) => [button, { center: zero, radius: 0 }]))
|
|
244
245
|
};
|
|
245
246
|
return {
|
|
@@ -248,7 +249,6 @@ export const scripted = (buttons, timeline) => {
|
|
|
248
249
|
startWindow(track);
|
|
249
250
|
const swipe = { active: false, x: 0, y: 0 };
|
|
250
251
|
for (const entry of byFrame.get(frame) ?? []) {
|
|
251
|
-
touched = true;
|
|
252
252
|
if (entry.swipe !== undefined) {
|
|
253
253
|
swipe.active = true;
|
|
254
254
|
swipe.x += entry.swipe.x;
|
|
@@ -269,12 +269,7 @@ export const scripted = (buttons, timeline) => {
|
|
|
269
269
|
lift(tracks.get(name), true);
|
|
270
270
|
}
|
|
271
271
|
frame += 1;
|
|
272
|
-
return {
|
|
273
|
-
stick: { active: stick !== null, vector: stick ?? zero },
|
|
274
|
-
buttons: Object.fromEntries(buttons.map((name) => [name, buttonSnapshot(tracks.get(name))])),
|
|
275
|
-
swipe: { active: swipe.active, delta: { x: swipe.x, y: swipe.y } },
|
|
276
|
-
touched
|
|
277
|
-
};
|
|
272
|
+
return snapshotOf(names.vector, { active: stick !== null, vector: stick ?? zero }, Object.fromEntries(buttons.map((name) => [name, buttonSnapshot(tracks.get(name))])), { active: swipe.active, delta: { x: swipe.x, y: swipe.y } });
|
|
278
273
|
},
|
|
279
274
|
view() {
|
|
280
275
|
return {
|
package/dist/Touch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Touch.js","sourceRoot":"","sources":["../src/Touch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Touch.js","sourceRoot":"","sources":["../src/Touch.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,18 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Browser host integrations kept outside the renderer-agnostic ECS core:
|
|
3
|
+
* animation-frame timing (`BrowserTickSource`, `BrowserHostClock`), input
|
|
4
|
+
* devices bound to actions (`Keyboard`, `Gamepad`, `Pointer`, `Touch`),
|
|
5
|
+
* merging and local multiplayer (`Controls`), and the system that copies
|
|
6
|
+
* input into a resource (`InputCapture`).
|
|
7
|
+
*/
|
|
2
8
|
export * as BrowserHostClock from "./BrowserHostClock.ts";
|
|
3
9
|
export * as BrowserTickSource from "./BrowserTickSource.ts";
|
|
10
|
+
export * as Controls from "./Controls.ts";
|
|
11
|
+
export * as Gamepad from "./Gamepad.ts";
|
|
4
12
|
export * as InputCapture from "./InputCapture.ts";
|
|
5
13
|
export * as Keyboard from "./Keyboard.ts";
|
|
6
14
|
export * as Pointer from "./Pointer.ts";
|
|
7
15
|
export * as Touch from "./Touch.ts";
|
|
16
|
+
/** The package's tag, `"browser"`. */
|
|
8
17
|
export declare const packageTag: "browser";
|
|
9
18
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC,sCAAsC;AACtC,eAAO,MAAM,UAAU,EAAG,SAAkB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,18 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Browser host integrations kept outside the renderer-agnostic ECS core:
|
|
3
|
+
* animation-frame timing (`BrowserTickSource`, `BrowserHostClock`), input
|
|
4
|
+
* devices bound to actions (`Keyboard`, `Gamepad`, `Pointer`, `Touch`),
|
|
5
|
+
* merging and local multiplayer (`Controls`), and the system that copies
|
|
6
|
+
* input into a resource (`InputCapture`).
|
|
7
|
+
*/
|
|
2
8
|
export * as BrowserHostClock from "./BrowserHostClock.js";
|
|
3
9
|
export * as BrowserTickSource from "./BrowserTickSource.js";
|
|
10
|
+
export * as Controls from "./Controls.js";
|
|
11
|
+
export * as Gamepad from "./Gamepad.js";
|
|
4
12
|
export * as InputCapture from "./InputCapture.js";
|
|
5
13
|
export * as Keyboard from "./Keyboard.js";
|
|
6
14
|
export * as Pointer from "./Pointer.js";
|
|
7
15
|
export * as Touch from "./Touch.js";
|
|
16
|
+
/** The package's tag, `"browser"`. */
|
|
8
17
|
export const packageTag = "browser";
|
|
9
18
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC,sCAAsC;AACtC,MAAM,CAAC,MAAM,UAAU,GAAG,SAAkB,CAAA"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import * as Result from "@typeonce/ritmo/Result";
|
|
2
|
+
import type { ActionState } from "./state.ts";
|
|
3
|
+
import type { Direction, Vector } from "./vectors.ts";
|
|
4
|
+
/** Action name to the buttons that trigger it, for a device with named buttons. */
|
|
5
|
+
type ButtonBindings<Button extends string> = Readonly<Record<string, readonly [Button, ...Array<Button>]>>;
|
|
6
|
+
/**
|
|
7
|
+
* The held buttons, the bound actions, and the edges since the previous
|
|
8
|
+
* take, shared by devices with named buttons (`Gamepad`, `Pointer`) and by
|
|
9
|
+
* their live and scripted forms, so all of them build snapshots the same way.
|
|
10
|
+
*/
|
|
11
|
+
export declare const buttonTracker: <Button extends string, B extends ButtonBindings<Button>>(buttonNames: ReadonlyArray<Button>, initial: B) => {
|
|
12
|
+
held: Set<Button>;
|
|
13
|
+
down(button: Button): void;
|
|
14
|
+
up: (button: Button) => void;
|
|
15
|
+
upAll(): void;
|
|
16
|
+
rebind(next: Readonly<Record<keyof B, ReadonlyArray<Button>>>): void;
|
|
17
|
+
/** The buttons and actions since the previous take; starts a new press/release window. */
|
|
18
|
+
take(): {
|
|
19
|
+
readonly actions: Record<keyof B, ActionState>;
|
|
20
|
+
readonly buttons: Record<Button, ActionState>;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
/** Every button idle, by name. */
|
|
24
|
+
export declare const idleButtons: <Button extends string>(buttonNames: ReadonlyArray<Button>) => Record<Button, ActionState>;
|
|
25
|
+
/** Every button action of `bindings` idle (vector actions are in {@link idleVectors}). */
|
|
26
|
+
export declare const idleActions: <B extends object>(bindings: B) => Record<keyof B, ActionState>;
|
|
27
|
+
/** Every vector action of `bindings` at rest. */
|
|
28
|
+
export declare const idleVectors: (bindings: object) => Record<string, Vector>;
|
|
29
|
+
/**
|
|
30
|
+
* Each action's buttons for the button tracker, with the digital part of
|
|
31
|
+
* every vector action split into its four directions (`move.up`, ...).
|
|
32
|
+
*/
|
|
33
|
+
export declare const flattenButtons: <Button extends string>(bindings: object) => Record<string, readonly [Button, ...Array<Button>]>;
|
|
34
|
+
/** Splits taken flat actions into the button actions of `bindings`, and whether each vector direction is held. */
|
|
35
|
+
export declare const splitActions: (bindings: object, taken: Readonly<Record<string, ActionState>>) => {
|
|
36
|
+
readonly actions: Record<string, ActionState>;
|
|
37
|
+
readonly held: (vector: string, direction: Direction) => boolean;
|
|
38
|
+
};
|
|
39
|
+
/** Why loaded data is not a rebinding; the devices export it under their own name. */
|
|
40
|
+
export interface InvalidRebinding {
|
|
41
|
+
readonly _tag: "InvalidRebinding";
|
|
42
|
+
readonly path: string;
|
|
43
|
+
readonly message: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Validates `data` as new buttons for exactly the actions of `bindings`:
|
|
47
|
+
* an object with the same action names, each a non-empty array of button
|
|
48
|
+
* names.
|
|
49
|
+
*/
|
|
50
|
+
export declare const parseButtonRebinding: <Button extends string>(buttonNames: ReadonlyArray<Button>, bindings: object, data: unknown, sticks?: ReadonlyArray<string>) => Result.Result<Readonly<Record<string, unknown>>, InvalidRebinding>;
|
|
51
|
+
export {};
|
|
52
|
+
//# sourceMappingURL=buttons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buttons.d.ts","sourceRoot":"","sources":["../../src/internal/buttons.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAA;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAIrD,mFAAmF;AACnF,KAAK,cAAc,CAAC,MAAM,SAAS,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAE1G;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,CAAC,MAAM,CAAC,eACtE,aAAa,CAAC,MAAM,CAAC,WACzB,CAAC;;iBAoCK,MAAM;iBARD,MAAM,KAAG,IAAI;;iBAoBlB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IAW7D,0FAA0F;YAClF;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;KAAE;CAoB5G,CAAA;AAED,kCAAkC;AAClC,eAAO,MAAM,WAAW,GAAI,MAAM,SAAS,MAAM,eAAe,aAAa,CAAC,MAAM,CAAC,KAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAIjH,CAAA;AAED,0FAA0F;AAC1F,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,YAAY,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,CAItF,CAAA;AAED,iDAAiD;AACjD,eAAO,MAAM,WAAW,aAAc,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAInE,CAAA;AAWD;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,SAAS,MAAM,YAAY,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAa1H,CAAA;AAED,kHAAkH;AAClH,eAAO,MAAM,YAAY,aACb,MAAM,SACT,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,KAC3C;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,KAAK,OAAO,CAAA;CAInH,CAAA;AAED,sFAAsF;AACtF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,MAAM,SAAS,MAAM,eAC3C,aAAa,CAAC,MAAM,CAAC,YACxB,MAAM,QACV,OAAO,WACL,aAAa,CAAC,MAAM,CAAC,KAC5B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,gBAAgB,CA6CnE,CAAA"}
|