like2d 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +67 -43
  3. package/dist/adapters/callback/index.d.ts +43 -0
  4. package/dist/adapters/callback/index.d.ts.map +1 -0
  5. package/dist/adapters/callback/index.js +80 -0
  6. package/dist/adapters/scene/index.d.ts +42 -0
  7. package/dist/adapters/scene/index.d.ts.map +1 -0
  8. package/dist/adapters/scene/index.js +112 -0
  9. package/dist/adapters/scene/scene.d.ts +18 -0
  10. package/dist/adapters/scene/scene.d.ts.map +1 -0
  11. package/dist/adapters/scene/startup-scene.d.ts +17 -0
  12. package/dist/adapters/scene/startup-scene.d.ts.map +1 -0
  13. package/dist/adapters/scene/startup-scene.js +41 -0
  14. package/dist/core/audio.d.ts +61 -0
  15. package/dist/core/audio.d.ts.map +1 -0
  16. package/dist/core/audio.js +226 -0
  17. package/dist/core/canvas-config.d.ts +22 -0
  18. package/dist/core/canvas-config.d.ts.map +1 -0
  19. package/dist/core/canvas-config.js +14 -0
  20. package/dist/core/canvas-manager.d.ts +26 -0
  21. package/dist/core/canvas-manager.d.ts.map +1 -0
  22. package/dist/core/canvas-manager.js +197 -0
  23. package/dist/core/events.d.ts +52 -0
  24. package/dist/core/events.d.ts.map +1 -0
  25. package/dist/core/gamepad-button-map.d.ts.map +1 -0
  26. package/dist/core/gamepad-buttons.d.ts +23 -0
  27. package/dist/core/gamepad-buttons.d.ts.map +1 -0
  28. package/dist/core/gamepad-buttons.js +36 -0
  29. package/dist/core/gamepad-db.d.ts.map +1 -0
  30. package/dist/{gamepad-mapping.d.ts → core/gamepad-mapping.d.ts} +3 -15
  31. package/dist/core/gamepad-mapping.d.ts.map +1 -0
  32. package/dist/core/gamepad-mapping.js +223 -0
  33. package/dist/{gamepad.d.ts → core/gamepad.d.ts} +22 -17
  34. package/dist/core/gamepad.d.ts.map +1 -0
  35. package/dist/{gamepad.js → core/gamepad.js} +91 -70
  36. package/dist/{graphics.d.ts → core/graphics.d.ts} +2 -8
  37. package/dist/core/graphics.d.ts.map +1 -0
  38. package/dist/{graphics.js → core/graphics.js} +4 -41
  39. package/dist/core/input-state.d.ts.map +1 -0
  40. package/dist/{input.d.ts → core/input.d.ts} +11 -14
  41. package/dist/core/input.d.ts.map +1 -0
  42. package/dist/{input.js → core/input.js} +31 -41
  43. package/dist/core/keyboard.d.ts +15 -0
  44. package/dist/core/keyboard.d.ts.map +1 -0
  45. package/dist/core/keyboard.js +70 -0
  46. package/dist/core/mouse.d.ts +29 -0
  47. package/dist/core/mouse.d.ts.map +1 -0
  48. package/dist/core/mouse.js +130 -0
  49. package/dist/{rect.d.ts → core/rect.d.ts} +1 -2
  50. package/dist/core/rect.d.ts.map +1 -0
  51. package/dist/{rect.js → core/rect.js} +24 -28
  52. package/dist/{timer.d.ts → core/timer.d.ts} +0 -1
  53. package/dist/core/timer.d.ts.map +1 -0
  54. package/dist/{timer.js → core/timer.js} +0 -1
  55. package/dist/{vector2.d.ts → core/vector2.d.ts} +4 -10
  56. package/dist/core/vector2.d.ts.map +1 -0
  57. package/dist/{vector2.js → core/vector2.js} +40 -40
  58. package/dist/engine.d.ts +42 -0
  59. package/dist/engine.d.ts.map +1 -0
  60. package/dist/engine.js +154 -0
  61. package/dist/index.d.ts +38 -44
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +24 -250
  64. package/package.json +8 -23
  65. package/dist/audio.d.ts +0 -52
  66. package/dist/audio.d.ts.map +0 -1
  67. package/dist/audio.js +0 -250
  68. package/dist/events.d.ts +0 -36
  69. package/dist/events.d.ts.map +0 -1
  70. package/dist/gamepad-button-map.d.ts.map +0 -1
  71. package/dist/gamepad-db.d.ts.map +0 -1
  72. package/dist/gamepad-mapping.d.ts.map +0 -1
  73. package/dist/gamepad-mapping.js +0 -191
  74. package/dist/gamepad.d.ts.map +0 -1
  75. package/dist/graphics.d.ts.map +0 -1
  76. package/dist/input-state.d.ts.map +0 -1
  77. package/dist/input.d.ts.map +0 -1
  78. package/dist/keyboard.d.ts +0 -9
  79. package/dist/keyboard.d.ts.map +0 -1
  80. package/dist/keyboard.js +0 -33
  81. package/dist/mouse.d.ts +0 -20
  82. package/dist/mouse.d.ts.map +0 -1
  83. package/dist/mouse.js +0 -84
  84. package/dist/rect.d.ts.map +0 -1
  85. package/dist/scene.d.ts +0 -10
  86. package/dist/scene.d.ts.map +0 -1
  87. package/dist/timer.d.ts.map +0 -1
  88. package/dist/vector2.d.ts.map +0 -1
  89. /package/dist/{scene.js → adapters/scene/scene.js} +0 -0
  90. /package/dist/{events.js → core/events.js} +0 -0
  91. /package/dist/{gamepad-button-map.d.ts → core/gamepad-button-map.d.ts} +0 -0
  92. /package/dist/{gamepad-button-map.js → core/gamepad-button-map.js} +0 -0
  93. /package/dist/{gamepad-db.d.ts → core/gamepad-db.d.ts} +0 -0
  94. /package/dist/{gamepad-db.js → core/gamepad-db.js} +0 -0
  95. /package/dist/{input-state.d.ts → core/input-state.d.ts} +0 -0
  96. /package/dist/{input-state.js → core/input-state.js} +0 -0
@@ -1,191 +0,0 @@
1
- // Gamepad button mapping layer
2
- // Bridges SDL database mappings with our internal button naming system
3
- import { gamepadDatabase } from './gamepad-db';
4
- import { getButtonIndex } from './gamepad-button-map';
5
- // Map SDL button names to our internal button names
6
- const SDL_TO_INTERNAL_BUTTON = {
7
- // Face buttons
8
- 'a': 'ButtonBottom',
9
- 'b': 'ButtonRight',
10
- 'x': 'ButtonLeft',
11
- 'y': 'ButtonTop',
12
- // Bumpers and triggers
13
- 'leftshoulder': 'LB',
14
- 'rightshoulder': 'RB',
15
- 'lefttrigger': 'LT',
16
- 'righttrigger': 'RT',
17
- // Menu buttons
18
- 'back': 'Back',
19
- 'start': 'Start',
20
- 'guide': 'Guide',
21
- // Stick presses
22
- 'leftstick': 'LS',
23
- 'rightstick': 'RS',
24
- // D-Pad
25
- 'dpup': 'DPadUp',
26
- 'dpdown': 'DPadDown',
27
- 'dpleft': 'DPadLeft',
28
- 'dpright': 'DPadRight',
29
- // Misc buttons
30
- 'misc1': 'Misc1',
31
- 'misc2': 'Misc2',
32
- 'paddle1': 'Paddle1',
33
- 'paddle2': 'Paddle2',
34
- 'paddle3': 'Paddle3',
35
- 'paddle4': 'Paddle4',
36
- 'touchpad': 'Touchpad',
37
- };
38
- export class GamepadMapping {
39
- constructor() {
40
- Object.defineProperty(this, "mappings", {
41
- enumerable: true,
42
- configurable: true,
43
- writable: true,
44
- value: new Map()
45
- });
46
- Object.defineProperty(this, "dbLoaded", {
47
- enumerable: true,
48
- configurable: true,
49
- writable: true,
50
- value: false
51
- });
52
- }
53
- async loadDatabase() {
54
- if (this.dbLoaded)
55
- return;
56
- const sources = ['/like/gamecontrollerdb.txt', './gamecontrollerdb.txt'];
57
- for (const src of sources) {
58
- try {
59
- const res = await fetch(src);
60
- if (res.ok) {
61
- gamepadDatabase.load(await res.text());
62
- this.dbLoaded = true;
63
- break;
64
- }
65
- }
66
- catch { }
67
- }
68
- if (!this.dbLoaded) {
69
- try {
70
- // @ts-ignore - Vite handles ?raw imports
71
- const module = await import('./gamecontrollerdb.txt?raw');
72
- if (typeof module.default === 'string') {
73
- gamepadDatabase.load(module.default);
74
- this.dbLoaded = true;
75
- }
76
- }
77
- catch { }
78
- }
79
- if (this.dbLoaded) {
80
- console.log(`[Gamepad] Loaded ${gamepadDatabase.getMappingCount()} controller mappings`);
81
- }
82
- }
83
- /**
84
- * Load database from raw text content
85
- */
86
- loadDatabaseFromText(content) {
87
- gamepadDatabase.load(content);
88
- this.dbLoaded = true;
89
- }
90
- /**
91
- * Get or create a button mapping for a specific gamepad
92
- */
93
- getMapping(gamepad) {
94
- // Use the gamepad's id as a key (this contains the GUID in most browsers)
95
- const key = `${gamepad.id}_${gamepad.index}`;
96
- if (this.mappings.has(key)) {
97
- return this.mappings.get(key);
98
- }
99
- const mapping = this.createMapping(gamepad);
100
- this.mappings.set(key, mapping);
101
- return mapping;
102
- }
103
- /**
104
- * Clear all cached mappings
105
- */
106
- clear() {
107
- this.mappings.clear();
108
- }
109
- /**
110
- * Create a new button mapping for a gamepad
111
- */
112
- createMapping(gamepad) {
113
- const toStandard = new Map();
114
- const fromStandard = new Map();
115
- // If browser provides "standard" mapping, trust it - don't override with DB
116
- if (gamepad.mapping === 'standard') {
117
- for (let i = 0; i < gamepad.buttons.length; i++) {
118
- toStandard.set(i, i);
119
- fromStandard.set(i, i);
120
- }
121
- return {
122
- toStandard,
123
- fromStandard,
124
- controllerName: gamepad.id,
125
- hasMapping: true,
126
- };
127
- }
128
- // Try to find a mapping in the database
129
- const dbMapping = this.findDatabaseMapping(gamepad);
130
- if (dbMapping) {
131
- for (const [sdlButton, controllerButtonIndex] of dbMapping.buttons) {
132
- const internalName = SDL_TO_INTERNAL_BUTTON[sdlButton];
133
- if (internalName) {
134
- const standardIndex = getButtonIndex(internalName);
135
- if (standardIndex !== undefined) {
136
- toStandard.set(controllerButtonIndex, standardIndex);
137
- fromStandard.set(standardIndex, controllerButtonIndex);
138
- }
139
- }
140
- }
141
- return {
142
- toStandard,
143
- fromStandard,
144
- controllerName: dbMapping.name,
145
- hasMapping: true,
146
- };
147
- }
148
- // No database mapping found - use default layout
149
- for (let i = 0; i < gamepad.buttons.length; i++) {
150
- toStandard.set(i, i);
151
- fromStandard.set(i, i);
152
- }
153
- return {
154
- toStandard,
155
- fromStandard,
156
- controllerName: gamepad.id,
157
- hasMapping: false,
158
- };
159
- }
160
- findDatabaseMapping(gamepad) {
161
- if (!this.dbLoaded)
162
- return undefined;
163
- const vp = this.extractVendorProduct(gamepad);
164
- if (vp) {
165
- return gamepadDatabase.getMappingByVendorProduct(vp.vendor, vp.product);
166
- }
167
- return undefined;
168
- }
169
- extractVendorProduct(gamepad) {
170
- const id = gamepad.id;
171
- const vendorProductMatch = id.match(/Vendor:\s*([0-9a-fA-F]+)\s+Product:\s*([0-9a-fA-F]+)/i);
172
- if (vendorProductMatch) {
173
- const vendor = parseInt(vendorProductMatch[1], 16);
174
- const product = parseInt(vendorProductMatch[2], 16);
175
- if (!isNaN(vendor) && !isNaN(product)) {
176
- return { vendor, product };
177
- }
178
- }
179
- const hexMatch = id.match(/^([0-9a-fA-F]{4})[\s-]+([0-9a-fA-F]{4})/);
180
- if (hexMatch) {
181
- const vendor = parseInt(hexMatch[1], 16);
182
- const product = parseInt(hexMatch[2], 16);
183
- if (!isNaN(vendor) && !isNaN(product)) {
184
- return { vendor, product };
185
- }
186
- }
187
- return null;
188
- }
189
- }
190
- // Singleton instance
191
- export const gamepadMapping = new GamepadMapping();
@@ -1 +0,0 @@
1
- {"version":3,"file":"gamepad.d.ts","sourceRoot":"","sources":["../src/gamepad.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,EAAkB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC;AAEzC,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAkBD,qBAAa,OAAO;IAClB,OAAO,CAAC,cAAc,CAAgD;IACtE,OAAO,CAAC,iBAAiB,CAAyC;IAClE,OAAO,CAAC,cAAc,CAAoC;;IAMpD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,OAAO,CAAC,oBAAoB;IAwB5B,OAAO,CAAC,mBAAmB;IA6B3B,MAAM,IAAI;QAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;QAAC,QAAQ,EAAE,kBAAkB,EAAE,CAAA;KAAE;IA0D3E,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAI1C;;;OAGG;IACH,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAOpE,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IASnD,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAKpD,oBAAoB,IAAI,MAAM,EAAE;IAIhC;;OAEG;IACH,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS;IAIhE;;OAEG;IACH,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIjE;;OAEG;IACH,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAKzC;;OAEG;IACH,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAK3D,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAMxD,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa;IAMjD,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa;CAKnD;AAED,eAAO,MAAM,OAAO,SAAgB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"graphics.d.ts","sourceRoot":"","sources":["../src/graphics.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-state.d.ts","sourceRoot":"","sources":["../src/input-state.ts"],"names":[],"mappings":"AAAA,qBAAa,iBAAiB,CAAC,CAAC;IAC9B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,SAAS,CAAgB;IAEjC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG;QAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QAAC,YAAY,EAAE,CAAC,EAAE,CAAA;KAAE;IAuBpE,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAIvB,WAAW,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAI5B,YAAY,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAI7B,eAAe,IAAI,GAAG,CAAC,CAAC,CAAC;IAIzB,KAAK,IAAI,IAAI;CAId"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;AAEzD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAaD,qBAAa,KAAK;IAChB,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,kBAAkB,CAAmC;IAE7D,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAK3C,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK3B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAO/B,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIpC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIrC,MAAM,IAAI;QACR,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,cAAc,EAAE,KAAK,CAAC;YAAE,YAAY,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACjH,eAAe,EAAE,KAAK,CAAC;YAAE,YAAY,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACnH;IAqBD,OAAO,CAAC,UAAU;IA8BlB,OAAO,CAAC,eAAe;IA6BvB,KAAK,IAAI,IAAI;CAId;AAED,eAAO,MAAM,KAAK,OAAc,CAAC"}
@@ -1,9 +0,0 @@
1
- export declare class Keyboard {
2
- private pressedScancodes;
3
- constructor();
4
- private setupEventListeners;
5
- isDown(scancode: string): boolean;
6
- isAnyDown(...scancodes: string[]): boolean;
7
- }
8
- export declare const keyboard: Keyboard;
9
- //# sourceMappingURL=keyboard.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../src/keyboard.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAQ;IACnB,OAAO,CAAC,gBAAgB,CAAqB;;IAM7C,OAAO,CAAC,mBAAmB;IAkB3B,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIjC,SAAS,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO;CAG3C;AAED,eAAO,MAAM,QAAQ,UAAiB,CAAC"}
package/dist/keyboard.js DELETED
@@ -1,33 +0,0 @@
1
- export class Keyboard {
2
- constructor() {
3
- Object.defineProperty(this, "pressedScancodes", {
4
- enumerable: true,
5
- configurable: true,
6
- writable: true,
7
- value: new Set()
8
- });
9
- this.setupEventListeners();
10
- }
11
- setupEventListeners() {
12
- window.addEventListener('keydown', (e) => {
13
- if (e.code) {
14
- this.pressedScancodes.add(e.code);
15
- }
16
- });
17
- window.addEventListener('keyup', (e) => {
18
- if (e.code) {
19
- this.pressedScancodes.delete(e.code);
20
- }
21
- });
22
- window.addEventListener('blur', () => {
23
- this.pressedScancodes.clear();
24
- });
25
- }
26
- isDown(scancode) {
27
- return this.pressedScancodes.has(scancode);
28
- }
29
- isAnyDown(...scancodes) {
30
- return scancodes.some(code => this.pressedScancodes.has(code));
31
- }
32
- }
33
- export const keyboard = new Keyboard();
package/dist/mouse.d.ts DELETED
@@ -1,20 +0,0 @@
1
- import type { Vector2 } from './vector2';
2
- export declare class Mouse {
3
- private x;
4
- private y;
5
- private buttons;
6
- private canvas;
7
- constructor();
8
- setCanvas(canvas: HTMLCanvasElement): void;
9
- private setupEventListeners;
10
- getPosition(): Vector2;
11
- getX(): number;
12
- getY(): number;
13
- isDown(button: number): boolean;
14
- getPressedButtons(): Set<number>;
15
- isVisible(): boolean;
16
- setVisible(visible: boolean): void;
17
- getRelativeMode(): boolean;
18
- }
19
- export declare const mouse: Mouse;
20
- //# sourceMappingURL=mouse.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mouse.d.ts","sourceRoot":"","sources":["../src/mouse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,qBAAa,KAAK;IAChB,OAAO,CAAC,CAAC,CAAK;IACd,OAAO,CAAC,CAAC,CAAK;IACd,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,MAAM,CAAkC;;IAMhD,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAI1C,OAAO,CAAC,mBAAmB;IAyB3B,WAAW,IAAI,OAAO;IAItB,IAAI,IAAI,MAAM;IAId,IAAI,IAAI,MAAM;IAId,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAI/B,iBAAiB,IAAI,GAAG,CAAC,MAAM,CAAC;IAIhC,SAAS,IAAI,OAAO;IAIpB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQlC,eAAe,IAAI,OAAO;CAG3B;AAED,eAAO,MAAM,KAAK,OAAc,CAAC"}
package/dist/mouse.js DELETED
@@ -1,84 +0,0 @@
1
- export class Mouse {
2
- constructor() {
3
- Object.defineProperty(this, "x", {
4
- enumerable: true,
5
- configurable: true,
6
- writable: true,
7
- value: 0
8
- });
9
- Object.defineProperty(this, "y", {
10
- enumerable: true,
11
- configurable: true,
12
- writable: true,
13
- value: 0
14
- });
15
- Object.defineProperty(this, "buttons", {
16
- enumerable: true,
17
- configurable: true,
18
- writable: true,
19
- value: new Set()
20
- });
21
- Object.defineProperty(this, "canvas", {
22
- enumerable: true,
23
- configurable: true,
24
- writable: true,
25
- value: null
26
- });
27
- this.setupEventListeners();
28
- }
29
- setCanvas(canvas) {
30
- this.canvas = canvas;
31
- }
32
- setupEventListeners() {
33
- window.addEventListener('mousemove', (e) => {
34
- if (this.canvas) {
35
- const rect = this.canvas.getBoundingClientRect();
36
- this.x = e.clientX - rect.left;
37
- this.y = e.clientY - rect.top;
38
- }
39
- else {
40
- this.x = e.clientX;
41
- this.y = e.clientY;
42
- }
43
- });
44
- window.addEventListener('mousedown', (e) => {
45
- this.buttons.add(e.button + 1);
46
- });
47
- window.addEventListener('mouseup', (e) => {
48
- this.buttons.delete(e.button + 1);
49
- });
50
- window.addEventListener('blur', () => {
51
- this.buttons.clear();
52
- });
53
- }
54
- getPosition() {
55
- return [this.x, this.y];
56
- }
57
- getX() {
58
- return this.x;
59
- }
60
- getY() {
61
- return this.y;
62
- }
63
- isDown(button) {
64
- return this.buttons.has(button);
65
- }
66
- getPressedButtons() {
67
- return new Set(this.buttons);
68
- }
69
- isVisible() {
70
- return document.pointerLockElement === null;
71
- }
72
- setVisible(visible) {
73
- if (!visible && this.canvas) {
74
- this.canvas.requestPointerLock();
75
- }
76
- else if (visible && document.pointerLockElement === this.canvas) {
77
- document.exitPointerLock();
78
- }
79
- }
80
- getRelativeMode() {
81
- return document.pointerLockElement !== null;
82
- }
83
- }
84
- export const mouse = new Mouse();
@@ -1 +0,0 @@
1
- {"version":3,"file":"rect.d.ts","sourceRoot":"","sources":["../src/rect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEpD,yBAAiB,CAAC,CAAC;IACjB,SAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAEvE;IAED,SAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,IAAI,CAMvD;IAED,SAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAO/D;IAED,SAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAEzC;IAED,SAAgB,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAErC;IAED,SAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAEvC;IAED,SAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAExC;IAED,SAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAEzC;IAED,SAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAE3C;IAED,SAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAE5C;IAED,SAAgB,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAEpC;IAED,SAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAExC;IAED,SAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAO9D;IAED,SAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,CAO1D;IAED,SAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,CAOxD;IAED,SAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,CAWvD;IAED,SAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,CAMhD;IAED,SAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAOrD;IAED,SAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAEpD;IAED,SAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAEvD;IAED,SAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAEpD;IAED,SAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAOxD;CACF"}
package/dist/scene.d.ts DELETED
@@ -1,10 +0,0 @@
1
- import type { Event } from './events';
2
- export interface Scene {
3
- width: number;
4
- height: number;
5
- load?: () => void;
6
- update: (dt: number) => void;
7
- draw: () => void;
8
- handleEvent?: (event: Event) => void;
9
- }
10
- //# sourceMappingURL=scene.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../src/scene.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACtC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"timer.d.ts","sourceRoot":"","sources":["../src/timer.ts"],"names":[],"mappings":"AAAA,qBAAa,KAAK;IAChB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,GAAG,CAAK;IAChB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,cAAc,CAAK;IAE3B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAaxB,cAAc,IAAI,IAAI;IAItB,QAAQ,IAAI,MAAM;IAIlB,MAAM,IAAI,MAAM;IAIhB,OAAO,IAAI,MAAM;IAIjB,YAAY,IAAI,MAAM;IAItB,UAAU,IAAI,OAAO;IAUrB,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;CAG9B;AAED,eAAO,MAAM,KAAK,OAAc,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"vector2.d.ts","sourceRoot":"","sources":["../src/vector2.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEvC,yBAAiB,EAAE,CAAC;IAClB,SAAgB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAEnD;IAED,SAAgB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAEnD;IAED,SAAgB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAElD;IAED,SAAgB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAElD;IAED,SAAgB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAElD;IAED,SAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAEpD;IAED,SAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAE3C;IAED,SAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAEzC;IAED,SAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAI7C;IAED,SAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAEvD;IAED,SAAgB,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAE/D;IAED,SAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAExC;IAED,SAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAIzD;IAED,SAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAEjD;IAED,SAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAE1C;IAED,SAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAEzC;IAED,SAAgB,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAExC;IAED,SAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAEzC;IAED,SAAgB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAEnD;IAED,SAAgB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAEnD;IAED,SAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAKrE;IAED,SAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAU,GAAG,OAAO,CAEjE;IAEM,MAAM,IAAI,EAAE,OAAgB,CAAC;IAC7B,MAAM,GAAG,EAAE,OAAgB,CAAC;IAC5B,MAAM,EAAE,EAAE,OAAiB,CAAC;IAC5B,MAAM,IAAI,EAAE,OAAgB,CAAC;IAC7B,MAAM,IAAI,EAAE,OAAiB,CAAC;IAC9B,MAAM,KAAK,EAAE,OAAgB,CAAC;CACtC"}
File without changes
File without changes
File without changes
File without changes
File without changes