1681-engine 0.5.10 → 0.6.1

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.
Files changed (98) hide show
  1. package/CHANGELOG.md +61 -1
  2. package/README.md +12 -6
  3. package/dist/1681-engine.js +588 -522
  4. package/dist/ai/behaviorTree.js +198 -0
  5. package/dist/ai/buildTree.js +54 -0
  6. package/dist/audio/spatial.js +118 -0
  7. package/dist/cjs/electron/webPatcher.d.ts +4 -1
  8. package/dist/cjs/electron/webPatcher.js +9 -2
  9. package/dist/core/Camera.js +10 -0
  10. package/dist/core/ObjectFactory.js +23 -21
  11. package/dist/core/PixelGrid.js +47 -0
  12. package/dist/core/SharpText.js +72 -0
  13. package/dist/core/Stage.js +48 -31
  14. package/dist/core/gridPlacement.js +14 -0
  15. package/dist/dialogue/DialogueRunner.js +173 -0
  16. package/dist/dialogue/expr.js +137 -0
  17. package/dist/dialogue/validateDialogue.js +52 -0
  18. package/dist/ecs/prefab.js +94 -0
  19. package/dist/electron/webPatcher.js +16 -10
  20. package/dist/input/Actions.js +58 -27
  21. package/dist/input/InputCapture.js +98 -0
  22. package/dist/input/Keymap.js +32 -26
  23. package/dist/input/inputTape.js +68 -0
  24. package/dist/mobile/backButton.js +40 -0
  25. package/dist/mobile/capacitor.js +48 -0
  26. package/dist/mobile/screen.js +31 -0
  27. package/dist/mobile.js +12 -0
  28. package/dist/nav/flowField.js +58 -0
  29. package/dist/nav/steering.js +77 -0
  30. package/dist/net/InterpolationBuffer.js +30 -23
  31. package/dist/net/LagCompensator.js +100 -0
  32. package/dist/net/Room.js +122 -43
  33. package/dist/net/RoomHost.js +13 -4
  34. package/dist/net/SpatialHash.js +66 -0
  35. package/dist/types/ai/behaviorTree.d.ts +133 -0
  36. package/dist/types/ai/behaviorTree.d.ts.map +1 -0
  37. package/dist/types/ai/buildTree.d.ts +55 -0
  38. package/dist/types/ai/buildTree.d.ts.map +1 -0
  39. package/dist/types/audio/spatial.d.ts +107 -0
  40. package/dist/types/audio/spatial.d.ts.map +1 -0
  41. package/dist/types/core/Camera.d.ts +8 -0
  42. package/dist/types/core/Camera.d.ts.map +1 -1
  43. package/dist/types/core/ObjectFactory.d.ts.map +1 -1
  44. package/dist/types/core/PixelGrid.d.ts +30 -0
  45. package/dist/types/core/PixelGrid.d.ts.map +1 -0
  46. package/dist/types/core/SharpText.d.ts +32 -0
  47. package/dist/types/core/SharpText.d.ts.map +1 -0
  48. package/dist/types/core/Stage.d.ts +14 -0
  49. package/dist/types/core/Stage.d.ts.map +1 -1
  50. package/dist/types/core/gridPlacement.d.ts +20 -0
  51. package/dist/types/core/gridPlacement.d.ts.map +1 -0
  52. package/dist/types/dialogue/DialogueRunner.d.ts +78 -0
  53. package/dist/types/dialogue/DialogueRunner.d.ts.map +1 -0
  54. package/dist/types/dialogue/expr.d.ts +12 -0
  55. package/dist/types/dialogue/expr.d.ts.map +1 -0
  56. package/dist/types/dialogue/script.d.ts +78 -0
  57. package/dist/types/dialogue/script.d.ts.map +1 -0
  58. package/dist/types/dialogue/validateDialogue.d.ts +21 -0
  59. package/dist/types/dialogue/validateDialogue.d.ts.map +1 -0
  60. package/dist/types/ecs/prefab.d.ts +84 -0
  61. package/dist/types/ecs/prefab.d.ts.map +1 -0
  62. package/dist/types/electron/webPatcher.d.ts +4 -1
  63. package/dist/types/electron/webPatcher.d.ts.map +1 -1
  64. package/dist/types/index.d.ts +18 -1
  65. package/dist/types/index.d.ts.map +1 -1
  66. package/dist/types/input/Actions.d.ts +14 -0
  67. package/dist/types/input/Actions.d.ts.map +1 -1
  68. package/dist/types/input/InputCapture.d.ts +53 -0
  69. package/dist/types/input/InputCapture.d.ts.map +1 -0
  70. package/dist/types/input/Keymap.d.ts +12 -6
  71. package/dist/types/input/Keymap.d.ts.map +1 -1
  72. package/dist/types/input/inputTape.d.ts +66 -0
  73. package/dist/types/input/inputTape.d.ts.map +1 -0
  74. package/dist/types/mobile/backButton.d.ts +30 -0
  75. package/dist/types/mobile/backButton.d.ts.map +1 -0
  76. package/dist/types/mobile/capacitor.d.ts +62 -0
  77. package/dist/types/mobile/capacitor.d.ts.map +1 -0
  78. package/dist/types/mobile/index.d.ts +4 -0
  79. package/dist/types/mobile/index.d.ts.map +1 -0
  80. package/dist/types/mobile/screen.d.ts +27 -0
  81. package/dist/types/mobile/screen.d.ts.map +1 -0
  82. package/dist/types/nav/flowField.d.ts +31 -0
  83. package/dist/types/nav/flowField.d.ts.map +1 -0
  84. package/dist/types/nav/steering.d.ts +47 -0
  85. package/dist/types/nav/steering.d.ts.map +1 -0
  86. package/dist/types/net/InterpolationBuffer.d.ts +5 -0
  87. package/dist/types/net/InterpolationBuffer.d.ts.map +1 -1
  88. package/dist/types/net/LagCompensator.d.ts +70 -0
  89. package/dist/types/net/LagCompensator.d.ts.map +1 -0
  90. package/dist/types/net/Room.d.ts +72 -3
  91. package/dist/types/net/Room.d.ts.map +1 -1
  92. package/dist/types/net/RoomHost.d.ts +8 -3
  93. package/dist/types/net/RoomHost.d.ts.map +1 -1
  94. package/dist/types/net/SpatialHash.d.ts +25 -0
  95. package/dist/types/net/SpatialHash.d.ts.map +1 -0
  96. package/dist/types/ui/ScrollView.d.ts.map +1 -1
  97. package/dist/ui/ScrollView.js +10 -8
  98. package/package.json +5 -1
@@ -0,0 +1,78 @@
1
+ /** One line said: by `speaker` (absent: narration). A bare string is a line of narration. */
2
+ export interface DialogueLine {
3
+ text: string;
4
+ speaker?: string;
5
+ /** Said only when this holds. */
6
+ if?: string;
7
+ /** The game's own marks (a portrait's mood, a sound): handed back with the line. */
8
+ tags?: string[];
9
+ /** A translation key, handed to `translate` with the text. */
10
+ key?: string;
11
+ }
12
+ /** Something the game does, by name: `"open_gate"`, or `{ "name": "give", "args": ["key", 1] }`. */
13
+ export type DialogueCommand = string | {
14
+ name: string;
15
+ args?: unknown[];
16
+ };
17
+ /** One answer the player may pick. */
18
+ export interface DialogueChoice {
19
+ text: string;
20
+ /** Where it leads (absent: the dialogue ends). */
21
+ goto?: string;
22
+ /** Offered only when this holds. */
23
+ if?: string;
24
+ /** When `if` fails, show it greyed out instead of leaving it out (the player sees what they lack). */
25
+ showLocked?: boolean;
26
+ /** Offered only until picked once. */
27
+ once?: boolean;
28
+ /** Assignments run when it is picked: name → expression. */
29
+ set?: Record<string, string>;
30
+ do?: DialogueCommand[];
31
+ key?: string;
32
+ }
33
+ /** A way on from a node with no choices: the first branch whose `if` holds (or that has none) is taken. */
34
+ export interface DialogueBranch {
35
+ if?: string;
36
+ goto: string;
37
+ }
38
+ export interface DialogueNode {
39
+ lines?: (string | DialogueLine)[];
40
+ choices?: DialogueChoice[];
41
+ /** Where to go after the lines when there are no choices: a node, or branches. Absent: the dialogue ends. */
42
+ next?: string | DialogueBranch[];
43
+ /** Assignments run on entering the node, before its lines. */
44
+ set?: Record<string, string>;
45
+ /** Commands run on entering the node, after `set`. */
46
+ do?: DialogueCommand[];
47
+ }
48
+ export interface DialogueScript {
49
+ /** Where `start()` begins (default the first node). */
50
+ start?: string;
51
+ nodes: Record<string, DialogueNode>;
52
+ }
53
+ /** A line as the runner hands it on: with its `{…}` filled in and translated. */
54
+ export interface ShownLine {
55
+ type: 'line';
56
+ node: string;
57
+ speaker: string | undefined;
58
+ text: string;
59
+ tags: readonly string[];
60
+ }
61
+ export interface ShownChoice {
62
+ /** What to pass to `choose`. */
63
+ index: number;
64
+ text: string;
65
+ /** False for a `showLocked` choice whose condition fails: drawn, but not pickable. */
66
+ enabled: boolean;
67
+ }
68
+ export interface ShownChoices {
69
+ type: 'choices';
70
+ node: string;
71
+ choices: ShownChoice[];
72
+ }
73
+ export interface DialogueEnd {
74
+ type: 'end';
75
+ }
76
+ /** Where a dialogue stands: a line to show, choices to offer, or the end. */
77
+ export type DialogueStep = ShownLine | ShownChoices | DialogueEnd;
78
+ //# sourceMappingURL=script.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../../../src/dialogue/script.ts"],"names":[],"mappings":"AAmBA,6FAA6F;AAC7F,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,oFAAoF;IACpF,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,8DAA8D;IAC9D,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,oGAAoG;AACpG,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC;AAE1E,sCAAsC;AACtC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,sGAAsG;IACtG,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sCAAsC;IACtC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,2GAA2G;AAC3G,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC;IAClC,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,6GAA6G;IAC7G,IAAI,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE,CAAC;IACjC,8DAA8D;IAC9D,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,sDAAsD;IACtD,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACrC;AAED,iFAAiF;AACjF,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,sFAAsF;IACtF,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,KAAK,CAAC;CACb;AAED,6EAA6E;AAC7E,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,WAAW,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { DialogueScript } from './script.js';
2
+ /** One fault in a script: where (`nodes.gate.choices[1].goto`), and what. */
3
+ export interface DialogueIssue {
4
+ path: string;
5
+ message: string;
6
+ /** An error stops the dialogue when reached; a warning is likely a slip (a node nothing leads to). */
7
+ level: 'error' | 'warning';
8
+ }
9
+ export interface ValidateOptions {
10
+ /** The commands the game handles; when given, a `do` naming another is an error. */
11
+ commands?: readonly string[];
12
+ /** The functions the game registered, beside `visited` and `chose`; when given, a call to another is an error. */
13
+ functions?: readonly string[];
14
+ }
15
+ /**
16
+ * Checks a script without running it, for a test or an editor: every `goto` and `next` names a node, every condition,
17
+ * assignment and `{…}` parses, commands and functions are known (when the lists are given), and every node can be
18
+ * reached from the start.
19
+ */
20
+ export declare function validateDialogue(script: DialogueScript, options?: ValidateOptions): DialogueIssue[];
21
+ //# sourceMappingURL=validateDialogue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateDialogue.d.ts","sourceRoot":"","sources":["../../../src/dialogue/validateDialogue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAmB,cAAc,EAAE,MAAM,UAAU,CAAC;AAEhE,6EAA6E;AAC7E,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,sGAAsG;IACtG,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,oFAAoF;IACpF,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,kHAAkH;IAClH,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,eAAoB,GAAG,aAAa,EAAE,CAqFvG"}
@@ -0,0 +1,84 @@
1
+ import type { FieldSpec, FieldsType, FieldValues } from './fields.js';
2
+ import type { ComponentType, Entity, World } from './World.js';
3
+ /** What a prefab's factory values are given: the entity being made and the spawn's own `args`. */
4
+ export interface PrefabContext<A> {
5
+ entity: Entity;
6
+ args: A;
7
+ }
8
+ /**
9
+ * A component's value in a prefab: plain data (copied afresh for every entity, so no two share an object), or a
10
+ * factory called once per entity, for what cannot be copied (a class instance, a sprite) or must differ (a random
11
+ * roll, a position from the spawn's args). `null` in a variant takes away a component its base has.
12
+ */
13
+ export type PrefabValue<T, A = unknown> = T | ((ctx: PrefabContext<A>) => T);
14
+ export type PrefabPart<A = unknown> = readonly [ComponentType<unknown>, PrefabValue<unknown, A> | null];
15
+ /**
16
+ * One part of a prefab, typed: the value is checked against the component's type, and a factory's `ctx` is known.
17
+ * A bare `[type, value]` tuple works too, unchecked.
18
+ */
19
+ export declare function prefabPart<S extends FieldSpec, A = unknown>(type: FieldsType<S>, value: PrefabValue<FieldValues<S>, A> | null): PrefabPart<A>;
20
+ export declare function prefabPart<T, A = unknown>(type: ComponentType<T>, value: PrefabValue<T, A> | null): PrefabPart<A>;
21
+ /** A template for entities: the components each gets, with their starting values. */
22
+ export interface Prefab<A = unknown> {
23
+ readonly name: string;
24
+ /** The components, the base's merged in: a variant's plain-object values are laid over the base's field by field. */
25
+ readonly parts: ReadonlyMap<ComponentType<unknown>, PrefabValue<unknown, A>>;
26
+ readonly base: Prefab<A> | null;
27
+ }
28
+ export interface PrefabOptions<A> {
29
+ /** The prefab this is a variant of: everything it has, with these parts laid over. */
30
+ extends?: Prefab<A>;
31
+ }
32
+ /**
33
+ * Defines a prefab.
34
+ *
35
+ * ```ts
36
+ * const Monster = definePrefab('monster', [prefabPart(Health, { hp: 10, max: 10 }), prefabPart(Brain, () => tree.agent())]);
37
+ * const Boss = definePrefab('boss', [prefabPart(Health, { hp: 200, max: 200 }), prefabPart(Flying, null)], { extends: Monster });
38
+ * spawnPrefab(world, Boss, { with: [[Position, { x: 40, y: 80 }]] });
39
+ * ```
40
+ */
41
+ export declare function definePrefab<A = unknown>(name: string, parts: readonly PrefabPart<A>[], options?: PrefabOptions<A>): Prefab<A>;
42
+ export interface SpawnOptions<A> {
43
+ /** Components added or replaced for this entity only (laid over the prefab's like a variant's). */
44
+ with?: readonly PrefabPart<A>[];
45
+ /** Components of the prefab this entity goes without. */
46
+ without?: readonly ComponentType<unknown>[];
47
+ /** Handed to every factory value. */
48
+ args?: A;
49
+ }
50
+ /** Makes one entity from a prefab: each component's value copied, or made by its factory. */
51
+ export declare function spawnPrefab<A = unknown>(world: World, prefab: Prefab<A>, options?: SpawnOptions<A>): Entity;
52
+ /** Whether `prefab` is `of` or a variant of it, however far down. */
53
+ export declare function isPrefabOf(prefab: Prefab<never> | Prefab<unknown>, of: Prefab<never> | Prefab<unknown>): boolean;
54
+ /** Prefabs as data: `{ "goblin": { "extends": "monster", "components": { "Health": { "hp": 6 }, "Flying": null } } }`. */
55
+ export type PrefabData = Record<string, {
56
+ extends?: string;
57
+ components?: Record<string, unknown>;
58
+ }>;
59
+ /**
60
+ * Prefabs by name, loadable from data a designer edits. Components are named through `component(name, type)`;
61
+ * a value in the data is plain JSON, so factories (a sprite, a brain) are given in code with `factory`.
62
+ */
63
+ export declare class PrefabLibrary {
64
+ private readonly types;
65
+ private readonly factories;
66
+ private readonly prefabs;
67
+ /** Lets data name a component type. */
68
+ component(name: string, type: ComponentType<unknown>): this;
69
+ /** A value made in code for a prefab loaded from data (and its variants): the data cannot hold a function. */
70
+ factory<T>(prefab: string, type: ComponentType<T>, make: (ctx: PrefabContext<unknown>) => T): this;
71
+ /** Adds a prefab made in code. */
72
+ add(prefab: Prefab): this;
73
+ /**
74
+ * Builds the prefabs of `data`, bases before their variants (in any order in the data), and adds them. Throws,
75
+ * naming the prefab, on an unknown component or base, or a prefab that extends itself.
76
+ */
77
+ load(data: PrefabData): this;
78
+ get(name: string): Prefab;
79
+ has(name: string): boolean;
80
+ names(): string[];
81
+ /** `spawnPrefab` by name. */
82
+ spawn<A = unknown>(world: World, name: string, options?: SpawnOptions<A>): Entity;
83
+ }
84
+ //# sourceMappingURL=prefab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefab.d.ts","sourceRoot":"","sources":["../../../src/ecs/prefab.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,7 @@ export declare class WebPatcher {
47
47
  private loaded;
48
48
  /** The tidy a start began: a build waits for it, or it could delete the `.part` folder being filled. */
49
49
  private tidying;
50
+ private tidyChain;
50
51
  constructor(options: WebPatcherOptions);
51
52
  /** This shell's identity. */
52
53
  get shell(): string;
@@ -75,7 +76,9 @@ export declare class WebPatcher {
75
76
  private promote;
76
77
  /** A pointer this shell may load: its own shell, newer than the installed build, its folder whole. */
77
78
  private usable;
78
- /** Removes every patched web but the active, pending and previous one, and any half-made folder. */
79
+ /** Removes every patched web but the active, pending and previous one, and any half-made folder. A call made while
80
+ * one is running waits for it and then runs once more, so two never delete the same folder at once. */
79
81
  tidy(): Promise<void>;
82
+ private tidyOnce;
80
83
  }
81
84
  //# sourceMappingURL=webPatcher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"webPatcher.d.ts","sourceRoot":"","sources":["../../../src/electron/webPatcher.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmC,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAKvF,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IAChC,0FAA0F;IAC1F,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;IACnB,oGAAoG;IACpG,UAAU,EAAE,MAAM,CAAC;IACnB,kFAAkF;IAClF,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAC/B,qHAAqH;IACrH,UAAU,EAAE,MAAM,CAAC;IACnB,yGAAyG;IACzG,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qHAAqH;IACrH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kCAAkC;IAClC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,qFAAqF;IACrF,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACpC;AAED;;;;;;;;;GASG;AACH,qBAAa,UAAU;IAST,OAAO,CAAC,QAAQ,CAAC,OAAO;IARpC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAA6C;IAC/D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;IACvC,OAAO,CAAC,UAAU,CAAuB;IACzC,mGAAmG;IACnG,OAAO,CAAC,MAAM,CAAiD;IAC/D,wGAAwG;IACxG,OAAO,CAAC,OAAO,CAAoC;gBAEtB,OAAO,EAAE,iBAAiB;IAkBvD,6BAA6B;IAC7B,IAAI,KAAK,IAAI,MAAM,CAIlB;IAED,4GAA4G;IAC5G,UAAU,IAAI,MAAM;IAgCpB,0CAA0C;IAC1C,UAAU,IAAI,MAAM;IAIpB,sHAAsH;IACtH,UAAU,IAAI,IAAI;IAKlB,yEAAyE;IACnE,MAAM,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAW1C,kHAAkH;IAClH,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,OAAO;IAIjC;;;;OAIG;IACG,OAAO,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,GAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAsB,GAAG,OAAO,CAAC,MAAM,CAAC;IAmDtG;;;OAGG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI;IAS7B,uGAAuG;IACvG,OAAO,CAAC,OAAO;IAMf,sGAAsG;IACtG,OAAO,CAAC,MAAM;IAId,oGAAoG;IAC9F,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAY5B"}
1
+ {"version":3,"file":"webPatcher.d.ts","sourceRoot":"","sources":["../../../src/electron/webPatcher.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmC,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAKvF,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IAChC,0FAA0F;IAC1F,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;IACnB,oGAAoG;IACpG,UAAU,EAAE,MAAM,CAAC;IACnB,kFAAkF;IAClF,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAC/B,qHAAqH;IACrH,UAAU,EAAE,MAAM,CAAC;IACnB,yGAAyG;IACzG,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qHAAqH;IACrH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kCAAkC;IAClC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,qFAAqF;IACrF,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACpC;AAED;;;;;;;;;GASG;AACH,qBAAa,UAAU;IAUT,OAAO,CAAC,QAAQ,CAAC,OAAO;IATpC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAA6C;IAC/D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;IACvC,OAAO,CAAC,UAAU,CAAuB;IACzC,mGAAmG;IACnG,OAAO,CAAC,MAAM,CAAiD;IAC/D,wGAAwG;IACxG,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,SAAS,CAAoC;gBAExB,OAAO,EAAE,iBAAiB;IAkBvD,6BAA6B;IAC7B,IAAI,KAAK,IAAI,MAAM,CAIlB;IAED,4GAA4G;IAC5G,UAAU,IAAI,MAAM;IAgCpB,0CAA0C;IAC1C,UAAU,IAAI,MAAM;IAIpB,sHAAsH;IACtH,UAAU,IAAI,IAAI;IAKlB,yEAAyE;IACnE,MAAM,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAW1C,kHAAkH;IAClH,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,OAAO;IAIjC;;;;OAIG;IACG,OAAO,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,GAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAsB,GAAG,OAAO,CAAC,MAAM,CAAC;IAmDtG;;;OAGG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI;IAS7B,uGAAuG;IACvG,OAAO,CAAC,OAAO;IAMf,sGAAsG;IACtG,OAAO,CAAC,MAAM;IAId;2GACuG;IACvG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAMP,QAAQ;CAYvB"}
@@ -8,6 +8,7 @@ export { SceneManager } from './engine/SceneManager.js';
8
8
  export { FixedLoop, type FixedLoopOptions } from './engine/FixedLoop.js';
9
9
  export { HiddenPause, type Pausable } from './engine/HiddenPause.js';
10
10
  export { World, defineComponent, defineFields, entityIndex, system, type Entity, type ComponentType, type System, type SystemContext, type SystemPhase, type ComponentValues, } from './ecs/World.js';
11
+ export { definePrefab, prefabPart, spawnPrefab, isPrefabOf, PrefabLibrary, type Prefab, type PrefabPart, type PrefabValue, type PrefabContext, type PrefabOptions, type SpawnOptions, type PrefabData, } from './ecs/prefab.js';
11
12
  export type { FieldKind, FieldSpec, FieldsType, FieldValues, Columns, ArrayOf } from './ecs/fields.js';
12
13
  export { EventBus } from './events/EventBus.js';
13
14
  export { engineSettings, type EngineSettings, type SettingsListener } from './settings.js';
@@ -22,6 +23,9 @@ export { TimelineBuilder, type TimelineProps, type TimelineTweenOptions } from '
22
23
  export type { TimelinePosition } from './core/timelinePlace.js';
23
24
  export { easeByName, type EaseFn } from './core/eases.js';
24
25
  export { ObjectFactory } from './core/ObjectFactory.js';
26
+ export { PixelGrid } from './core/PixelGrid.js';
27
+ export { SharpText } from './core/SharpText.js';
28
+ export { gridPlacement, type GridPlacement } from './core/gridPlacement.js';
25
29
  export { Graphics, type Vec2 } from './core/Graphics.js';
26
30
  export { Image } from './core/Image.js';
27
31
  export { solidSilhouette, fillSolid, clearSilhouettes } from './core/silhouette.js';
@@ -74,6 +78,7 @@ export { elementVolumeLocked } from './audio/music/musicVoice.js';
74
78
  export { registerSounds, type SoundTable } from './audio/soundTable.js';
75
79
  export { registerTakes, hasTakes } from './audio/sampleBank.js';
76
80
  export { Footsteps, type FootstepOptions, type SurfaceSounds } from './audio/Footsteps.js';
81
+ export { SpatialAudio, spatialMix, type SpatialEmitter, type EmitterOptions as SpatialEmitterOptions, type SpatialMix, type SpatialMixOptions } from './audio/spatial.js';
77
82
  export { renderRecipe, SYNTH_RATE, type SynthRecipe, type SynthLayer } from './audio/synth.js';
78
83
  export { Keyboard } from './input/Keyboard.js';
79
84
  export { Actions, PAD_BUTTONS, type Bindings, type ActionsOptions, type PadState } from './input/Actions.js';
@@ -84,6 +89,8 @@ export { LongPress } from './input/longPress.js';
84
89
  export { AimGesture, aimPoint, spotReach, spotShare, dragSlop, AIM_TAP_SLOP, AIM_EARLY_SLOP, AIM_PRESS_MS, AIM_CENTRE, type AimGestureOptions, type AimShape, type AimEnd } from './input/AimGesture.js';
85
90
  export { TargetLock, pickTarget, nearestTarget, keptTarget, LOCK_PICK_RANGE, LOCK_KEEP_RANGE, LOCK_PICK_CONE, type LockBody, type TargetLockOptions } from './input/TargetLock.js';
86
91
  export { Keymap, mergeKeymap, keymapStorage, keyLabel } from './input/Keymap.js';
92
+ export { InputCapture, padLabel, deviceOf, type CaptureOptions, type InputDevice } from './input/InputCapture.js';
93
+ export { InputRecorder, InputPlayer, type InputTape } from './input/inputTape.js';
87
94
  export { isTouchUi, setNativeShell, setTouchOverrideKey } from './platform/touch.js';
88
95
  export { onAppResume, type ResumeEnv } from './platform/appResume.js';
89
96
  export { timeoutSignal } from './platform/timeoutSignal.js';
@@ -129,6 +136,14 @@ export { navGrid, navGridFromCollision, isOpen, nearWallCost, canStep, NAV_STEPS
129
136
  export { nearestOpen } from './nav/nearestOpen.js';
130
137
  export { findPath, floodFill, reachedCount, octile, type NavGoal, type FindPathOptions } from './nav/findPath.js';
131
138
  export { straightenPath, simplifyPath } from './nav/straightenPath.js';
139
+ export { flowField, followField, type FlowField } from './nav/flowField.js';
140
+ export { seek, flee, arrive, separation, alignment, cohesion, followFlow, combineSteering, applySteering, type SteerVec, type SteerAgent, type StepSource, } from './nav/steering.js';
141
+ export { BehaviorTree, BtAgent, sequence, selector, reactiveSequence, reactiveSelector, parallel, invert, succeed, repeat, retry, cooldown, timeout, wait, condition, action, formatTrace, type BtStatus, type BtNode, type BtRun, type BtTraceLine, type ParallelPolicy, type ActionOptions, } from './ai/behaviorTree.js';
142
+ export { buildTree, type BtSpec, type BtRegistry } from './ai/buildTree.js';
143
+ export { DialogueRunner, type DialogueOptions, type DialogueSave } from './dialogue/DialogueRunner.js';
144
+ export { validateDialogue, type DialogueIssue, type ValidateOptions as DialogueValidateOptions } from './dialogue/validateDialogue.js';
145
+ export { compileExpr, type CompiledExpr, type ExprScope, type ExprValue } from './dialogue/expr.js';
146
+ export type { DialogueScript, DialogueNode, DialogueLine, DialogueChoice, DialogueBranch, DialogueCommand, DialogueStep, ShownLine, ShownChoice, ShownChoices, DialogueEnd, } from './dialogue/script.js';
132
147
  export { SaveStore, type SaveStoreOptions, type SaveInfo, type LoadResult, type LoadFailure } from './save/SaveStore.js';
133
148
  export type { SaveBackend } from './save/SaveBackend.js';
134
149
  export { MemoryBackend } from './save/MemoryBackend.js';
@@ -167,7 +182,9 @@ export { CADENCE, cadenceEarly, cadenceNext } from './net/cadence.js';
167
182
  export { serverNow, serverOffset, noteServerTime, resetServerClock } from './net/serverClock.js';
168
183
  export { PredictedMover } from './net/PredictedMover.js';
169
184
  export { InterpolationBuffer, type InterpolatedState } from './net/InterpolationBuffer.js';
170
- export { Room, type RoomPlayer, type RoomOptions } from './net/Room.js';
185
+ export { Room, BODY_ID_BASE, type RoomPlayer, type RoomBody, type RoomSeen, type RoomOptions, type RoomInterest } from './net/Room.js';
186
+ export { SpatialHash } from './net/SpatialHash.js';
187
+ export { LagCompensator, type RewoundBody, type RewoundHit } from './net/LagCompensator.js';
171
188
  export { RoomHost, type HostSocket, type RoomHostOptions } from './net/RoomHost.js';
172
189
  export { Connection, CLOSE_NO_ANSWER, type ConnectionEvents, type ConnectionOptions } from './net/Connection.js';
173
190
  export { ApiClient, ApiError, type ApiClientOptions, type ApiRequestOptions, type ApiErrorInfo, type ApiMethod, type RefreshResult } from './net/ApiClient.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -57,6 +57,10 @@ export declare class Actions<A extends string> {
57
57
  private readonly chords;
58
58
  /** Keys a chord holds this step: their bare bindings read 0 until the key comes up. */
59
59
  private readonly claimed;
60
+ /** Where `poll` takes its values from instead of the devices (a replay), until it returns null. */
61
+ private source;
62
+ /** Handed every step's values after `poll` (a recorder). */
63
+ private readonly taps;
60
64
  private readonly keyDown;
61
65
  constructor(keyboard: Keyboard | null, bindings: Bindings<A>, options?: ActionsOptions);
62
66
  /** Replaces one action's bindings (a player's rebinding). */
@@ -72,6 +76,16 @@ export declare class Actions<A extends string> {
72
76
  rumble(options: RumbleOptions, padIndex?: number): Promise<boolean>;
73
77
  /** Reads every device once; call at the start of each simulation step. */
74
78
  poll(): void;
79
+ /**
80
+ * Takes each step's values from `source` instead of the devices (an `InputPlayer`), until it returns null; then
81
+ * the devices answer again. Pass null to stop at once.
82
+ */
83
+ replay(source: (() => ReadonlyMap<A, number> | null) | null): void;
84
+ /** Whether a replay is driving the actions now. */
85
+ get replaying(): boolean;
86
+ /** Calls `tap` with every step's values right after `poll` (an `InputRecorder`); returns the stop. */
87
+ tap(tap: (values: ReadonlyMap<A, number>) => void): () => void;
88
+ private readDevices;
75
89
  /** Held this step. */
76
90
  down(action: A): boolean;
77
91
  /** How far it is held (0–1): 1 for a key, the trigger or stick amount for analog input. */
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.d.ts","sourceRoot":"","sources":["../../../src/input/Actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Actions.d.ts","sourceRoot":"","sources":["../../../src/input/Actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAa,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;AAEtE,8EAA8E;AAC9E,eAAO,MAAM,WAAW,6HAA8H,CAAC;AAGvJ,0FAA0F;AAC1F,MAAM,WAAW,QAAS,SAAQ,SAAS;IACzC,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnF,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,MAAM,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC;CAC/C;AAED,qBAAa,OAAO,CAAC,CAAC,SAAS,MAAM;IAoBjC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAnB3B,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,+EAA+E;IAC/E,OAAO,CAAC,GAAG,CAAwB;IACnC,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAC7D,uFAAuF;IACvF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,mGAAmG;IACnG,OAAO,CAAC,MAAM,CAAsD;IACpE,4DAA4D;IAC5D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuD;IAC5E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2G;gBAGhH,QAAQ,EAAE,QAAQ,GAAG,IAAI,EAC1C,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EACrB,OAAO,GAAE,cAAmB;IAQ9B,6DAA6D;IAC7D,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAIhD,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,MAAM,EAAE;IAIxC,8EAA8E;IAC9E,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKzB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3B;;;OAGG;IACG,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOzE,0EAA0E;IAC1E,IAAI,IAAI,IAAI;IAiBZ;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAIlE,mDAAmD;IACnD,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,sGAAsG;IACtG,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAK9D,OAAO,CAAC,WAAW;IAUnB,sBAAsB;IACtB,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO;IAIxB,2FAA2F;IAC3F,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM;IAIxB,2BAA2B;IAC3B,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO;IAI3B,yBAAyB;IACzB,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO;IAI5B,oDAAoD;IACpD,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,MAAM;IAItC,wFAAwF;IACxF,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAO3D,0GAA0G;IAC1G,OAAO,IAAI,IAAI;IAKf;;;;OAIG;IACH,KAAK,IAAI,IAAI;IAOb,OAAO,CAAC,OAAO;IASf,6EAA6E;IAC7E,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,IAAI;CAgCb"}
@@ -0,0 +1,53 @@
1
+ import { type PadState } from './Actions.js';
2
+ /** What kind of input a binding is: a key (or chord), a gamepad button or stick half, or a touch button. */
3
+ export type InputDevice = 'keys' | 'pad' | 'touch';
4
+ export declare function deviceOf(binding: string): InputDevice;
5
+ /**
6
+ * How a gamepad binding reads on screen: `pad:a` is "A", `pad:lx-` "Left stick left". `names` overrides any (a
7
+ * PlayStation game's "Cross", the game's own language); a binding that is not a pad's comes back as it is.
8
+ */
9
+ export declare function padLabel(binding: string, names?: Readonly<Record<string, string>>): string;
10
+ export interface CaptureOptions {
11
+ /** Which devices may answer (default keys and pad). */
12
+ devices?: readonly ('keys' | 'pad')[];
13
+ /** Key codes that do not count (default Escape: it cancels instead). */
14
+ ignoreKeys?: readonly string[];
15
+ /** Key codes that cancel the capture (default Escape; the pad's Start and B are buttons like any other). */
16
+ cancelKeys?: readonly string[];
17
+ /** A stick half counts once pushed past this (default 0.6), so a resting stick's drift never binds. */
18
+ axisThreshold?: number;
19
+ /** Where key presses are heard (default `window`). */
20
+ target?: EventTarget;
21
+ /** Where gamepads come from (default `navigator.getGamepads`). */
22
+ gamepads?: () => readonly (PadState | null)[];
23
+ }
24
+ /**
25
+ * Waits for the next input the player gives, for a settings screen's "press a key for Jump": the next key (its
26
+ * `KeyboardEvent.code`), gamepad button or stick half pushed past a threshold, as a binding string `Actions` and
27
+ * `Keymap` take. Inputs already held when the capture began do not count until let go, so the press that opened the
28
+ * capture (Enter, the pad's A) does not bind itself.
29
+ *
30
+ * Call `poll()` once a frame for the gamepad (the browser has no gamepad events worth trusting); keys are heard as
31
+ * they come. The promise resolves to the binding, or null when cancelled (Escape, or `cancel()`).
32
+ */
33
+ export declare class InputCapture {
34
+ readonly result: Promise<string | null>;
35
+ private settle;
36
+ private done;
37
+ private readonly held;
38
+ private readonly options;
39
+ private readonly gamepads;
40
+ private readonly target;
41
+ private readonly onKey;
42
+ constructor(options?: CaptureOptions);
43
+ /** Reads the gamepads once; call every frame while the capture is open. */
44
+ poll(): void;
45
+ /** Stops waiting; the result is null. */
46
+ cancel(): void;
47
+ get open(): boolean;
48
+ private key;
49
+ private finish;
50
+ /** Every pad input down on any pad now, as bindings. */
51
+ private padInputs;
52
+ }
53
+ //# sourceMappingURL=InputCapture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputCapture.d.ts","sourceRoot":"","sources":["../../../src/input/InputCapture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEvD,4GAA4G;AAC5G,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;AAEnD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAErD;AAgCD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,GAAG,MAAM,CAI9F;AAED,MAAM,WAAW,cAAc;IAC7B,uDAAuD;IACvD,OAAO,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC;IACtC,wEAAwE;IACxE,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,4GAA4G;IAC5G,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,uGAAuG;IACvG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC;CAC/C;AAED;;;;;;;;GAQG;AACH,qBAAa,YAAY;IACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxC,OAAO,CAAC,MAAM,CAAoC;IAClD,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwD;IAChF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8C;gBAExD,OAAO,GAAE,cAAmB;IAgBxC,2EAA2E;IAC3E,IAAI,IAAI,IAAI;IAWZ,yCAAyC;IACzC,MAAM,IAAI,IAAI;IAId,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,OAAO,CAAC,GAAG;IAUX,OAAO,CAAC,MAAM;IAOd,wDAAwD;IACxD,OAAO,CAAC,SAAS;CAgBlB"}
@@ -1,9 +1,11 @@
1
1
  import type { Actions } from './Actions.js';
2
+ import { type InputDevice } from './InputCapture.js';
2
3
  /**
3
4
  * Which keys each action sits on, as the player has rebound them: one table the input, the key hints on screen and
4
5
  * a settings screen all read. A binding is a `KeyboardEvent.code` (`KeyW`, `Digit1`), so it means the same physical
5
6
  * key on every layout. Each action keeps a list (W and ArrowUp, 1 and Q); a settings screen edits the **first** and
6
- * leaves the alternates alone.
7
+ * leaves the alternates alone. Gamepad inputs (`pad:a`, `pad:lx-`) may be the player's too: each device keeps its own
8
+ * first binding, so a settings screen with a keys column and a pad column edits each without touching the other.
7
9
  *
8
10
  * Two rules: one key serves one action at a time (a key bound twice would fire both, and the player could not tell
9
11
  * which they meant), and reserved keys (Escape, Enter, Tab by default: the interface's own) are never taken.
@@ -34,16 +36,20 @@ export declare class Keymap<A extends string> {
34
36
  /** Every action, in the order the defaults named them. */
35
37
  actions(): A[];
36
38
  isReserved(code: string): boolean;
37
- /** The keys of one action; the first is the one a settings screen shows and edits. */
38
- keysFor(action: A): readonly string[];
39
+ /**
40
+ * The bindings of one action, or only those of one device; the first of a device is the one a settings screen
41
+ * shows and edits.
42
+ */
43
+ keysFor(action: A, device?: InputDevice): readonly string[];
39
44
  /** The inputs an action always has besides the player's keys (the constructor's `fixed`). */
40
45
  fixedFor(action: A): readonly string[];
41
46
  /** Which action a key belongs to, or undefined. */
42
47
  actionFor(code: string): A | undefined;
43
48
  /**
44
- * Puts `code` first on `action`, taking it off whatever else held it; returns the actions that lost it (to tell the
45
- * player). A reserved key is refused (returns null). An action stripped of its last key keeps none: it is unbound
46
- * until something is put back on it.
49
+ * Puts `code` first on `action` in place of the action's first binding of the same device (a key replaces its first
50
+ * key, a pad input its first pad input), taking it off whatever else held it; returns the actions that lost it (to
51
+ * tell the player). A reserved key is refused (returns null). An action stripped of its last key keeps none: it is
52
+ * unbound until something is put back on it.
47
53
  */
48
54
  bind(action: A, code: string): A[] | null;
49
55
  /** Takes every key off `action`. */
@@ -1 +1 @@
1
- {"version":3,"file":"Keymap.d.ts","sourceRoot":"","sources":["../../../src/input/Keymap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,MAAM,CAAC,CAAC,SAAS,MAAM;IAClC,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IACxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwC;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAEhD;;;OAGG;gBAED,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,EAChD,QAAQ,GAAE,QAAQ,CAAC,MAAM,CAA8B,EACvD,KAAK,GAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC,CAAM;IAQnD,OAAO,CAAC,KAAK;IAMb,0DAA0D;IAC1D,OAAO,IAAI,CAAC,EAAE;IAId,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC,sFAAsF;IACtF,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,MAAM,EAAE;IAIrC,6FAA6F;IAC7F,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,MAAM,EAAE;IAItC,mDAAmD;IACnD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAKtC;;;;OAIG;IACH,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,IAAI;IAczC,oCAAoC;IACpC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI;IAMvB,yCAAyC;IACzC,KAAK,IAAI,IAAI;IAKb,oEAAoE;IACpE,MAAM,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IAM7B;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAK1B;;;;;OAKG;IACH,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC,CAAM,GAAG,IAAI;IAI3G,mEAAmE;IACnE,QAAQ,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAQpC,OAAO,CAAC,OAAO;CAGhB;AAED,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAC1C,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,EAChD,KAAK,EAAE,OAAO,EACd,QAAQ,GAAE,WAAW,CAAC,MAAM,CAAa,GACxC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAwBrB;AAED,6GAA6G;AAC7G,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,IAAI,OAAO,CAAC;IAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,IAAI,IAAI,CAAA;CAAE,CAiCzG;AA2BD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,GAAG,MAAM,CAQ3F"}
1
+ {"version":3,"file":"Keymap.d.ts","sourceRoot":"","sources":["../../../src/input/Keymap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,MAAM,CAAC,CAAC,SAAS,MAAM;IAClC,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IACxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwC;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAEhD;;;OAGG;gBAED,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,EAChD,QAAQ,GAAE,QAAQ,CAAC,MAAM,CAA8B,EACvD,KAAK,GAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC,CAAM;IAQnD,OAAO,CAAC,KAAK;IAMb,0DAA0D;IAC1D,OAAO,IAAI,CAAC,EAAE;IAId,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC;;;OAGG;IACH,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,MAAM,EAAE;IAK3D,6FAA6F;IAC7F,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,MAAM,EAAE;IAItC,mDAAmD;IACnD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAKtC;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,IAAI;IAgBzC,oCAAoC;IACpC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI;IAMvB,yCAAyC;IACzC,KAAK,IAAI,IAAI;IAKb,oEAAoE;IACpE,MAAM,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IAM7B;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAK1B;;;;;OAKG;IACH,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC,CAAM,GAAG,IAAI;IAI3G,mEAAmE;IACnE,QAAQ,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAQpC,OAAO,CAAC,OAAO;CAGhB;AAED,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAC1C,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,EAChD,KAAK,EAAE,OAAO,EACd,QAAQ,GAAE,WAAW,CAAC,MAAM,CAAa,GACxC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAwBrB;AAED,6GAA6G;AAC7G,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,IAAI,OAAO,CAAC;IAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,IAAI,IAAI,CAAA;CAAE,CAiCzG;AA2BD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,GAAG,MAAM,CAQ3F"}
@@ -0,0 +1,66 @@
1
+ import type { Actions } from './Actions.js';
2
+ /**
3
+ * A recording of what a player did, step by step, as plain JSON: attach it to a bug report and the bug plays again,
4
+ * or keep it as a replay. Only changes are kept (an action's value on the step it changed), so a minute of play is a
5
+ * few hundred numbers, not thousands.
6
+ */
7
+ export interface InputTape {
8
+ version: 1;
9
+ /** The actions, in the order `changes` refers to them. */
10
+ actions: string[];
11
+ /** Steps recorded. */
12
+ steps: number;
13
+ /** `[step, action index, value]`, in step order: from that step on the action reads `value` (0 up, 1 held). */
14
+ changes: [number, number, number][];
15
+ /** The game's own: a seed, a level, a build, whatever the replay needs to start the same. */
16
+ meta?: Record<string, unknown>;
17
+ }
18
+ /**
19
+ * Records an `Actions`' every step until stopped.
20
+ *
21
+ * ```ts
22
+ * const rec = new InputRecorder(actions, { seed, level: 'forest-2' });
23
+ * // … play …
24
+ * const tape = rec.stop(); // JSON.stringify it into the bug report
25
+ * ```
26
+ */
27
+ export declare class InputRecorder<A extends string> {
28
+ private readonly meta?;
29
+ private readonly order;
30
+ private readonly index;
31
+ private readonly last;
32
+ private readonly changes;
33
+ private steps;
34
+ private readonly untap;
35
+ private stopped;
36
+ constructor(actions: Actions<A>, meta?: Record<string, unknown> | undefined);
37
+ /** Steps recorded so far. */
38
+ get length(): number;
39
+ /** Stops recording and returns the tape (the same one on every later call). */
40
+ stop(): InputTape;
41
+ private capture;
42
+ private note;
43
+ }
44
+ /**
45
+ * Plays a tape into an `Actions`: each `poll` takes the next step from it instead of the devices, and when the tape
46
+ * ends the devices answer again (`onEnd` says so).
47
+ *
48
+ * ```ts
49
+ * new InputPlayer(tape).playInto(actions, () => console.log('replay over'));
50
+ * ```
51
+ */
52
+ export declare class InputPlayer<A extends string = string> {
53
+ readonly tape: InputTape;
54
+ private step;
55
+ private next;
56
+ private readonly values;
57
+ constructor(tape: InputTape);
58
+ /** Steps played so far. */
59
+ get position(): number;
60
+ get done(): boolean;
61
+ /** The next step's values, or null once the tape is over. */
62
+ read(): ReadonlyMap<A, number> | null;
63
+ /** Drives `actions` from the tape until it ends; `onEnd` is called on the poll that finds it over. */
64
+ playInto<B extends string>(actions: Actions<B>, onEnd?: () => void): void;
65
+ }
66
+ //# sourceMappingURL=inputTape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputTape.d.ts","sourceRoot":"","sources":["../../../src/input/inputTape.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,CAAC,CAAC;IACX,0DAA0D;IAC1D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,+GAA+G;IAC/G,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IACpC,6FAA6F;IAC7F,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;;;;;;;GAQG;AACH,qBAAa,aAAa,CAAC,CAAC,SAAS,MAAM;IAWvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IAVxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;IAC9C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwB;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,OAAO,CAA0B;gBAGvC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACF,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;IAKjD,6BAA6B;IAC7B,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,+EAA+E;IAC/E,IAAI,IAAI,SAAS;IAQjB,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,IAAI;CAWb;AAED;;;;;;;GAOG;AACH,qBAAa,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAKpC,QAAQ,CAAC,IAAI,EAAE,SAAS;IAJpC,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;gBAE1B,IAAI,EAAE,SAAS;IAUpC,2BAA2B;IAC3B,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,6DAA6D;IAC7D,IAAI,IAAI,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,IAAI;IAarC,sGAAsG;IACtG,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;CAQ1E"}