like2d 2.11.0 → 2.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.
Files changed (73) hide show
  1. package/README.md +36 -6
  2. package/assets/logo-banner-optimized.svg +15 -27
  3. package/assets/logo-banner.svg +76 -132
  4. package/assets/logo-icon.svg +33 -23
  5. package/assets/logo.svg +78 -123
  6. package/dist/audio/index.d.ts +1 -1
  7. package/dist/engine.d.ts +5 -8
  8. package/dist/engine.js +37 -22
  9. package/dist/events.d.ts +19 -7
  10. package/dist/graphics/canvas.d.ts +23 -7
  11. package/dist/graphics/canvas.js +69 -68
  12. package/dist/graphics/graphics.d.ts +83 -55
  13. package/dist/graphics/graphics.js +128 -129
  14. package/dist/graphics/image.d.ts +22 -0
  15. package/dist/graphics/image.js +62 -0
  16. package/dist/graphics/index.d.ts +6 -4
  17. package/dist/graphics/index.js +2 -2
  18. package/dist/index.d.ts +6 -4
  19. package/dist/index.js +9 -2
  20. package/dist/input/controllerdb.json +1 -1
  21. package/dist/input/gamepad-mapping.d.ts +4 -4
  22. package/dist/input/gamepad-mapping.js +6 -5
  23. package/dist/input/gamepad.d.ts +11 -1
  24. package/dist/input/gamepad.js +11 -1
  25. package/dist/input/index.d.ts +13 -5
  26. package/dist/input/index.js +5 -1
  27. package/dist/input/input.d.ts +58 -7
  28. package/dist/input/input.js +63 -9
  29. package/dist/input/keyboard.d.ts +26 -3
  30. package/dist/input/keyboard.js +24 -0
  31. package/dist/input/mouse.d.ts +34 -6
  32. package/dist/input/mouse.js +31 -3
  33. package/dist/like.d.ts +41 -12
  34. package/dist/like.js +0 -4
  35. package/dist/math/index.d.ts +8 -9
  36. package/dist/math/index.js +8 -9
  37. package/dist/math/vector2.d.ts +2 -1
  38. package/dist/prefab-scenes/index.d.ts +5 -3
  39. package/dist/prefab-scenes/index.js +4 -2
  40. package/dist/prefab-scenes/mapGamepad.d.ts +14 -2
  41. package/dist/prefab-scenes/mapGamepad.js +29 -22
  42. package/dist/prefab-scenes/startScreen.d.ts +2 -3
  43. package/dist/prefab-scenes/startScreen.js +41 -12
  44. package/dist/scene.d.ts +48 -13
  45. package/dist/scene.js +0 -5
  46. package/package.json +2 -2
  47. package/dist/__benchmarks__/vector2.bench.d.ts +0 -2
  48. package/dist/__benchmarks__/vector2.bench.d.ts.map +0 -1
  49. package/dist/__benchmarks__/vector2.bench.js +0 -74
  50. package/dist/audio/audio.d.ts.map +0 -1
  51. package/dist/audio/index.d.ts.map +0 -1
  52. package/dist/engine.d.ts.map +0 -1
  53. package/dist/events.d.ts.map +0 -1
  54. package/dist/graphics/canvas.d.ts.map +0 -1
  55. package/dist/graphics/graphics.d.ts.map +0 -1
  56. package/dist/graphics/index.d.ts.map +0 -1
  57. package/dist/index.d.ts.map +0 -1
  58. package/dist/input/gamepad-mapping.d.ts.map +0 -1
  59. package/dist/input/gamepad.d.ts.map +0 -1
  60. package/dist/input/index.d.ts.map +0 -1
  61. package/dist/input/input.d.ts.map +0 -1
  62. package/dist/input/keyboard.d.ts.map +0 -1
  63. package/dist/input/mouse.d.ts.map +0 -1
  64. package/dist/like.d.ts.map +0 -1
  65. package/dist/math/index.d.ts.map +0 -1
  66. package/dist/math/rect.d.ts.map +0 -1
  67. package/dist/math/vector2.d.ts.map +0 -1
  68. package/dist/prefab-scenes/index.d.ts.map +0 -1
  69. package/dist/prefab-scenes/mapGamepad.d.ts.map +0 -1
  70. package/dist/prefab-scenes/startScreen.d.ts.map +0 -1
  71. package/dist/scene.d.ts.map +0 -1
  72. package/dist/timer/index.d.ts.map +0 -1
  73. package/dist/timer/timer.d.ts.map +0 -1
@@ -1,18 +1,17 @@
1
1
  /**
2
- * @module math
3
- *
4
2
  * A purely functional math library, mostly for 2d.
5
3
  *
6
- * Check out {@link vector2} and {@link rect}
4
+ * Check out {@link Vector2} and {@link Rect}
7
5
  *
8
6
  * Why purely functional?
9
- * 1. About as fast as it can get -- the JIT will pick up on these.
10
- * 2. Plays nice with stream iterators.
11
- * 3. JS is likely to add a pipe operator in the future.
12
- * 4. Construction is as easy as building an array.
7
+ * 1. Plays nice with stream iterators.
8
+ * 2. JS is likely to add a pipe operator in the future.
9
+ * 3. Construction is as easy as building an array.
10
+ *
11
+ * @module math
13
12
  */
13
+ export { type Vector2, Vec2, type Pair } from "./vector2";
14
+ export { type Rectangle, Rect } from "./rect";
14
15
  /** True modulus, conspicuously missing from JS */
15
16
  export declare const mod: (a: number, b: number) => number;
16
- export { type Vector2, Vec2 } from "./vector2";
17
- export { type Rectangle, Rect } from "./rect";
18
17
  //# sourceMappingURL=index.d.ts.map
@@ -1,17 +1,16 @@
1
1
  /**
2
- * @module math
3
- *
4
2
  * A purely functional math library, mostly for 2d.
5
3
  *
6
- * Check out {@link vector2} and {@link rect}
4
+ * Check out {@link Vector2} and {@link Rect}
7
5
  *
8
6
  * Why purely functional?
9
- * 1. About as fast as it can get -- the JIT will pick up on these.
10
- * 2. Plays nice with stream iterators.
11
- * 3. JS is likely to add a pipe operator in the future.
12
- * 4. Construction is as easy as building an array.
7
+ * 1. Plays nice with stream iterators.
8
+ * 2. JS is likely to add a pipe operator in the future.
9
+ * 3. Construction is as easy as building an array.
10
+ *
11
+ * @module math
13
12
  */
14
- /** True modulus, conspicuously missing from JS */
15
- export const mod = (a, b) => ((a % b) + b) % b;
16
13
  export { Vec2 } from "./vector2";
17
14
  export { Rect } from "./rect";
15
+ /** True modulus, conspicuously missing from JS */
16
+ export const mod = (a, b) => ((a % b) + b) % b;
@@ -1,3 +1,4 @@
1
+ /** @private */
1
2
  export type Pair<T> = [T, T];
2
3
  /** A pair of numbers `[x, y]`
3
4
  * representing for example:
@@ -58,7 +59,7 @@ export type Pair<T> = [T, T];
58
59
  * #### Squaring each element of a Vector2
59
60
  * ```ts
60
61
  * const squareVec2 = Vec2.map(a: number => a**2);
61
- * squareVec2([6, 7]) // returns [36, 42]
62
+ * squareVec2([6, 7]) // returns [36, 49]
62
63
  * // one in one line...
63
64
  * Vec2.map(a: number => a**2)([6, 7]);
64
65
  * ```
@@ -1,8 +1,10 @@
1
1
  /**
2
- * @module prefab-scenes
3
- *
4
2
  * A set of built-in scenes to aid with game development.
3
+ *
4
+ * To learn more about scenes, see {@link index.Scene}.
5
+ *
6
+ * @module prefab-scenes
5
7
  */
6
8
  export { StartScreen } from "./startScreen";
7
- export { MapGamepad, buttonSetAll, buttonSetNES, buttonSetPS1, buttonSetSNES } from "./mapGamepad";
9
+ export { MapGamepad, buttonSetAll, buttonSetNES, buttonSetPS1, buttonSetSNES, type MapMode } from "./mapGamepad";
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1,7 +1,9 @@
1
1
  /**
2
- * @module prefab-scenes
3
- *
4
2
  * A set of built-in scenes to aid with game development.
3
+ *
4
+ * To learn more about scenes, see {@link index.Scene}.
5
+ *
6
+ * @module prefab-scenes
5
7
  */
6
8
  export { StartScreen } from "./startScreen";
7
9
  export { MapGamepad, buttonSetAll, buttonSetNES, buttonSetPS1, buttonSetSNES } from "./mapGamepad";
@@ -10,16 +10,28 @@ export type MapMode = {
10
10
  buttons: Set<LikeButton>;
11
11
  stickCount: number;
12
12
  };
13
+ /**
14
+ * An automagical gamepad mapper.
15
+ *
16
+ * ```ts
17
+ * like.gamepadconnected = (index) =>
18
+ * like.pushScene(new MapGamepad({buttons: buttonSetGBA, sticks: 0}), index)
19
+ * ```
20
+ *
21
+ * Add this to your codebase and activating a gamepad causes a button mapping screen to pop up.
22
+ * It will request to map any buttons not already covered by the automapping database.
23
+ *
24
+ * Note: many browsers do this on first button press, so always writing "P2: press any button" is a fine idea.
25
+ */
13
26
  export declare class MapGamepad implements Scene {
14
27
  private mapMode;
15
28
  private targetPad;
16
- private next?;
17
29
  private currentlyUnmapped;
18
30
  private mapping;
19
31
  private held?;
20
32
  private alreadyMapped;
21
33
  private frameWait;
22
- constructor(mapMode: MapMode, targetPad: number, next?: Scene | undefined);
34
+ constructor(mapMode: MapMode, targetPad: number);
23
35
  load(like: Like): void;
24
36
  update(): void;
25
37
  draw(like: Like): void;
@@ -28,24 +28,24 @@ export const buttonSetPS1 = new Set(mapOrder.slice(0, 14));
28
28
  export const buttonSetAll = new Set(mapOrder);
29
29
  const drawCircButt = (pos, size) => (like, color) => like.gfx.circle("fill", color, pos, size);
30
30
  const drawDpadPart = (rot) => (like, color) => {
31
- like.gfx.push();
32
- like.gfx.translate([2.5, 6]);
33
- like.gfx.rotate(rot);
34
- like.gfx.rectangle("fill", color, [0.5, -0.5, 1.3, 1]);
35
- like.gfx.pop();
31
+ like.gfx.withTransform(() => {
32
+ like.gfx.translate([2.5, 6]);
33
+ like.gfx.rotate(rot);
34
+ like.gfx.rectangle("fill", color, [0.5, -0.5, 1.3, 1]);
35
+ });
36
36
  };
37
37
  const drawShoulder = (y, width, flip) => (like, color) => {
38
38
  const r = 0.8;
39
39
  const rectPos = [5 - width, y];
40
40
  const circPos = [5 - width - r, y];
41
- like.gfx.push();
42
- if (flip) {
43
- like.gfx.translate([16, 0]);
44
- like.gfx.scale([-1, 1]);
45
- }
46
- like.gfx.circle("fill", color, circPos, r, { arc: [Math.PI, Math.PI * 3 / 2], center: false });
47
- like.gfx.rectangle("fill", color, [...rectPos, width, r]);
48
- like.gfx.pop();
41
+ like.gfx.withTransform(() => {
42
+ if (flip) {
43
+ like.gfx.translate([16, 0]);
44
+ like.gfx.scale([-1, 1]);
45
+ }
46
+ like.gfx.circle("fill", color, circPos, r, { arc: [Math.PI, Math.PI * 3 / 2], center: false });
47
+ like.gfx.rectangle("fill", color, [...rectPos, width, r]);
48
+ });
49
49
  };
50
50
  // Buttons assume a centered resolution of 16x9px. Transforms exist for a reason lol.
51
51
  // LLLLL . RRRRR
@@ -75,8 +75,21 @@ const buttonProps = {
75
75
  Left: { draw: drawDpadPart(Math.PI) },
76
76
  Down: { draw: drawDpadPart(Math.PI / 2) },
77
77
  };
78
+ /**
79
+ * An automagical gamepad mapper.
80
+ *
81
+ * ```ts
82
+ * like.gamepadconnected = (index) =>
83
+ * like.pushScene(new MapGamepad({buttons: buttonSetGBA, sticks: 0}), index)
84
+ * ```
85
+ *
86
+ * Add this to your codebase and activating a gamepad causes a button mapping screen to pop up.
87
+ * It will request to map any buttons not already covered by the automapping database.
88
+ *
89
+ * Note: many browsers do this on first button press, so always writing "P2: press any button" is a fine idea.
90
+ */
78
91
  export class MapGamepad {
79
- constructor(mapMode, targetPad, next) {
92
+ constructor(mapMode, targetPad) {
80
93
  Object.defineProperty(this, "mapMode", {
81
94
  enumerable: true,
82
95
  configurable: true,
@@ -89,12 +102,6 @@ export class MapGamepad {
89
102
  writable: true,
90
103
  value: targetPad
91
104
  });
92
- Object.defineProperty(this, "next", {
93
- enumerable: true,
94
- configurable: true,
95
- writable: true,
96
- value: next
97
- });
98
105
  Object.defineProperty(this, "currentlyUnmapped", {
99
106
  enumerable: true,
100
107
  configurable: true,
@@ -176,7 +183,7 @@ export class MapGamepad {
176
183
  }
177
184
  else if (!active) {
178
185
  like.gamepad.setMapping(this.targetPad, this.mapping);
179
- setTimeout(() => like.setScene(this.next), 100);
186
+ setTimeout(() => like.popScene(), 100);
180
187
  }
181
188
  }
182
189
  gamepadreleased(_like, source, _name, num) {
@@ -187,6 +194,6 @@ export class MapGamepad {
187
194
  }
188
195
  }
189
196
  mousepressed(like) {
190
- like.setScene(this.next);
197
+ like.popScene();
191
198
  }
192
199
  }
@@ -22,7 +22,7 @@ import { Like } from '..';
22
22
  * like.draw = function () { ... }
23
23
  *
24
24
  * // Set up the start screen
25
- * like.setScene(new StartScreen())
25
+ * like.pushScene(new StartScreen())
26
26
  * like.start();
27
27
  * ```
28
28
  *
@@ -48,10 +48,9 @@ import { Like } from '..';
48
48
  * ```
49
49
  */
50
50
  export declare class StartScreen implements Scene {
51
- private next;
52
51
  private onDraw?;
53
52
  private logo;
54
- constructor(next: Scene, onDraw?: ((like: Like) => void) | undefined);
53
+ constructor(onDraw?: ((like: Like) => void) | undefined);
55
54
  load(like: Like): void;
56
55
  draw(like: Like): void;
57
56
  mousepressed(like: Like): void;
@@ -1,5 +1,36 @@
1
1
  import { Vec2 } from '../math/vector2';
2
- const LOGO = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSBDcmVhdGVkIHdpdGggSW5rc2NhcGUgKGh0dHA6Ly93d3cuaW5rc2NhcGUub3JnLykgLS0+Cjxzdmcgd2lkdGg9IjMwMG1tIiBoZWlnaHQ9IjEwNW1tIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAzMDAgMTA1IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogPHJlY3QgeD0iMTAiIHk9IjExLjIzIiB3aWR0aD0iMjgwIiBoZWlnaHQ9IjgzLjU0NCIgZmlsbD0iI2U0ODA4MCIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiLz4KIDxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CiAgPHJlY3QgeD0iOTcuNDg0IiB5PSIxMS4yMyIgd2lkdGg9IjUyLjUxNiIgaGVpZ2h0PSI0Ni4yMzciLz4KICA8cmVjdCB4PSIxNTAiIHk9IjExLjIzIiB3aWR0aD0iMzUuMDExIiBoZWlnaHQ9IjQ2LjIzNyIvPgogIDxyZWN0IHg9IjE4NS4wMSIgeT0iMTEuMjMiIHdpZHRoPSI1Mi41MTYiIGhlaWdodD0iNDYuMjM3Ii8+CiAgPHJlY3QgeD0iMjM3LjUzIiB5PSIxMS4yMyIgd2lkdGg9IjUyLjUxNiIgaGVpZ2h0PSI0Ni4yMzciLz4KIDwvZz4KIDxnPgogIDxyZWN0IHg9IjEzMi40OSIgeT0iMTEuMjMiIHdpZHRoPSIxNy41MDUiIGhlaWdodD0iMjcuNDYxIi8+CiAgPHJlY3QgeD0iMTUwIiB5PSIyOS4zMDIiIHdpZHRoPSI4Ljc1MjciIGhlaWdodD0iMTguNzc2Ii8+CiAgPHJlY3QgeD0iMTc2LjI2IiB5PSIyOS4zMDIiIHdpZHRoPSI4Ljc1MjciIGhlaWdodD0iMTguNzc2Ii8+CiA8L2c+CiA8cmVjdCB4PSIxNTAiIHk9IjExLjIzIiB3aWR0aD0iMTcuNTA1IiBoZWlnaHQ9IjguNjg0NSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiA8cmVjdCB4PSIxNjcuNTEiIHk9IjExLjIzIiB3aWR0aD0iMTcuNTA1IiBoZWlnaHQ9IjguNjg0NSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiA8Zz4KICA8cGF0aCBkPSJtMjM3LjUzIDM4LjY5MS0xNy41MDUtOS4zODgyIDE3LjUwNS0xOC4wNzN6Ii8+CiAgPHJlY3QgeD0iMjAyLjg4IiB5PSI0OC4wNzkiIHdpZHRoPSIxNi43NzIiIGhlaWdodD0iOS4zODgyIi8+CiAgPHJlY3QgeD0iMjcyLjU0IiB5PSIyMC4yNjYiIHdpZHRoPSIxNi43NzIiIGhlaWdodD0iOS4zODgyIi8+CiAgPHJlY3QgeD0iMjcyLjU0IiB5PSIzOC42OTEiIHdpZHRoPSIxNi43NzIiIGhlaWdodD0iOS4zODgyIi8+CiAgPHBhdGggZD0ibTIwMi41MiAyOS4zMDIgMC4zNjY4NS0xOC4wNzNoMTcuMTM5eiIvPgogPC9nPgogPHBhdGggZD0ibTY0LjA3OCAxLjAwNDItMzMuMzc1IDMzLjM3NS0wLjAxNzQzIDAuMDE3NGEyMy42MTIgMjMuNjEyIDAgMCAwIDAgMzMuMzkyIDIzLjYxMiAyMy42MTIgMCAwIDAgMzAuMDEyIDIuODAyMiAyMy42MTIgMjMuNjEyIDAgMCAxIDdlLTMgMC41NzAzNCAyMy42MTIgMjMuNjEyIDAgMCAxLTIzLjYxMiAyMy42MTJoNTMuOTdhMjMuNjEyIDIzLjYxMiAwIDAgMS0yMy42MTEtMjMuNjEyIDIzLjYxMiAyMy42MTIgMCAwIDEgN2UtMyAtMC41NzAzNCAyMy42MTIgMjMuNjEyIDAgMCAwIDMwLjAxMi0yLjgwMjkgMjMuNjEyIDIzLjYxMiAwIDAgMC02Ljg4ZS00IC0zMy4zOTJ6IiBmaWxsPSIjODBjM2U0IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KIDxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSIuNSI+CiAgPGNpcmNsZSB0cmFuc2Zvcm09InJvdGF0ZSgxMzUpIiBjeD0iLTIwLjk4OCIgY3k9Ii05My4yNDMiIHI9IjIzLjYxMiIvPgogIDxjaXJjbGUgdHJhbnNmb3JtPSJyb3RhdGUoMTM1KSIgY3g9IjIuNjIzOCIgY3k9Ii02OS42MzIiIHI9IjIzLjYxMiIvPgogIDxjaXJjbGUgY3g9IjkxLjA2MiIgY3k9IjcxLjE2MSIgcj0iMjMuNjEyIi8+CiAgPGNpcmNsZSBjeD0iMzcuMDkzIiBjeT0iNzEuMTYxIiByPSIyMy42MTIiLz4KIDwvZz4KPC9zdmc+Cg==';
2
+ const LOGO = 'data:image/svg+xml;base64,' +
3
+ 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSBDcmVhdGVkIHdpdGgg' +
4
+ 'SW5rc2NhcGUgKGh0dHA6Ly93d3cuaW5rc2NhcGUub3JnLykgLS0+Cjxzdmcgd2lkdGg9IjI1Nm1t' +
5
+ 'IiBoZWlnaHQ9Ijg1bW0iIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDI1NiA4NSIgeG1sbnM9' +
6
+ 'Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KIDxyZWN0IHg9IjguNDk0OSIgeT0iMTQuODQx' +
7
+ 'IiB3aWR0aD0iMjM5LjEzIiBoZWlnaHQ9IjYwLjMzNyIgcnk9IjE0LjM2OSIvPgogPHBhdGggZD0i' +
8
+ 'bTQ5LjUxOSAyLjE5MzMtMjIuODQxIDIyLjg1NC0wLjAxMTkzIDAuMDExOTNhMTYuMTU5IDE2LjE2' +
9
+ 'OCAwIDAgMCAwIDIyLjg2NiAxNi4xNTkgMTYuMTY4IDAgMCAwIDIwLjUzOSAxLjkxODkgMTYuMTU5' +
10
+ 'IDE2LjE2OCAwIDAgMSAwLjAwNDggMC4zOTA1NSAxNi4xNTkgMTYuMTY4IDAgMCAxLTE2LjE1OSAx' +
11
+ 'Ni4xNjloMzYuOTM1YTE2LjE1OSAxNi4xNjggMCAwIDEtMTYuMTU5LTE2LjE2OSAxNi4xNTkgMTYu' +
12
+ 'MTY4IDAgMCAxIDAuMDA1NC0wLjM5MDU1IDE2LjE1OSAxNi4xNjggMCAwIDAgMjAuNTM5LTEuOTE5' +
13
+ 'MyAxNi4xNTkgMTYuMTY4IDAgMCAwLTQuNzZlLTQgLTIyLjg2NnoiIGZpbGw9IiNiYTJiMmIiIHN0' +
14
+ 'cm9rZT0iI2ZmY2Y0MiIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIuNSIv' +
15
+ 'PgogPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZjZjQyIiBzdHJva2Utd2lkdGg9Ii41Ij4KICA8' +
16
+ 'Y2lyY2xlIHRyYW5zZm9ybT0ibWF0cml4KC0uNzA2OSAuNzA3MzEgLS43MDY5IC0uNzA3MzEgMCAw' +
17
+ 'KSIgY3g9Ii0xNy4zMTEiIGN5PSItNjguOTAzIiByPSIxNi4xNjQiLz4KICA8Y2lyY2xlIHRyYW5z' +
18
+ 'Zm9ybT0ibWF0cml4KC0uNzA2OSAuNzA3MzEgLS43MDY5IC0uNzA3MzEgMCAwKSIgY3g9Ii0xLjE0' +
19
+ 'NyIgY3k9Ii01Mi43MzkiIHI9IjE2LjE2NCIvPgogIDxlbGxpcHNlIGN4PSI2Ny45ODYiIGN5PSI1' +
20
+ 'MC4yMzQiIHJ4PSIxNi4xNTkiIHJ5PSIxNi4xNjgiLz4KICA8ZWxsaXBzZSBjeD0iMzEuMDUxIiBj' +
21
+ 'eT0iNTAuMjM0IiByeD0iMTYuMTU5IiByeT0iMTYuMTY4Ii8+CiA8L2c+CiA8ZyBmaWxsPSIjZmZj' +
22
+ 'ZjQyIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iLjUiPgogIDxwYXRoIGQ9Im04OS45MjQg' +
23
+ 'MjEuOTc5djM2LjM3NWgyOC4xMDN2LTE0Ljc3MWgtMTIuMDI5di0yMS42MDR6Ii8+CiAgPHBhdGgg' +
24
+ 'ZD0ibTEyNy45NCAyNC42Nzh2Ny42NjVoNS4wNDUzdjExLjA0NmgtNS4wNDUzdjE0Ljk2NmgyNC43' +
25
+ 'NDh2LTE0Ljk2NmgtNS4wNDh2LTExLjA0Nmg1LjA0OHYtNy42NjVoLTEyLjM3N3oiLz4KICA8cGF0' +
26
+ 'aCBkPSJtMjA2Ljg5IDIyLjA4OHYzNi4zNzVoMzMuNzM5di0xMy4xNzloLTEwLjkwOHYtNS4wNjc4' +
27
+ 'aDEwLjkwOHYtNy4xMDloLTEwLjkwOHYtNS4wNjloMTAuOTA4di01Ljk1MDR6Ii8+CiAgPHBhdGgg' +
28
+ 'ZD0ibTE2Mi43NiAxOS43N3YzOC42OTNoMTIuMjgxdi01LjA2OWgxMS41MjN2NS4wNjloMTIuMjgx' +
29
+ 'czEuMDQ4Mi0xNS4xMTUtMi4yMDEyLTE4Ljc2OGMtMy40NzA0LTMuOTAxOC02LjM3MjMtNC41MjA5' +
30
+ 'LTYuMzcyMy00LjUyMDlsOC44ODQ4LTEzLjA4N2gtMTMuNjE1bC02LjQxMDggMTMuMDIyLTQuMzQy' +
31
+ 'MyAwLjAzNjk4LThlLTMgLTE1LjM3N3oiLz4KICA8ZWxsaXBzZSBjeD0iMTMyLjk5IiBjeT0iMTYu' +
32
+ 'MTIyIiByeD0iNi4wMjIxIiByeT0iNi4xMTgyIi8+CiAgPGVsbGlwc2UgY3g9IjE0Ny40OSIgY3k9' +
33
+ 'IjE2LjEyMiIgcng9IjYuMDIyMSIgcnk9IjYuMTE4MiIvPgogPC9nPgo8L3N2Zz4K';
3
34
  /**
4
35
  * ## Why
5
36
  *
@@ -22,7 +53,7 @@ const LOGO = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0i
22
53
  * like.draw = function () { ... }
23
54
  *
24
55
  * // Set up the start screen
25
- * like.setScene(new StartScreen())
56
+ * like.pushScene(new StartScreen())
26
57
  * like.start();
27
58
  * ```
28
59
  *
@@ -48,13 +79,7 @@ const LOGO = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0i
48
79
  * ```
49
80
  */
50
81
  export class StartScreen {
51
- constructor(next, onDraw) {
52
- Object.defineProperty(this, "next", {
53
- enumerable: true,
54
- configurable: true,
55
- writable: true,
56
- value: next
57
- });
82
+ constructor(onDraw) {
58
83
  Object.defineProperty(this, "onDraw", {
59
84
  enumerable: true,
60
85
  configurable: true,
@@ -76,13 +101,17 @@ export class StartScreen {
76
101
  this.onDraw(like);
77
102
  }
78
103
  else if (this.logo.isReady()) {
79
- like.gfx.clear([0.05, 0.05, 0.08, 1]);
104
+ like.gfx.clear([0.5, 0, 0.5, 1]);
80
105
  const winSize = like.canvas.getSize();
81
106
  const scale = (winSize[0] * 0.5) / this.logo.size[0];
82
- like.gfx.draw(this.logo, Vec2.div(winSize, 2), { scale, origin: Vec2.div(this.logo.size, 2) });
107
+ like.gfx.draw(this.logo, Vec2.div(winSize, 2), {
108
+ scale,
109
+ origin: Vec2.div(this.logo.size, 2),
110
+ });
111
+ like.gfx.print([1, 1, 0, 0.5 + 0.5 * Math.sin(like.timer.getTime() * 3)], "▶️ click to start ◀️", Vec2.mul(winSize, [0.5, 0.8]), { align: "center", font: "25px sans" });
83
112
  }
84
113
  }
85
114
  mousepressed(like) {
86
- like.setScene(this.next);
115
+ like.popScene();
87
116
  }
88
117
  }
package/dist/scene.d.ts CHANGED
@@ -1,8 +1,3 @@
1
- /**
2
- * @module scene
3
- * @description A helpful callback / state management layer, plus utility scenes.
4
- *
5
- */
6
1
  import type { LikeEvent, EventMap } from './events';
7
2
  import type { Like } from './like';
8
3
  /**
@@ -15,18 +10,26 @@ import type { Like } from './like';
15
10
  * - rebind all of the callbacks ourselves
16
11
  * - wrap handleEvent (hint: that's what this does)
17
12
  *
18
- * Also, some no need to pass around a `like` object.
13
+ * Also, no need to pass around a `like` object.
19
14
  * Here, `like` instead piggybacks on a closure that follows around
20
15
  * your running scene and shows up as an additional first argument
21
16
  * to every callback.
22
17
  *
18
+ * ## The scene stack
19
+ *
20
+ * There is a stack of scenes for state management and/or overlays.
21
+ *
22
+ * Use {@link Like.pushScene} and {@link Like.popScene} to manage the stack.
23
+ *
24
+ * {@link like.setScene} Sets the top of the stack only, replacing the current scene if any.
25
+ *
23
26
  * ## Quick Start
24
27
  *
25
28
  * Have a scene handle all the callbacks, disabling global
26
29
  * callbacks.
27
30
  * ```typescript
28
31
  * // set up a scene
29
- * class MagicalGrowingRectangle extends Scene {
32
+ * class MagicalGrowingRectangle implements Scene {
30
33
  * rectangleSize = 10;
31
34
  * constructor() {}
32
35
  *
@@ -40,16 +43,16 @@ import type { Like } from './like';
40
43
  * }
41
44
  * }
42
45
  *
43
- * like.setScene(new MagicalGrowingRectangle());
46
+ * like.pushScene(new MagicalGrowingRectangle(), false);
44
47
  * ```
45
48
  *
46
- * To get back to global callbacks, just use `like.handleEvent = undefined`
49
+ * To get back to global callbacks, just use {@link Like.popScene}
47
50
  *
48
51
  * ## Scene Lifecycle
49
52
  *
50
53
  * Works a lot like global callbacks.
51
54
  *
52
- * 1. `like.setScene(scene)` is called
55
+ * 1. `like.setScene(scene)` or `like.pushScene(scene)` is called
53
56
  * 2. Scene's `load` callback fires immediately
54
57
  * 3. `update` and `draw` begin on next frame
55
58
  * 4. Scene receives input events as they occur
@@ -62,9 +65,9 @@ import type { Like } from './like';
62
65
  *
63
66
  * ```typescript
64
67
  * class UI implements Scene {
65
- * constructor(public game: Game) {}
68
+ * constructor(public game: Scene) {}
66
69
  *
67
- * handleEvent(like: Like, event: Like2DEvent) {
70
+ * handleEvent(like: Like, event: LikeEvent) {
68
71
  * // Block mouse events in order to create a top bar.
69
72
  * const mouseY = like.mouse.getPosition()[1];
70
73
  * if (!event.type.startsWith('mouse') || mouseY > 100) {
@@ -82,11 +85,43 @@ import type { Like } from './like';
82
85
  * ...
83
86
  * }
84
87
  *
85
- * like.setScene(new UI(new Game()))
88
+ * like.pushScene(new UI(new Game()), false)
86
89
  * ```
87
90
  *
88
91
  * Composing scenes lets you filter events, layer game elements,
89
92
  * and more. Don't sleep on it.
93
+ *
94
+ * The main advance of composing scenes versus the stack-overlay
95
+ * technique is that the parent scene knows about its child.
96
+ * Because there's a **known interface**, the two scenes
97
+ * can communicate.
98
+ *
99
+ * This makes it perfect for reusable UI,
100
+ * level editors, debug viewers, and more.
101
+ *
102
+ * ## Overlay scenes
103
+ *
104
+ * You might assume that the purpose of a scene stack is
105
+ * visual: first push the BG, then the FG, etc.
106
+ *
107
+ * Actually, composing scenes (above) is a
108
+ * better pattern for that, since it's both explicit
109
+ * _and_ the parent can have a known interface on its child.
110
+ * Here, the **upper** scene only knows that the
111
+ * **lower** scene _is_ a scene.
112
+ *
113
+ * That's the tradeoff. Overlay scenes are good for things
114
+ * like pause screens or gamepad overlays. Anything where
115
+ * the upper doesn't care _what_ the lower is, and where
116
+ * the upper scene should be easily addable/removable.
117
+ *
118
+ * Using `like.getScene(-2)`, the overlay scene can see
119
+ * the lower scene and choose how to propagate events.
120
+ *
121
+ * The only technical difference between overlay and
122
+ * opaque is whether or not the scene we've pushed
123
+ * on top of stays loaded.
124
+ *
90
125
  */
91
126
  export type Scene = {
92
127
  [K in keyof EventMap]?: (like: Like, ...args: EventMap[K]) => void;
package/dist/scene.js CHANGED
@@ -1,8 +1,3 @@
1
- /**
2
- * @module scene
3
- * @description A helpful callback / state management layer, plus utility scenes.
4
- *
5
- */
6
1
  /**
7
2
  * Used to call a scene's own handlers like `update` or `draw`,
8
3
  * typically at the end of handleEvent
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "like2d",
3
- "version": "2.11.0",
3
+ "version": "2.12.0",
4
4
  "description": "A web-native game framework inspired by Love2D",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -20,7 +20,6 @@
20
20
  "types": "./dist/prefab-scenes/index.d.ts"
21
21
  },
22
22
  "./graphics": {
23
- "import": "./dist/graphics/index.js",
24
23
  "types": "./dist/graphics/index.d.ts"
25
24
  },
26
25
  "./audio": {
@@ -38,6 +37,7 @@
38
37
  },
39
38
  "files": [
40
39
  "dist/**/*",
40
+ "!dist/**/*.ts.map",
41
41
  "assets/**/*",
42
42
  "README.md",
43
43
  "LICENSE"
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=vector2.bench.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vector2.bench.d.ts","sourceRoot":"","sources":["../../src/__benchmarks__/vector2.bench.ts"],"names":[],"mappings":""}
@@ -1,74 +0,0 @@
1
- import { bench, describe } from 'vitest';
2
- import { Vec2 } from '../math/vector2';
3
- const VEC2_COUNT = 10000;
4
- function makeVec2s(count) {
5
- const vec2s = [];
6
- for (let i = 0; i < count; i++) {
7
- vec2s.push([Math.random() * 1000, Math.random() * 1000]);
8
- }
9
- return vec2s;
10
- }
11
- describe('Vector2', () => {
12
- const a = makeVec2s(VEC2_COUNT);
13
- const b = makeVec2s(VEC2_COUNT);
14
- describe('binary operations', () => {
15
- bench('add', () => {
16
- let sum = 0;
17
- for (let i = 0; i < VEC2_COUNT; i++) {
18
- const result = Vec2.add(a[i], b[i]);
19
- sum += result[0];
20
- }
21
- if (sum === -1)
22
- console.log(sum);
23
- });
24
- bench('sub', () => {
25
- let sum = 0;
26
- for (let i = 0; i < VEC2_COUNT; i++) {
27
- const result = Vec2.sub(a[i], b[i]);
28
- sum += result[0];
29
- }
30
- if (sum === -1)
31
- console.log(sum);
32
- });
33
- bench('mul', () => {
34
- let sum = 0;
35
- for (let i = 0; i < VEC2_COUNT; i++) {
36
- const result = Vec2.mul(a[i], b[i]);
37
- sum += result[0];
38
- }
39
- if (sum === -1)
40
- console.log(sum);
41
- });
42
- bench('div', () => {
43
- let sum = 0;
44
- for (let i = 0; i < VEC2_COUNT; i++) {
45
- const result = Vec2.div(a[i], b[i]);
46
- sum += result[0];
47
- }
48
- if (sum === -1)
49
- console.log(sum);
50
- });
51
- bench('dot', () => {
52
- let sum = 0;
53
- for (let i = 0; i < VEC2_COUNT; i++) {
54
- const result = Vec2.dot(a[i], b[i]);
55
- sum += result;
56
- }
57
- if (sum === -1)
58
- console.log(sum);
59
- });
60
- bench('chained ops (add, sub, mul, div, dot)', () => {
61
- let sum = 0;
62
- for (let i = 0; i < VEC2_COUNT; i++) {
63
- const r1 = Vec2.add(a[i], b[i]);
64
- const r2 = Vec2.sub(r1, a[i]);
65
- const r3 = Vec2.mul(r2, 2);
66
- const r4 = Vec2.div(r3, b[i]);
67
- const result = Vec2.dot(r4, a[i]);
68
- sum += result;
69
- }
70
- if (sum === -1)
71
- console.log(sum);
72
- });
73
- });
74
- });
@@ -1 +0,0 @@
1
- {"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../../src/audio/audio.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,qDAAqD;AACrD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAA;AAMD;;;;;;GAMG;AACH,qBAAa,WAAW;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,6IAA6I;IAC7I,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,oCAAoC;IACpC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC/C,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,CAAC,SAAS,CAAoE;IACrF,OAAO,CAAC,QAAQ,CAAQ;gBAEZ,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,GAAE,kBAAuB;IAmC3E,OAAO,IAAI,OAAO;IAIlB,IAAI,IAAI,IAAI;IAUZ,IAAI,IAAI,IAAI;IAUZ,KAAK,IAAI,IAAI;IAQb,MAAM,IAAI,IAAI;IAYd,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQ5B,IAAI,IAAI,MAAM;IAKd,SAAS,IAAI,OAAO;IAKpB,QAAQ,IAAI,OAAO;IAKnB,SAAS,IAAI,OAAO;IAKpB,+FAA+F;IAC/F,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK/B,SAAS,IAAI,MAAM;IAInB,WAAW,IAAI,MAAM;CAItB;AAED;;;;;;;GAOG;AACH,qBAAa,KAAK;IAChB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,YAAY,CAAK;IAEzB;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,WAAW;IAMlE;;;QAGI;IACJ,aAAa,IAAI,WAAW,EAAE;IAS9B,OAAO,IAAI,IAAI;IAIf,QAAQ,IAAI,IAAI;IAIhB,SAAS,IAAI,IAAI;IAIjB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAO/B,SAAS,IAAI,MAAM;IAInB,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW;CAGxC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/audio/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,KAAK,EAAa,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC9F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAInC,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;AACrD,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,QAAQ,IAAI;IAClD,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACzB,CAAA;AAED;;;GAGG;AACH,qBAAa,MAAM;IAaL,OAAO,CAAC,SAAS;IAZ7B;4BACwB;IACxB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,KAAK,CAAyB;IAEtC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;gBAEA,SAAS,EAAE,WAAW;IAqD1C,OAAO,CAAC,QAAQ;IAShB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4B5B;;OAEG;IACH,OAAO,IAAI,IAAI;CAIhB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../src/graphics/canvas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAQ,SAAS,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAQ,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,MAAM,iBAAiB,GAAG;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE,CAAC;AACxD,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE5C,qBAAa,MAAM;IAUX,mDAAmD;IACnD,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,KAAK;IAZjB;;;MAGE;IACF,OAAO,CAAC,YAAY,CAAoB;IAExC,OAAO,CAAC,eAAe,CAAU;;IAG7B,mDAAmD;IAC3C,aAAa,EAAE,iBAAiB,EAChC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,EAC9B,KAAK,EAAE,WAAW;IAoE9B,wCAAwC;IACxC,OAAO,IAAI;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,iBAAiB,CAAA;KAAE;IAStD;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,GAAE,OAAO,CAAC,iBAAiB,CAAM;IA6BhE,8CAA8C;IAC9C,OAAO,IAAI,OAAO;IAIlB,OAAO,CAAC,cAAc;IAWtB,wCAAwC;IACxC,OAAO,IAAI,SAAS;IAIpB,uDAAuD;IACvD,OAAO,CAAC,mBAAmB;IAO3B,yBAAyB;IACzB,aAAa,IAAI,OAAO;IAIxB,sBAAsB;IACtB,aAAa,CAAC,UAAU,EAAE,OAAO;IAWjC;;;OAGG;IACH,OAAO,CAAC,OAAO;IAmBf,qDAAqD;IACrD,OAAO,CAAC,QAAQ;IA2BhB,qCAAqC;IACzC,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO;IAU1E,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO;CAG/D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"graphics.d.ts","sourceRoot":"","sources":["../../src/graphics/graphics.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/graphics/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACV,KAAK,EACL,QAAQ,EACR,UAAU,EACV,SAAS,EACT,UAAU,EACV,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,YAAY,EACV,iBAAiB,EACjB,UAAU,EACV,MAAM,GACP,MAAM,UAAU,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,YAAY,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AACzD,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE/D;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,CAGvD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"gamepad-mapping.d.ts","sourceRoot":"","sources":["../../src/input/gamepad-mapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;;;GAMG;AACH,QAAA,MAAM,SAAS;;kBACgB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoB3B,CAAC;AAUX,MAAM,MAAM,UAAU,GAClB,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAClC,SAAS,MAAM,EAAE,GACjB,OAAO,MAAM,GAAG,GAChB,OAAO,MAAM,GAAG,CAAC;AAIrB,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AACvD,MAAM,MAAM,YAAY,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;AAChE,MAAM,MAAM,gBAAgB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAElE,eAAO,MAAM,cAAc,GAAI,YAAY,MAAM,KAAG,cAQlD,CAAC;AAEH,eAAO,MAAM,qBAAqB,QAAO,aAC0B,CAAC;AACpE,eAAO,MAAM,UAAU,aAAqD,CAAC;AAC7E,eAAO,MAAM,cAAc,qfAE1B,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,IAAI,OAAO,EAAE,SAAS,YAAY,KAAG,OAK7D,CAAC;AAkBF,KAAK,UAAU,GAAG;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAwBtE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"gamepad.d.ts","sourceRoot":"","sources":["../../src/input/gamepad.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,cAAc,EAAiB,UAAU,EAAmC,MAAM,mBAAmB,CAAC;AAC/I,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,gCAAgC;AAChC,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,KAAK,CAAC;AAE3C;;;;;;;;;;GAUG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,eAAe,CAAQ;gBAEnB,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC;IAmChD,OAAO,CAAC,kBAAkB;IAgC1B;;OAEG;IACH,OAAO,CAAC,MAAM;IAId;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE;IAQpC,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;IAIxC,OAAO,CAAC,WAAW;IAYnB,yCAAyC;IACzC,MAAM,CACJ,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,UAAU,GAAG,MAAM,GAC1B,OAAO,GAAG,SAAS;IAItB;;;OAGG;IACH,WAAW,CACT,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,UAAU,GAAG,MAAM,GAC1B,OAAO,GAAG,SAAS;IAItB;;;;OAIG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIrD;;;;OAIG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,UAAO;IAU9D;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAYtD;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc;IASlD;;;;;;;OAOG;IACH,qBAAqB,CAAC,MAAM,EAAE,OAAO;CAGtC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/input/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,KAAK,EACL,SAAS,EACT,YAAY,GACb,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,aAAa,EACb,OAAO,GACR,MAAM,WAAW,CAAA;AAElB,YAAY,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/D,YAAY,EACV,YAAY,EACZ,KAAK,GACN,MAAM,SAAS,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/input/input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAc,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEpD,MAAM,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAC7C,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAEpE,qBAAa,KAAK;IASd,OAAO,CAAC,QAAQ;IARlB,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,OAAO,CAAU;gBAGf,QAAQ,EAAE,UAAU,CAAC,eAAe,GAAG,gBAAgB,CAAC,EAChE,IAAI,EAAE;QACJ,QAAQ,EAAE,QAAQ,CAAC;QACnB,KAAK,EAAE,KAAK,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;KAClB;IAOH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,CAAC,MAAM,GAAG,YAAY,CAAC,EAAO,GAAG,IAAI;IAUvE;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM;IAM3D;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE;IAIhD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAM/B,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIpC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIrC,MAAM;IAgBN,OAAO,CAAC,eAAe;CAaxB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../../src/input/keyboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,KAAK,MAAM,GAAG,YAAY,GAAG,aAAa,CAAC;AAE3C,qBAAa,QAAQ;IACnB,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,QAAQ,CAAqB;gBAEzB,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC;IAUtC,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,UAAU;IAIlB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIjC,SAAS,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO;CAG3C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"mouse.d.ts","sourceRoot":"","sources":["../../src/input/mouse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,KAAK,WAAW,EAAmB,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAQxC,KAAK,SAAS,GACV;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAElE;;GAEG;AACH,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,GAAG,CAAmB;IAC9B,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,OAAO,CAA0B;IACzC;;OAEG;IACH,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,MAAM,CAAoB;IAIlC,OAAO,CAAC,UAAU,CAAsD;IACxE,OAAO,CAAC,YAAY,CAAgF;IACpG,OAAO,CAAC,UAAU,CAAS;gBAEf,KAAK,EAAE,WAAW,CAAC,cAAc,CAAC;IAwC9C,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,WAAW;IAMnB,oDAAoD;IACpD,WAAW,IAAI,OAAO;IAItB,uEAAuE;IACvE,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IAIpC,kCAAkC;IAClC,iBAAiB,IAAI,GAAG,CAAC,WAAW,CAAC;IAIrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,OAAO,CAAC,IAAI,EAAE,YAAY;IAgB1B,OAAO,IAAI,SAAS;IAIpB;;;OAGG;IACH,cAAc,CAAC,GAAG,EAAE,OAAO;IAQ3B;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,OAAO;IAUzB;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC;CACzB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"like.d.ts","sourceRoot":"","sources":["../src/like.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;AAE9D,KAAK,QAAQ,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AAEpE,KAAK,SAAS,GAAG;KACd,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;CAC/B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,IAAI,GAAG,SAAS,GAAG;IAC7B,6FAA6F;IAC7F,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,sFAAsF;IACtF,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,6CAA6C;IAC7C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,gFAAgF;IAChF,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,8GAA8G;IAC9G,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,2FAA2F;IAC3F,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAEvB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC;IAEjB;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;OAGG;IACH,OAAO,IAAI,IAAI,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAE9B;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,EAAE,oBAAoB,CAAC;IAEnC;;;;OAIG;IACH,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;CACzC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/math/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,kDAAkD;AAClD,eAAO,MAAM,GAAG,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,WAAsB,CAAC;AAE/D,OAAO,EAAE,KAAK,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,KAAK,SAAS,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC"}