@react-text-game/core 0.1.2 → 0.2.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 (54) hide show
  1. package/README.md +68 -22
  2. package/dist/game.d.ts +1 -1
  3. package/dist/game.d.ts.map +1 -1
  4. package/dist/game.js.map +1 -1
  5. package/dist/{baseGameObject.d.ts → gameObjects/baseGameObject.d.ts} +1 -1
  6. package/dist/gameObjects/baseGameObject.d.ts.map +1 -0
  7. package/dist/{baseGameObject.js → gameObjects/baseGameObject.js} +2 -2
  8. package/dist/gameObjects/baseGameObject.js.map +1 -0
  9. package/dist/gameObjects/fabric.d.ts +19 -0
  10. package/dist/gameObjects/fabric.d.ts.map +1 -0
  11. package/dist/gameObjects/fabric.js +18 -0
  12. package/dist/gameObjects/fabric.js.map +1 -0
  13. package/dist/gameObjects/index.d.ts +4 -0
  14. package/dist/gameObjects/index.d.ts.map +1 -0
  15. package/dist/gameObjects/index.js +4 -0
  16. package/dist/gameObjects/index.js.map +1 -0
  17. package/dist/gameObjects/simpleObject.d.ts +62 -0
  18. package/dist/gameObjects/simpleObject.d.ts.map +1 -0
  19. package/dist/gameObjects/simpleObject.js +98 -0
  20. package/dist/gameObjects/simpleObject.js.map +1 -0
  21. package/dist/hooks/useGameEntity.d.ts +1 -1
  22. package/dist/hooks/useGameEntity.d.ts.map +1 -1
  23. package/dist/hooks/useGameEntity.js.map +1 -1
  24. package/dist/index.d.ts +5 -2
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +2 -2
  27. package/dist/index.js.map +1 -1
  28. package/dist/tests/game.test.js +4 -68
  29. package/dist/tests/game.test.js.map +1 -1
  30. package/dist/tests/helpers/index.d.ts +2 -0
  31. package/dist/tests/helpers/index.d.ts.map +1 -0
  32. package/dist/tests/helpers/index.js +2 -0
  33. package/dist/tests/helpers/index.js.map +1 -0
  34. package/dist/tests/helpers/setupMockStorage.d.ts +10 -0
  35. package/dist/tests/helpers/setupMockStorage.d.ts.map +1 -0
  36. package/dist/tests/helpers/setupMockStorage.js +31 -0
  37. package/dist/tests/helpers/setupMockStorage.js.map +1 -0
  38. package/dist/tests/mocks/MockStorage.d.ts +14 -0
  39. package/dist/tests/mocks/MockStorage.d.ts.map +1 -0
  40. package/dist/tests/mocks/MockStorage.js +43 -0
  41. package/dist/tests/mocks/MockStorage.js.map +1 -0
  42. package/dist/tests/mocks/index.d.ts +2 -0
  43. package/dist/tests/mocks/index.d.ts.map +1 -0
  44. package/dist/tests/mocks/index.js +2 -0
  45. package/dist/tests/mocks/index.js.map +1 -0
  46. package/dist/tests/simpleObject.test.d.ts +2 -0
  47. package/dist/tests/simpleObject.test.d.ts.map +1 -0
  48. package/dist/tests/simpleObject.test.js +377 -0
  49. package/dist/tests/simpleObject.test.js.map +1 -0
  50. package/dist/types.d.ts +1 -2
  51. package/dist/types.d.ts.map +1 -1
  52. package/package.json +4 -2
  53. package/dist/baseGameObject.d.ts.map +0 -1
  54. package/dist/baseGameObject.js.map +0 -1
@@ -0,0 +1,377 @@
1
+ import { afterEach, beforeEach, describe, expect, test } from "bun:test";
2
+ import { Game } from "../game";
3
+ import { SimpleObject } from "../gameObjects/simpleObject";
4
+ import { setupMockStorage, teardownMockStorage } from "../tests/helpers";
5
+ import { MockStorage } from "../tests/mocks";
6
+ describe("SimpleObject", () => {
7
+ beforeEach(async () => {
8
+ setupMockStorage();
9
+ await Game.init({ gameName: "Test Game", isDevMode: true });
10
+ });
11
+ afterEach(() => {
12
+ Game._resetForTesting();
13
+ teardownMockStorage();
14
+ });
15
+ describe("Initialization", () => {
16
+ test("should initialize with simple variables", () => {
17
+ const player = new SimpleObject({
18
+ id: "player",
19
+ variables: { health: 100, mana: 50 },
20
+ });
21
+ expect(player.id).toBe("player");
22
+ expect(player.health).toBe(100);
23
+ expect(player.mana).toBe(50);
24
+ });
25
+ test("should initialize with nested object variables", () => {
26
+ const player = new SimpleObject({
27
+ id: "player",
28
+ variables: {
29
+ health: { mental: 20, physical: 30 },
30
+ stats: { strength: 10, agility: 15 },
31
+ },
32
+ });
33
+ expect(player.id).toBe("player");
34
+ expect(player.health.mental).toBe(20);
35
+ expect(player.health.physical).toBe(30);
36
+ expect(player.stats.strength).toBe(10);
37
+ });
38
+ test("should initialize with array variables", () => {
39
+ const inventory = new SimpleObject({
40
+ id: "inventory",
41
+ variables: { items: ["sword", "shield"] },
42
+ });
43
+ expect(inventory.items).toEqual(["sword", "shield"]);
44
+ });
45
+ test("should initialize without variables", () => {
46
+ const obj = new SimpleObject({ id: "test" });
47
+ expect(obj.id).toBe("test");
48
+ expect(obj.variables).toEqual({});
49
+ });
50
+ });
51
+ describe("Variable Access and Modification", () => {
52
+ test("should allow direct property access", () => {
53
+ const player = new SimpleObject({
54
+ id: "player",
55
+ variables: { health: 100 },
56
+ });
57
+ expect(player.health).toBe(100);
58
+ });
59
+ test("should allow direct property assignment", () => {
60
+ const player = new SimpleObject({
61
+ id: "player",
62
+ variables: { health: 100 },
63
+ });
64
+ player.health = 50;
65
+ expect(player.health).toBe(50);
66
+ });
67
+ test("should support += operator for primitives", () => {
68
+ const player = new SimpleObject({
69
+ id: "player",
70
+ variables: { health: 100 },
71
+ });
72
+ player.health += 25;
73
+ expect(player.health).toBe(125);
74
+ });
75
+ test("should support -= operator for primitives", () => {
76
+ const player = new SimpleObject({
77
+ id: "player",
78
+ variables: { health: 100 },
79
+ });
80
+ player.health -= 30;
81
+ expect(player.health).toBe(70);
82
+ });
83
+ test("should support *= operator for primitives", () => {
84
+ const player = new SimpleObject({
85
+ id: "player",
86
+ variables: { damage: 10 },
87
+ });
88
+ player.damage *= 2;
89
+ expect(player.damage).toBe(20);
90
+ });
91
+ test("should allow string concatenation", () => {
92
+ const player = new SimpleObject({
93
+ id: "player",
94
+ variables: { name: "Hero" },
95
+ });
96
+ player.name += " of Light";
97
+ expect(player.name).toBe("Hero of Light");
98
+ });
99
+ });
100
+ describe("Nested Object Access and Modification", () => {
101
+ test("should allow nested object property access", () => {
102
+ const player = new SimpleObject({
103
+ id: "player",
104
+ variables: {
105
+ health: { mental: 20, physical: 30 },
106
+ },
107
+ });
108
+ expect(player.health.mental).toBe(20);
109
+ expect(player.health.physical).toBe(30);
110
+ });
111
+ test("should allow nested object property modification", () => {
112
+ const player = new SimpleObject({
113
+ id: "player",
114
+ variables: {
115
+ health: { mental: 20, physical: 30 },
116
+ },
117
+ });
118
+ player.health.mental = 50;
119
+ expect(player.health.mental).toBe(50);
120
+ });
121
+ test("should support += operator for nested properties", () => {
122
+ const player = new SimpleObject({
123
+ id: "player",
124
+ variables: {
125
+ health: { mental: 20, physical: 30 },
126
+ },
127
+ });
128
+ player.health.mental += 10;
129
+ expect(player.health.mental).toBe(30);
130
+ });
131
+ test("should support deeply nested object modification", () => {
132
+ const player = new SimpleObject({
133
+ id: "player",
134
+ variables: {
135
+ stats: {
136
+ combat: {
137
+ melee: { damage: 10, accuracy: 80 },
138
+ },
139
+ },
140
+ },
141
+ });
142
+ player.stats.combat.melee.damage += 5;
143
+ expect(player.stats.combat.melee.damage).toBe(15);
144
+ });
145
+ });
146
+ describe("Array Modification", () => {
147
+ test("should allow array push", () => {
148
+ const inventory = new SimpleObject({
149
+ id: "inventory",
150
+ variables: { items: ["sword"] },
151
+ });
152
+ inventory.items.push("shield");
153
+ expect(inventory.items).toEqual(["sword", "shield"]);
154
+ });
155
+ test("should allow array pop", () => {
156
+ const inventory = new SimpleObject({
157
+ id: "inventory",
158
+ variables: { items: ["sword", "shield"] },
159
+ });
160
+ const popped = inventory.items.pop();
161
+ expect(popped).toBe("shield");
162
+ expect(inventory.items).toEqual(["sword"]);
163
+ });
164
+ test("should allow array index assignment", () => {
165
+ const inventory = new SimpleObject({
166
+ id: "inventory",
167
+ variables: { items: ["sword", "shield"] },
168
+ });
169
+ inventory.items[0] = "axe";
170
+ expect(inventory.items[0]).toBe("axe");
171
+ });
172
+ });
173
+ describe("Save and Load", () => {
174
+ test("should save simple variables to storage", () => {
175
+ const player = new SimpleObject({
176
+ id: "player",
177
+ variables: { health: 100, mana: 50 },
178
+ });
179
+ player.save();
180
+ const savedData = MockStorage.getValue("$.player");
181
+ expect(savedData[0]).toEqual({ health: 100, mana: 50 });
182
+ });
183
+ test("should save nested variables to storage", () => {
184
+ const player = new SimpleObject({
185
+ id: "player",
186
+ variables: {
187
+ health: { mental: 20, physical: 30 },
188
+ },
189
+ });
190
+ player.save();
191
+ const savedData = MockStorage.getValue("$.player");
192
+ expect(savedData[0]).toEqual({
193
+ health: { mental: 20, physical: 30 },
194
+ });
195
+ });
196
+ test("should require manual save() call to persist changes", () => {
197
+ const player = new SimpleObject({
198
+ id: "player",
199
+ variables: { health: 100 },
200
+ });
201
+ // Save initial state
202
+ player.save();
203
+ // Modify without saving
204
+ player.health = 50;
205
+ // Storage should still have old value
206
+ const savedData = MockStorage.getValue("$.player");
207
+ expect(savedData[0]).toEqual({ health: 100 });
208
+ // Now save
209
+ player.save();
210
+ // Storage should have new value
211
+ const savedDataAfter = MockStorage.getValue("$.player");
212
+ expect(savedDataAfter[0]).toEqual({ health: 50 });
213
+ });
214
+ test("should require manual save() for nested property changes", () => {
215
+ const player = new SimpleObject({
216
+ id: "player",
217
+ variables: {
218
+ health: { mental: 20, physical: 30 },
219
+ },
220
+ });
221
+ // Save initial state
222
+ player.save();
223
+ // Modify nested property without saving
224
+ player.health.mental = 50;
225
+ // Storage should still have old value
226
+ const savedData = MockStorage.getValue("$.player");
227
+ expect(savedData[0].health.mental).toBe(20);
228
+ // Now save
229
+ player.save();
230
+ // Storage should have new value
231
+ const savedDataAfter = MockStorage.getValue("$.player");
232
+ expect(savedDataAfter[0].health.mental).toBe(50);
233
+ });
234
+ test("should load variables from storage", () => {
235
+ const player = new SimpleObject({
236
+ id: "player",
237
+ variables: { health: 100, mana: 50 },
238
+ });
239
+ // Save initial state
240
+ player.save();
241
+ // Modify in-memory
242
+ player.health = 999;
243
+ expect(player.health).toBe(999);
244
+ // Load should restore from storage
245
+ player.load();
246
+ expect(player.health).toBe(100);
247
+ expect(player.mana).toBe(50);
248
+ });
249
+ test("should load nested variables from storage", () => {
250
+ const player = new SimpleObject({
251
+ id: "player",
252
+ variables: {
253
+ health: { mental: 20, physical: 30 },
254
+ },
255
+ });
256
+ player.save();
257
+ // Modify
258
+ player.health.mental = 999;
259
+ // Load
260
+ player.load();
261
+ expect(player.health.mental).toBe(20);
262
+ expect(player.health.physical).toBe(30);
263
+ });
264
+ test("should clear variables when loading empty storage", () => {
265
+ const player = new SimpleObject({
266
+ id: "player",
267
+ variables: { health: 100 },
268
+ });
269
+ // Don't save, just load
270
+ player.load();
271
+ // @ts-expect-error TS2769
272
+ expect(player.variables).toEqual({});
273
+ });
274
+ });
275
+ describe("Special Type Handling", () => {
276
+ test("should handle Date objects without proxying", () => {
277
+ const date = new Date("2024-01-01");
278
+ const player = new SimpleObject({
279
+ id: "player",
280
+ variables: { createdAt: date },
281
+ });
282
+ expect(player.createdAt).toBeInstanceOf(Date);
283
+ expect(player.createdAt.getTime()).toBe(date.getTime());
284
+ });
285
+ test("should handle RegExp without proxying", () => {
286
+ const pattern = /test/i;
287
+ const player = new SimpleObject({
288
+ id: "player",
289
+ variables: { pattern },
290
+ });
291
+ expect(player.pattern).toBeInstanceOf(RegExp);
292
+ expect(player.pattern.test("TEST")).toBe(true);
293
+ });
294
+ test("should handle null values", () => {
295
+ const player = new SimpleObject({
296
+ id: "player",
297
+ variables: { weapon: null },
298
+ });
299
+ expect(player.weapon).toBeNull();
300
+ });
301
+ test("should handle undefined values", () => {
302
+ const player = new SimpleObject({
303
+ id: "player",
304
+ variables: { optionalField: undefined },
305
+ });
306
+ expect(player.optionalField).toBeUndefined();
307
+ });
308
+ test("should handle boolean values", () => {
309
+ const player = new SimpleObject({
310
+ id: "player",
311
+ variables: { isAlive: true },
312
+ });
313
+ expect(player.isAlive).toBe(true);
314
+ player.isAlive = false;
315
+ expect(player.isAlive).toBe(false);
316
+ });
317
+ });
318
+ describe("Complex Scenarios", () => {
319
+ test("should handle mixed primitive and nested object updates", () => {
320
+ const player = new SimpleObject({
321
+ id: "player",
322
+ variables: {
323
+ name: "Hero",
324
+ level: 1,
325
+ stats: { strength: 10, agility: 10 },
326
+ },
327
+ });
328
+ player.name = "Champion";
329
+ player.level += 1;
330
+ player.stats.strength += 5;
331
+ expect(player.name).toBe("Champion");
332
+ expect(player.level).toBe(2);
333
+ expect(player.stats.strength).toBe(15);
334
+ });
335
+ test("should maintain proxy consistency across multiple accesses", () => {
336
+ const player = new SimpleObject({
337
+ id: "player",
338
+ variables: {
339
+ health: { current: 100, max: 100 },
340
+ },
341
+ });
342
+ // Access health multiple times
343
+ const health1 = player.health;
344
+ const health2 = player.health;
345
+ // Both should reference the same proxy
346
+ health1.current = 50;
347
+ expect(health2.current).toBe(50);
348
+ expect(player.health.current).toBe(50);
349
+ });
350
+ test("should handle complete state replacement", () => {
351
+ const player = new SimpleObject({
352
+ id: "player",
353
+ variables: {
354
+ health: { current: 100, max: 100 },
355
+ },
356
+ });
357
+ // Replace entire health object
358
+ player.health = { current: 50, max: 150 };
359
+ expect(player.health.current).toBe(50);
360
+ expect(player.health.max).toBe(150);
361
+ });
362
+ test("should work with Game state serialization", () => {
363
+ const player = new SimpleObject({
364
+ id: "player",
365
+ variables: { health: 100, mana: 50 },
366
+ });
367
+ player.health = 75;
368
+ const gameState = Game.getState();
369
+ expect(gameState.player).toEqual({ health: 75, mana: 50 });
370
+ // Modify and restore
371
+ player.health = 25;
372
+ Game.setState(gameState);
373
+ expect(player.health).toBe(75);
374
+ });
375
+ });
376
+ });
377
+ //# sourceMappingURL=simpleObject.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simpleObject.test.js","sourceRoot":"","sources":["../../src/tests/simpleObject.test.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export type EmptyObject = Record<string, never>;
2
2
  export type JsonPath = `$.${string}`;
3
3
  export type InitVarsType = Record<string, unknown>;
4
- type Identity<T> = {
4
+ export type Identity<T> = {
5
5
  [P in keyof T]: T[P];
6
6
  };
7
7
  export type Replace<T, K extends keyof T, TReplace> = Identity<Pick<T, Exclude<keyof T, K>> & {
@@ -15,5 +15,4 @@ export type OptionalCallable<T> = Callable<T | undefined>;
15
15
  export type MaybeOptionalCallable<T> = T | OptionalCallable<T>;
16
16
  export type ButtonVariant = "solid" | "faded" | "bordered" | "light" | "flat" | "ghost" | "shadow";
17
17
  export type ButtonColor = "default" | "primary" | "secondary" | "success" | "warning" | "danger";
18
- export {};
19
18
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEhD,MAAM,MAAM,QAAQ,GAAG,KAAK,MAAM,EAAE,CAAC;AAErC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnD,KAAK,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAC5C,MAAM,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,QAAQ,IAAI,QAAQ,CAC1D,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;KAC1B,CAAC,IAAI,CAAC,GAAG,QAAQ;CACrB,CACJ,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,gBAAgB,GAAG,QAAQ,CAAC;AAEhE,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAClC,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC/C,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AAC1D,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAE/D,MAAM,MAAM,aAAa,GACnB,OAAO,GACP,OAAO,GACP,UAAU,GACV,OAAO,GACP,MAAM,GACN,OAAO,GACP,QAAQ,CAAC;AAEf,MAAM,MAAM,WAAW,GACjB,SAAS,GACT,SAAS,GACT,WAAW,GACX,SAAS,GACT,SAAS,GACT,QAAQ,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEhD,MAAM,MAAM,QAAQ,GAAG,KAAK,MAAM,EAAE,CAAC;AAErC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnD,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AACnD,MAAM,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,QAAQ,IAAI,QAAQ,CAC1D,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;KAC1B,CAAC,IAAI,CAAC,GAAG,QAAQ;CACrB,CACJ,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,gBAAgB,GAAG,QAAQ,CAAC;AAEhE,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAClC,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC/C,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AAC1D,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAE/D,MAAM,MAAM,aAAa,GACnB,OAAO,GACP,OAAO,GACP,UAAU,GACV,OAAO,GACP,MAAM,GACN,OAAO,GACP,QAAQ,CAAC;AAEf,MAAM,MAAM,WAAW,GACjB,SAAS,GACT,SAAS,GACT,WAAW,GACX,SAAS,GACT,SAAS,GACT,QAAQ,CAAC"}
package/package.json CHANGED
@@ -1,18 +1,20 @@
1
1
  {
2
2
  "name": "@react-text-game/core",
3
- "version": "0.1.2",
3
+ "version": "0.2.1",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
8
  "repository": "github:laruss/react-text-game",
9
+ "homepage": "https://laruss.github.io/react-text-game/",
9
10
  "private": false,
10
11
  "type": "module",
11
12
  "scripts": {
12
13
  "dev": "tsc --watch & tsc-alias --watch",
13
14
  "build": "tsc && tsc-alias",
14
15
  "prepack": "rm -rf dist && bun run build",
15
- "test-pack": "npm pack --dry-run && bunx publint"
16
+ "test-pack": "npm pack --dry-run && bunx publint",
17
+ "publish": "npm whoami && npm publish"
16
18
  },
17
19
  "author": "laruss",
18
20
  "publishConfig": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"baseGameObject.d.ts","sourceRoot":"","sources":["../src/baseGameObject.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAY,MAAM,QAAQ,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,cAAc,CAAC,aAAa,SAAS,YAAY,GAAG,YAAY;IACzE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IAEzC;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC;IAEpC;;;;;;OAMG;gBACS,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,aAAa,CAAA;KAAE;IAM5D;;;;OAIG;IACH,IAAI,SAAS,IAAI,aAAa,CAE7B;IAED;;;;;OAKG;IACH,OAAO,KAAK,IAAI,GAEf;IAED;;;;;;;;;;OAUG;IACH,IAAI;IAWJ;;;;;;;;;;OAUG;IACH,IAAI;CAGP"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"baseGameObject.js","sourceRoot":"","sources":["../src/baseGameObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAO,cAAc;IACf,MAAM,CAAC,QAAQ,GAAa,IAAI,CAAC;IAEzC;;;OAGG;IACM,EAAE,CAAS;IAEpB;;;OAGG;IACO,UAAU,CAAgB;IAEpC;;;;;;OAMG;IACH,YAAY,KAAgD;QACxD,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS,IAAK,EAAoB,CAAC;QAC3D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACH,IAAY,IAAI;QACZ,OAAO,GAAG,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAc,CAAC;IAC9D,CAAC;IAED;;;;;;;;;;OAUG;IACH,IAAI;QACA,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAkB,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACJ,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAChC,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACH,IAAI;QACA,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3D,CAAC"}