vue-phaserjs 3.0.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,26 +1,16 @@
1
- import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, defineComponent, getCurrentInstance, inject, nextTick, onMounted, onUnmounted, openBlock, provide, ref, renderSlot, toValue, useTemplateRef, watch } from "vue";
2
- import { ID_SEPARATOR, InvalidOperationError, NotFoundError, NotInitializedError, Operation, checkIsPlainObject, takeOne, toKebabCase } from "@esposter/shared";
1
+ import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, defineComponent, getCurrentInstance, inject, nextTick, onMounted, onUnmounted, openBlock, provide, ref, renderSlot, shallowRef, toValue, useTemplateRef, watch } from "vue";
2
+ import { ID_SEPARATOR, InvalidOperationError, NotFoundError, NotInitializedError, Operation, checkIsPlainObject, getOrCreate, takeOne, toKebabCase } from "@esposter/shared";
3
3
  import ClickOutside from "phaser4-rex-plugins/plugins/clickoutside.js";
4
4
  import { Animations, Cameras, Core, Game, Loader, Scene, Scenes, Tilemaps, Tweens, Utils } from "phaser";
5
5
  import { defineStore, storeToRefs } from "pinia";
6
6
  import { parseTileset, parseXmlString } from "parse-tmx";
7
- //#region src/util/getDepthInsertIndex.ts
8
- const getDepthInsertIndex = (list, depth) => typeof depth === "number" ? list.findIndex((gameObject) => "depth" in gameObject && typeof gameObject.depth === "number" && gameObject.depth > depth) : -1;
9
- //#endregion
10
- //#region src/pushGameObject.ts
11
- const pushGameObject = (parentContainer, configuration, gameObject) => {
12
- const depthInsertIndex = getDepthInsertIndex(parentContainer.list, "depth" in configuration ? configuration.depth : void 0);
13
- if (depthInsertIndex === -1) parentContainer.add(gameObject);
14
- else parentContainer.addAt(gameObject, depthInsertIndex);
15
- };
16
- //#endregion
17
- //#region src/util/emit/constants.ts
7
+ //#region src/services/emit/constants.ts
18
8
  const EVENT_PREFIX = "on";
19
9
  //#endregion
20
- //#region src/util/emit/checkIsEvent.ts
10
+ //#region src/services/emit/checkIsEvent.ts
21
11
  const checkIsEvent = (property) => property.startsWith("on");
22
12
  //#endregion
23
- //#region src/util/emit/GameObjectEventMap.ts
13
+ //#region src/services/emit/GameObjectEventMap.ts
24
14
  const GameObjectEventMap = {
25
15
  clickoutside: {},
26
16
  drag: { drag: true },
@@ -38,7 +28,7 @@ const GameObjectEventMap = {
38
28
  wheel: { eventIndex: 4 }
39
29
  };
40
30
  //#endregion
41
- //#region src/util/emit/getEventName.ts
31
+ //#region src/services/emit/getEventName.ts
42
32
  const getEventName = (event) => {
43
33
  if (!event.startsWith("on") || event.length <= 2) throw new InvalidOperationError(Operation.Read, getEventName.name, event);
44
34
  return event.slice(2).toLowerCase();
@@ -60,17 +50,10 @@ const useInitializeGameObjectEvents = () => {
60
50
  if ("eventIndex" in context) takeOne(args).stopPropagation = takeOne(args, context.eventIndex).stopPropagation;
61
51
  emit(gameObjectEvent, ...args);
62
52
  };
63
- if (gameObjectEvent === "clickoutside") {
64
- const clickOutside = new ClickOutside(gameObject);
65
- clickOutside.on(gameObjectEvent, eventListener);
66
- eventStopHandles.push(() => {
67
- clickOutside.off(gameObjectEvent, eventListener);
68
- });
69
- continue;
70
- }
71
- gameObject.on(gameObjectEvent, eventListener);
53
+ const emitter = gameObjectEvent === "clickoutside" ? new ClickOutside(gameObject) : gameObject;
54
+ emitter.on(gameObjectEvent, eventListener);
72
55
  eventStopHandles.push(() => {
73
- gameObject.off(gameObjectEvent, eventListener);
56
+ emitter.off(gameObjectEvent, eventListener);
74
57
  });
75
58
  }
76
59
  };
@@ -80,7 +63,7 @@ const useInitializeGameObjectEvents = () => {
80
63
  };
81
64
  };
82
65
  //#endregion
83
- //#region src/util/InjectionKeyMap.ts
66
+ //#region src/services/shared/InjectionKeyMap.ts
84
67
  const InjectionKeyMap = {
85
68
  ParentContainer: Symbol("ParentContainer"),
86
69
  SceneKey: Symbol("SceneKey")
@@ -110,17 +93,11 @@ const ExternalSceneStore = {
110
93
  sceneReadyMap: /* @__PURE__ */ new Map()
111
94
  };
112
95
  //#endregion
113
- //#region src/util/hooks/pushListener.ts
96
+ //#region src/services/hooks/pushListener.ts
114
97
  const pushListener = (lifecycle, listener, key) => {
115
98
  const sceneKey = key ?? useInjectSceneKey();
116
- const listenersMap = ExternalSceneStore.lifecycleListenersMap.get(lifecycle);
117
- if (!listenersMap) {
118
- ExternalSceneStore.lifecycleListenersMap.set(lifecycle, /* @__PURE__ */ new Map([[sceneKey, [listener]]]));
119
- return;
120
- }
121
- const listeners = listenersMap.get(sceneKey);
122
- if (listeners) listeners.push(listener);
123
- else listenersMap.set(sceneKey, [listener]);
99
+ const listenersMap = getOrCreate(ExternalSceneStore.lifecycleListenersMap, lifecycle, () => /* @__PURE__ */ new Map());
100
+ getOrCreate(listenersMap, sceneKey, () => []).push(listener);
124
101
  };
125
102
  //#endregion
126
103
  //#region src/hooks/onNextTick.ts
@@ -128,7 +105,7 @@ const onNextTick = (...args) => {
128
105
  pushListener("NextTick", ...args);
129
106
  };
130
107
  //#endregion
131
- //#region src/util/emit/getUpdateEvent.ts
108
+ //#region src/services/emit/getUpdateEvent.ts
132
109
  const getUpdateEvent = (property) => `update:${toKebabCase(property)}`;
133
110
  //#endregion
134
111
  //#region src/composables/useInitializeGameObjectSetters.ts
@@ -166,6 +143,14 @@ const useInitializeGameObjectSetters = (gameObject, configuration, emit, setterM
166
143
  };
167
144
  };
168
145
  //#endregion
146
+ //#region src/hooks/onCreate.ts
147
+ const onCreate = (...args) => {
148
+ pushListener("Create", ...args);
149
+ };
150
+ //#endregion
151
+ //#region src/services/hooks/getInitializeGameObjectLifecycleHook.ts
152
+ const getInitializeGameObjectLifecycleHook = (sceneKey) => ExternalSceneStore.sceneReadyMap.get(sceneKey) ? onNextTick : onCreate;
153
+ //#endregion
169
154
  //#region src/store/index.ts
170
155
  const usePhaserStore = defineStore("phaser", () => {
171
156
  let baseGame;
@@ -222,18 +207,20 @@ const useGame = () => {
222
207
  return game.value;
223
208
  };
224
209
  //#endregion
225
- //#region src/util/getScene.ts
210
+ //#region src/services/shared/getScene.ts
226
211
  const getScene = (sceneKey) => {
227
212
  return useGame().scene.getScene(sceneKey);
228
213
  };
229
214
  //#endregion
230
- //#region src/hooks/onCreate.ts
231
- const onCreate = (...args) => {
232
- pushListener("Create", ...args);
233
- };
215
+ //#region src/services/shared/getDepthInsertIndex.ts
216
+ const getDepthInsertIndex = (list, depth) => typeof depth === "number" ? list.findIndex((gameObject) => "depth" in gameObject && typeof gameObject.depth === "number" && gameObject.depth > depth) : -1;
234
217
  //#endregion
235
- //#region src/util/hooks/getInitializeGameObjectLifecycleHook.ts
236
- const getInitializeGameObjectLifecycleHook = (sceneKey) => ExternalSceneStore.sceneReadyMap.get(sceneKey) ? onNextTick : onCreate;
218
+ //#region src/services/shared/pushGameObject.ts
219
+ const pushGameObject = (parentContainer, configuration, gameObject) => {
220
+ const depthInsertIndex = getDepthInsertIndex(parentContainer.list, "depth" in configuration ? configuration.depth : void 0);
221
+ if (depthInsertIndex === -1) parentContainer.add(gameObject);
222
+ else parentContainer.addAt(gameObject, depthInsertIndex);
223
+ };
237
224
  //#endregion
238
225
  //#region src/composables/useInitializeGameObject.ts
239
226
  const useInitializeGameObject = (create, configuration, emit, setterMap, immediate) => {
@@ -268,7 +255,7 @@ const useInitializeGameObject = (create, configuration, emit, setterMap, immedia
268
255
  });
269
256
  };
270
257
  //#endregion
271
- //#region src/util/setterMap/components/DisplaySizeSetterMap.ts
258
+ //#region src/services/setterMap/components/DisplaySizeSetterMap.ts
272
259
  const DisplaySizeSetterMap = {
273
260
  displayHeight: (gameObject) => (value) => {
274
261
  if (value === void 0) return;
@@ -280,7 +267,7 @@ const DisplaySizeSetterMap = {
280
267
  }
281
268
  };
282
269
  //#endregion
283
- //#region src/util/setterMap/components/ComputedSizeSetterMap.ts
270
+ //#region src/services/setterMap/components/ComputedSizeSetterMap.ts
284
271
  const ComputedSizeSetterMap = {
285
272
  ...DisplaySizeSetterMap,
286
273
  height: (gameObject) => (value) => {
@@ -293,36 +280,45 @@ const ComputedSizeSetterMap = {
293
280
  }
294
281
  };
295
282
  //#endregion
296
- //#region src/util/setterMap/components/DepthSetterMap.ts
283
+ //#region src/services/setterMap/components/DepthSetterMap.ts
297
284
  const DepthSetterMap = { depth: (gameObject) => (value) => {
298
285
  if (value === void 0) return;
299
286
  gameObject.setDepth(value);
300
287
  if (!gameObject.parentContainer) return;
301
- const depthInsertIndex = getDepthInsertIndex(gameObject.parentContainer.list, gameObject.depth);
288
+ const { list } = gameObject.parentContainer;
289
+ const depthInsertIndex = getDepthInsertIndex(list, gameObject.depth);
302
290
  if (depthInsertIndex === -1) gameObject.parentContainer.bringToTop(gameObject);
303
- else gameObject.parentContainer.moveTo(gameObject, Math.max(depthInsertIndex - 1, 0));
291
+ else {
292
+ const currentIndex = list.indexOf(gameObject);
293
+ gameObject.parentContainer.moveTo(gameObject, currentIndex < depthInsertIndex ? depthInsertIndex - 1 : depthInsertIndex);
294
+ }
304
295
  } };
305
296
  //#endregion
306
- //#region src/util/setterMap/components/OriginSetterMap.ts
297
+ //#region src/services/setterMap/components/OriginSetterMap.ts
307
298
  const OriginSetterMap = {
308
299
  displayOriginX: (gameObject) => (value) => {
300
+ if (value === void 0) return;
309
301
  gameObject.setDisplayOrigin(value, gameObject.displayOriginY);
310
302
  },
311
303
  displayOriginY: (gameObject) => (value) => {
304
+ if (value === void 0) return;
312
305
  gameObject.setDisplayOrigin(gameObject.displayOriginX, value);
313
306
  },
314
307
  origin: (gameObject) => (value) => {
308
+ if (value === void 0) return;
315
309
  gameObject.setOrigin(value, value);
316
310
  },
317
311
  originX: (gameObject) => (value) => {
312
+ if (value === void 0) return;
318
313
  gameObject.setOrigin(value, gameObject.originY);
319
314
  },
320
315
  originY: (gameObject) => (value) => {
316
+ if (value === void 0) return;
321
317
  gameObject.setOrigin(gameObject.originX, value);
322
318
  }
323
319
  };
324
320
  //#endregion
325
- //#region src/util/setterMap/components/ScrollFactorSetterMap.ts
321
+ //#region src/services/setterMap/components/ScrollFactorSetterMap.ts
326
322
  const ScrollFactorSetterMap = {
327
323
  scrollFactor: (gameObject) => (value) => {
328
324
  if (value === void 0) return;
@@ -338,50 +334,59 @@ const ScrollFactorSetterMap = {
338
334
  }
339
335
  };
340
336
  //#endregion
341
- //#region src/util/setterMap/components/TransformSetterMap.ts
337
+ //#region src/services/setterMap/components/TransformSetterMap.ts
342
338
  const TransformSetterMap = {
343
339
  angle: (gameObject) => (value) => {
340
+ if (value === void 0) return;
344
341
  gameObject.setAngle(value);
345
342
  },
346
343
  rotation: (gameObject) => (value) => {
344
+ if (value === void 0) return;
347
345
  gameObject.setRotation(value);
348
346
  },
349
347
  scale: (gameObject) => (value) => {
348
+ if (value === void 0) return;
350
349
  gameObject.setScale(value, value);
351
350
  },
352
351
  scaleX: (gameObject) => (value) => {
352
+ if (value === void 0) return;
353
353
  gameObject.setScale(value, gameObject.scaleY);
354
354
  },
355
355
  scaleY: (gameObject) => (value) => {
356
+ if (value === void 0) return;
356
357
  gameObject.setScale(gameObject.scaleX, value);
357
358
  },
358
359
  w: (gameObject) => (value) => {
360
+ if (value === void 0) return;
359
361
  gameObject.setW(value);
360
362
  },
361
363
  x: (gameObject) => (value) => {
364
+ if (value === void 0) return;
362
365
  gameObject.setX(value);
363
366
  },
364
367
  y: (gameObject) => (value) => {
368
+ if (value === void 0) return;
365
369
  gameObject.setY(value);
366
370
  },
367
371
  z: (gameObject) => (value) => {
372
+ if (value === void 0) return;
368
373
  gameObject.setZ(value);
369
374
  }
370
375
  };
371
376
  //#endregion
372
- //#region src/util/setterMap/components/VisibleSetterMap.ts
377
+ //#region src/services/setterMap/components/VisibleSetterMap.ts
373
378
  const VisibleSetterMap = { visible: (gameObject) => (value) => {
374
379
  if (value === void 0) return;
375
380
  gameObject.setVisible(value);
376
381
  } };
377
382
  //#endregion
378
- //#region src/util/setterMap/global/GameObjectSetterMap.ts
383
+ //#region src/services/setterMap/global/GameObjectSetterMap.ts
379
384
  const GameObjectSetterMap = { active: (gameObject) => (value) => {
380
385
  if (value === void 0) return;
381
386
  gameObject.setActive(value);
382
387
  } };
383
388
  //#endregion
384
- //#region src/util/setterMap/global/TweenSetterMap.ts
389
+ //#region src/services/setterMap/global/TweenSetterMap.ts
385
390
  const TweenSetterMap = {
386
391
  tween: (gameObject, emit) => (value) => {
387
392
  if (!value) return;
@@ -403,13 +408,13 @@ const TweenSetterMap = {
403
408
  }
404
409
  };
405
410
  //#endregion
406
- //#region src/util/setterMap/global/GlobalSetterMap.ts
411
+ //#region src/services/setterMap/global/GlobalSetterMap.ts
407
412
  const GlobalSetterMap = {
408
413
  ...TweenSetterMap,
409
414
  ...GameObjectSetterMap
410
415
  };
411
416
  //#endregion
412
- //#region src/util/setterMap/ZoneSetterMap.ts
417
+ //#region src/services/setterMap/ZoneSetterMap.ts
413
418
  const ZoneSetterMap = {
414
419
  ...ComputedSizeSetterMap,
415
420
  ...DepthSetterMap,
@@ -435,32 +440,37 @@ const _sfc_main$26 = /*@__PURE__*/ defineComponent({
435
440
  }
436
441
  });
437
442
  //#endregion
438
- //#region src/util/setterMap/components/AlphaSetterMap.ts
443
+ //#region src/services/setterMap/components/AlphaSetterMap.ts
439
444
  const AlphaSetterMap = {
440
445
  alpha: (gameObject) => (value) => {
446
+ if (value === void 0) return;
441
447
  gameObject.setAlpha(value, value, value, value);
442
448
  },
443
449
  alphaBottomLeft: (gameObject) => (value) => {
450
+ if (value === void 0) return;
444
451
  gameObject.setAlpha(gameObject.alphaTopLeft, gameObject.alphaTopRight, value, gameObject.alphaBottomRight);
445
452
  },
446
453
  alphaBottomRight: (gameObject) => (value) => {
454
+ if (value === void 0) return;
447
455
  gameObject.setAlpha(gameObject.alphaTopLeft, gameObject.alphaTopRight, gameObject.alphaBottomLeft, value);
448
456
  },
449
457
  alphaTopLeft: (gameObject) => (value) => {
458
+ if (value === void 0) return;
450
459
  gameObject.setAlpha(value, gameObject.alphaTopRight, gameObject.alphaBottomLeft, gameObject.alphaBottomRight);
451
460
  },
452
461
  alphaTopRight: (gameObject) => (value) => {
462
+ if (value === void 0) return;
453
463
  gameObject.setAlpha(gameObject.alphaTopLeft, value, gameObject.alphaBottomLeft, gameObject.alphaBottomRight);
454
464
  }
455
465
  };
456
466
  //#endregion
457
- //#region src/util/setterMap/components/BlendModeSetterMap.ts
467
+ //#region src/services/setterMap/components/BlendModeSetterMap.ts
458
468
  const BlendModeSetterMap = { blendMode: (gameObject) => (value) => {
459
469
  if (value === void 0) return;
460
470
  gameObject.setBlendMode(value);
461
471
  } };
462
472
  //#endregion
463
- //#region src/util/setterMap/components/FlipSetterMap.ts
473
+ //#region src/services/setterMap/components/FlipSetterMap.ts
464
474
  const FlipSetterMap = {
465
475
  flipX: (gameObject) => (value) => {
466
476
  if (value === void 0) return;
@@ -472,16 +482,16 @@ const FlipSetterMap = {
472
482
  }
473
483
  };
474
484
  //#endregion
475
- //#region src/util/setterMap/components/MaskSetterMap.ts
485
+ //#region src/services/setterMap/components/MaskSetterMap.ts
476
486
  const MaskSetterMap = { mask: (gameObject) => (value) => {
477
487
  if (!value) return;
478
488
  gameObject.setMask(value);
479
489
  } };
480
490
  //#endregion
481
- //#region src/util/setterMap/components/RenderNodesSetterMap.ts
491
+ //#region src/services/setterMap/components/RenderNodesSetterMap.ts
482
492
  const RenderNodesSetterMap = {};
483
493
  //#endregion
484
- //#region src/util/setterMap/components/BaseTextureSetterMap.ts
494
+ //#region src/services/setterMap/components/BaseTextureSetterMap.ts
485
495
  const BaseTextureSetterMap = {
486
496
  frame: (gameObject) => (value) => {
487
497
  if (value === void 0) return;
@@ -493,29 +503,34 @@ const BaseTextureSetterMap = {
493
503
  }
494
504
  };
495
505
  //#endregion
496
- //#region src/util/setterMap/components/TextureCropSetterMap.ts
506
+ //#region src/services/setterMap/components/TextureCropSetterMap.ts
497
507
  const TextureCropSetterMap = { ...BaseTextureSetterMap };
498
508
  //#endregion
499
- //#region src/util/setterMap/components/TintSetterMap.ts
509
+ //#region src/services/setterMap/components/TintSetterMap.ts
500
510
  const TintSetterMap = {
501
511
  tint: (gameObject) => (value) => {
512
+ if (value === void 0) return;
502
513
  gameObject.setTint(value, value, value, value);
503
514
  },
504
515
  tintBottomLeft: (gameObject) => (value) => {
516
+ if (value === void 0) return;
505
517
  gameObject.setTint(gameObject.tintTopLeft, gameObject.tintTopRight, value, gameObject.tintBottomRight);
506
518
  },
507
519
  tintBottomRight: (gameObject) => (value) => {
520
+ if (value === void 0) return;
508
521
  gameObject.setTint(gameObject.tintTopLeft, gameObject.tintTopRight, gameObject.tintBottomLeft, value);
509
522
  },
510
523
  tintTopLeft: (gameObject) => (value) => {
524
+ if (value === void 0) return;
511
525
  gameObject.setTint(value, gameObject.tintTopRight, gameObject.tintBottomLeft, gameObject.tintBottomRight);
512
526
  },
513
527
  tintTopRight: (gameObject) => (value) => {
528
+ if (value === void 0) return;
514
529
  gameObject.setTint(gameObject.tintTopLeft, value, gameObject.tintBottomLeft, gameObject.tintBottomRight);
515
530
  }
516
531
  };
517
532
  //#endregion
518
- //#region src/util/setterMap/VideoSetterMap.ts
533
+ //#region src/services/setterMap/VideoSetterMap.ts
519
534
  const VideoSetterMap = {
520
535
  key: (gameObject) => (value) => {
521
536
  if (!value) return;
@@ -563,12 +578,13 @@ const _sfc_main$25 = /*@__PURE__*/ defineComponent({
563
578
  }
564
579
  });
565
580
  //#endregion
566
- //#region src/util/setterMap/components/AlphaSingleSetterMap.ts
581
+ //#region src/services/setterMap/components/AlphaSingleSetterMap.ts
567
582
  const AlphaSingleSetterMap = { alpha: (gameObject) => (value) => {
583
+ if (value === void 0) return;
568
584
  gameObject.setAlpha(value);
569
585
  } };
570
586
  //#endregion
571
- //#region src/util/setterMap/shared/ShapeSetterMap.ts
587
+ //#region src/services/setterMap/shared/ShapeSetterMap.ts
572
588
  const ShapeSetterMap = {
573
589
  ...AlphaSingleSetterMap,
574
590
  ...BlendModeSetterMap,
@@ -593,7 +609,7 @@ const ShapeSetterMap = {
593
609
  }
594
610
  };
595
611
  //#endregion
596
- //#region src/util/setterMap/TriangleSetterMap.ts
612
+ //#region src/services/setterMap/TriangleSetterMap.ts
597
613
  const TriangleSetterMap = {
598
614
  to: (gameObject) => (value) => {
599
615
  if (!value) return;
@@ -624,10 +640,10 @@ const _sfc_main$24 = /*@__PURE__*/ defineComponent({
624
640
  }
625
641
  });
626
642
  //#endregion
627
- //#region src/util/setterMap/components/TextureSetterMap.ts
643
+ //#region src/services/setterMap/components/TextureSetterMap.ts
628
644
  const TextureSetterMap = { ...BaseTextureSetterMap };
629
645
  //#endregion
630
- //#region src/util/setterMap/TileSpriteSetterMap.ts
646
+ //#region src/services/setterMap/TileSpriteSetterMap.ts
631
647
  const TileSpriteSetterMap = {
632
648
  ...AlphaSetterMap,
633
649
  ...BlendModeSetterMap,
@@ -675,7 +691,7 @@ const _sfc_main$23 = /*@__PURE__*/ defineComponent({
675
691
  },
676
692
  setup(__props) {
677
693
  const sceneKey = useInjectSceneKey();
678
- const tilemap = ref();
694
+ const tilemap = shallowRef();
679
695
  onCreate((newScene) => {
680
696
  tilemap.value = newScene.make.tilemap(__props.configuration);
681
697
  __props.onComplete?.(newScene, tilemap.value);
@@ -699,12 +715,7 @@ const _sfc_main$23 = /*@__PURE__*/ defineComponent({
699
715
  }
700
716
  });
701
717
  //#endregion
702
- //#region src/store/text.ts
703
- const useTextStore = defineStore("phaser/text", () => {
704
- return { defaultTextStyle: ref() };
705
- });
706
- //#endregion
707
- //#region src/util/setterMap/TextSetterMap.ts
718
+ //#region src/services/setterMap/TextSetterMap.ts
708
719
  const TextSetterMap = {
709
720
  padding: (gameObject) => (value) => {
710
721
  if (!value) return;
@@ -735,6 +746,11 @@ const TextSetterMap = {
735
746
  ...GlobalSetterMap
736
747
  };
737
748
  //#endregion
749
+ //#region src/store/text.ts
750
+ const useTextStore = defineStore("phaser/text", () => {
751
+ return { defaultTextStyle: ref() };
752
+ });
753
+ //#endregion
738
754
  //#region src/components/Text.vue
739
755
  const _sfc_main$21 = /*@__PURE__*/ defineComponent({
740
756
  __name: "Text",
@@ -759,7 +775,7 @@ const _sfc_main$21 = /*@__PURE__*/ defineComponent({
759
775
  }
760
776
  });
761
777
  //#endregion
762
- //#region src/util/setterMap/StarSetterMap.ts
778
+ //#region src/services/setterMap/StarSetterMap.ts
763
779
  const StarSetterMap = {
764
780
  innerRadius: (gameObject) => (value) => {
765
781
  if (value === void 0) return;
@@ -798,19 +814,26 @@ const _sfc_main$20 = /*@__PURE__*/ defineComponent({
798
814
  }
799
815
  });
800
816
  //#endregion
801
- //#region src/util/setterMap/components/SizeSetterMap.ts
817
+ //#region src/services/setterMap/components/SizeSetterMap.ts
802
818
  const SizeSetterMap = { ...ComputedSizeSetterMap };
803
819
  //#endregion
804
- //#region src/util/setterMap/shared/AnimationSetterMap.ts
820
+ //#region src/services/setterMap/shared/AnimationSetterMap.ts
821
+ const completionListeners = /* @__PURE__ */ new WeakMap();
805
822
  const AnimationSetterMap = {
806
823
  animations: (gameObject, emit) => (configurations) => {
807
824
  if (!(configurations && configurations.length > 0)) return;
825
+ const listeners = completionListeners.get(gameObject) ?? /* @__PURE__ */ new Map();
826
+ completionListeners.set(gameObject, listeners);
808
827
  for (const configuration of configurations) {
809
828
  if (!configuration.key) continue;
810
829
  const event = `${Animations.Events.ANIMATION_COMPLETE_KEY}${configuration.key}`;
811
- gameObject.once(event, () => {
830
+ const previousListener = listeners.get(event);
831
+ if (previousListener) gameObject.off(event, previousListener);
832
+ const listener = () => {
812
833
  emit(event);
813
- });
834
+ };
835
+ listeners.set(event, listener);
836
+ gameObject.once(event, listener);
814
837
  if (gameObject.scene.anims.exists(configuration.key)) continue;
815
838
  if (!gameObject.scene.anims.create(configuration)) throw new InvalidOperationError(Operation.Create, "Animation", configuration.key);
816
839
  }
@@ -824,7 +847,7 @@ const AnimationSetterMap = {
824
847
  }
825
848
  };
826
849
  //#endregion
827
- //#region src/util/setterMap/SpriteSetterMap.ts
850
+ //#region src/services/setterMap/SpriteSetterMap.ts
828
851
  const SpriteSetterMap = {
829
852
  ...AlphaSetterMap,
830
853
  ...BlendModeSetterMap,
@@ -864,37 +887,14 @@ const _sfc_main$19 = /*@__PURE__*/ defineComponent({
864
887
  }
865
888
  });
866
889
  //#endregion
867
- //#region src/store/camera.ts
868
- const useCameraStore = defineStore("phaser/camera", () => {
869
- const isFading = ref(false);
870
- const fadeIn = (scene, ...args) => {
871
- isFading.value = true;
872
- scene.cameras.main.fadeIn(...args);
873
- };
874
- const fadeOut = (scene, ...args) => {
875
- isFading.value = true;
876
- scene.cameras.main.fadeOut(...args);
877
- };
878
- return {
879
- fadeIn,
880
- fadeOut,
881
- isFading
882
- };
883
- });
884
- //#endregion
885
- //#region src/store/input.ts
886
- const useInputStore = defineStore("phaser/input", () => {
887
- return { isInputActive: ref(false) };
888
- });
889
- //#endregion
890
- //#region src/util/hooks/resetLifecycleListeners.ts
890
+ //#region src/services/hooks/resetLifecycleListeners.ts
891
891
  const resetLifecycleListeners = (scene, lifecycle) => {
892
892
  const listenersMap = ExternalSceneStore.lifecycleListenersMap.get(lifecycle);
893
893
  if (!listenersMap?.has(scene.scene.key)) return;
894
894
  listenersMap.set(scene.scene.key, []);
895
895
  };
896
896
  //#endregion
897
- //#region src/util/hooks/runLifecycleListeners.ts
897
+ //#region src/services/hooks/runLifecycleListeners.ts
898
898
  const runLifecycleListeners = (scene, lifecycle, isReset = true) => {
899
899
  const listenersMap = ExternalSceneStore.lifecycleListenersMap.get(lifecycle);
900
900
  if (!listenersMap) return;
@@ -904,7 +904,15 @@ const runLifecycleListeners = (scene, lifecycle, isReset = true) => {
904
904
  if (isReset) resetLifecycleListeners(scene, lifecycle);
905
905
  };
906
906
  //#endregion
907
- //#region src/util/createSceneClass.ts
907
+ //#region src/services/hooks/runSceneShutdown.ts
908
+ const runSceneShutdown = (scene) => {
909
+ resetLifecycleListeners(scene, "Update");
910
+ resetLifecycleListeners(scene, "NextTick");
911
+ runLifecycleListeners(scene, "Shutdown");
912
+ ExternalSceneStore.sceneReadyMap.set(scene.scene.key, false);
913
+ };
914
+ //#endregion
915
+ //#region src/services/shared/createSceneClass.ts
908
916
  const createSceneClass = (key, hooks = {}) => class extends Scene {
909
917
  constructor() {
910
918
  super({ key });
@@ -928,13 +936,28 @@ const createSceneClass = (key, hooks = {}) => class extends Scene {
928
936
  }
929
937
  };
930
938
  //#endregion
931
- //#region src/util/hooks/runSceneShutdown.ts
932
- const runSceneShutdown = (scene) => {
933
- resetLifecycleListeners(scene, "Update");
934
- resetLifecycleListeners(scene, "NextTick");
935
- runLifecycleListeners(scene, "Shutdown");
936
- ExternalSceneStore.sceneReadyMap.set(scene.scene.key, false);
937
- };
939
+ //#region src/store/camera.ts
940
+ const useCameraStore = defineStore("phaser/camera", () => {
941
+ const isFading = ref(false);
942
+ const fadeIn = (scene, ...args) => {
943
+ isFading.value = true;
944
+ scene.cameras.main.fadeIn(...args);
945
+ };
946
+ const fadeOut = (scene, ...args) => {
947
+ isFading.value = true;
948
+ scene.cameras.main.fadeOut(...args);
949
+ };
950
+ return {
951
+ fadeIn,
952
+ fadeOut,
953
+ isFading
954
+ };
955
+ });
956
+ //#endregion
957
+ //#region src/store/input.ts
958
+ const useInputStore = defineStore("phaser/input", () => {
959
+ return { isInputActive: ref(false) };
960
+ });
938
961
  //#endregion
939
962
  //#region src/components/Scene.vue
940
963
  const _sfc_main$18 = /*@__PURE__*/ defineComponent({
@@ -1019,7 +1042,7 @@ const _sfc_main$18 = /*@__PURE__*/ defineComponent({
1019
1042
  }
1020
1043
  });
1021
1044
  //#endregion
1022
- //#region src/util/setterMap/RenderTextureSetterMap.ts
1045
+ //#region src/services/setterMap/RenderTextureSetterMap.ts
1023
1046
  const RenderTextureSetterMap = {
1024
1047
  ...AlphaSetterMap,
1025
1048
  ...BlendModeSetterMap,
@@ -1057,7 +1080,7 @@ const _sfc_main$17 = /*@__PURE__*/ defineComponent({
1057
1080
  }
1058
1081
  });
1059
1082
  //#endregion
1060
- //#region src/util/setterMap/RectangleSetterMap.ts
1083
+ //#region src/services/setterMap/RectangleSetterMap.ts
1061
1084
  const RectangleSetterMap = {
1062
1085
  height: ComputedSizeSetterMap.height,
1063
1086
  width: ComputedSizeSetterMap.width,
@@ -1086,7 +1109,7 @@ const _sfc_main$16 = /*@__PURE__*/ defineComponent({
1086
1109
  }
1087
1110
  });
1088
1111
  //#endregion
1089
- //#region src/util/setterMap/PolygonSetterMap.ts
1112
+ //#region src/services/setterMap/PolygonSetterMap.ts
1090
1113
  const PolygonSetterMap = {
1091
1114
  points: (gameObject) => (value) => {
1092
1115
  if (!value) return;
@@ -1117,13 +1140,13 @@ const _sfc_main$15 = /*@__PURE__*/ defineComponent({
1117
1140
  }
1118
1141
  });
1119
1142
  //#endregion
1120
- //#region src/util/setterMap/components/PathFollowerComponentSetterMap.ts
1143
+ //#region src/services/setterMap/components/PathFollowerComponentSetterMap.ts
1121
1144
  const PathFollowerComponentSetterMap = { path: (gameObject) => (value) => {
1122
1145
  if (!value) return;
1123
1146
  gameObject.setPath(value);
1124
1147
  } };
1125
1148
  //#endregion
1126
- //#region src/util/setterMap/PathFollowerSetterMap.ts
1149
+ //#region src/services/setterMap/PathFollowerSetterMap.ts
1127
1150
  const PathFollowerSetterMap = {
1128
1151
  ...AlphaSetterMap,
1129
1152
  ...BlendModeSetterMap,
@@ -1162,7 +1185,7 @@ const _sfc_main$14 = /*@__PURE__*/ defineComponent({
1162
1185
  }
1163
1186
  });
1164
1187
  //#endregion
1165
- //#region src/util/setterMap/ParticlesSetterMap.ts
1188
+ //#region src/services/setterMap/ParticlesSetterMap.ts
1166
1189
  const ParticlesSetterMap = {
1167
1190
  config: (gameObject) => (value) => {
1168
1191
  if (!value) return;
@@ -1201,7 +1224,7 @@ const _sfc_main$13 = /*@__PURE__*/ defineComponent({
1201
1224
  }
1202
1225
  });
1203
1226
  //#endregion
1204
- //#region src/util/setterMap/NinesliceSetterMap.ts
1227
+ //#region src/services/setterMap/NinesliceSetterMap.ts
1205
1228
  const NinesliceSetterMap = {
1206
1229
  height: ComputedSizeSetterMap.height,
1207
1230
  width: ComputedSizeSetterMap.width,
@@ -1239,7 +1262,7 @@ const _sfc_main$12 = /*@__PURE__*/ defineComponent({
1239
1262
  }
1240
1263
  });
1241
1264
  //#endregion
1242
- //#region src/util/setterMap/LineSetterMap.ts
1265
+ //#region src/services/setterMap/LineSetterMap.ts
1243
1266
  const LineSetterMap = {
1244
1267
  lineWidth: (gameObject) => (value) => {
1245
1268
  if (value === void 0) return;
@@ -1274,7 +1297,7 @@ const _sfc_main$11 = /*@__PURE__*/ defineComponent({
1274
1297
  }
1275
1298
  });
1276
1299
  //#endregion
1277
- //#region src/util/setterMap/shared/IsoSetterMap.ts
1300
+ //#region src/services/setterMap/shared/IsoSetterMap.ts
1278
1301
  const IsoSetterMap = {
1279
1302
  fillLeft: (gameObject) => (value) => {
1280
1303
  if (value === void 0) return;
@@ -1306,7 +1329,7 @@ const IsoSetterMap = {
1306
1329
  }
1307
1330
  };
1308
1331
  //#endregion
1309
- //#region src/util/setterMap/IsoTriangleSetterMap.ts
1332
+ //#region src/services/setterMap/IsoTriangleSetterMap.ts
1310
1333
  const IsoTriangleSetterMap = {
1311
1334
  isReversed: (gameObject) => (value) => {
1312
1335
  if (value === void 0) return;
@@ -1338,7 +1361,7 @@ const _sfc_main$10 = /*@__PURE__*/ defineComponent({
1338
1361
  }
1339
1362
  });
1340
1363
  //#endregion
1341
- //#region src/util/setterMap/IsoBoxSetterMap.ts
1364
+ //#region src/services/setterMap/IsoBoxSetterMap.ts
1342
1365
  const IsoBoxSetterMap = {
1343
1366
  ...IsoSetterMap,
1344
1367
  ...ShapeSetterMap,
@@ -1366,7 +1389,7 @@ const _sfc_main$9 = /*@__PURE__*/ defineComponent({
1366
1389
  }
1367
1390
  });
1368
1391
  //#endregion
1369
- //#region src/util/setterMap/ImageSetterMap.ts
1392
+ //#region src/services/setterMap/ImageSetterMap.ts
1370
1393
  const ImageSetterMap = {
1371
1394
  ...AlphaSetterMap,
1372
1395
  ...BlendModeSetterMap,
@@ -1404,7 +1427,7 @@ const _sfc_main$8 = /*@__PURE__*/ defineComponent({
1404
1427
  }
1405
1428
  });
1406
1429
  //#endregion
1407
- //#region src/util/setterMap/GraphicsSetterMap.ts
1430
+ //#region src/services/setterMap/GraphicsSetterMap.ts
1408
1431
  const GraphicsSetterMap = {
1409
1432
  ...AlphaSingleSetterMap,
1410
1433
  ...BlendModeSetterMap,
@@ -1482,7 +1505,7 @@ var TiledJSONExternalFile = class extends MultiFile {
1482
1505
  const loader = this.loader;
1483
1506
  const files = this.files;
1484
1507
  this.complete = true;
1485
- for (const tilesetFile of tilesetFiles) {
1508
+ await Promise.all(tilesetFiles.map(async (tilesetFile) => {
1486
1509
  const responseText = tilesetFile.xhrLoader?.responseText;
1487
1510
  if (!responseText) throw new InvalidOperationError(Operation.Read, this.addToCache.name, tilesetFile.key);
1488
1511
  const responseData = await parseXmlString(responseText);
@@ -1493,7 +1516,7 @@ var TiledJSONExternalFile = class extends MultiFile {
1493
1516
  imagewidth: tilesetData.image.width,
1494
1517
  source: void 0
1495
1518
  });
1496
- }
1519
+ }));
1497
1520
  loader.cacheManager.tilemap.add(tilemapKey, {
1498
1521
  data: tilemapData,
1499
1522
  format: Tilemaps.Formats.TILED_JSON
@@ -1531,7 +1554,7 @@ var TiledJSONExternalFile = class extends MultiFile {
1531
1554
  }
1532
1555
  };
1533
1556
  //#endregion
1534
- //#region src/util/constants.ts
1557
+ //#region src/services/shared/constants.ts
1535
1558
  const TILEMAP_TILED_JSON_EXTERNAL_KEY = "tilemapTiledJSONExternal";
1536
1559
  //#endregion
1537
1560
  //#region src/plugins/registerTiledJSONExternalLoader.ts
@@ -1585,7 +1608,7 @@ const _sfc_main$6 = /*@__PURE__*/ defineComponent({
1585
1608
  }
1586
1609
  });
1587
1610
  //#endregion
1588
- //#region src/util/setterMap/EllipseSetterMap.ts
1611
+ //#region src/services/setterMap/EllipseSetterMap.ts
1589
1612
  const EllipseSetterMap = {
1590
1613
  height: ComputedSizeSetterMap.height,
1591
1614
  smoothness: (gameObject) => (value) => {
@@ -1618,7 +1641,7 @@ const _sfc_main$5 = /*@__PURE__*/ defineComponent({
1618
1641
  }
1619
1642
  });
1620
1643
  //#endregion
1621
- //#region src/util/setterMap/CurveSetterMap.ts
1644
+ //#region src/services/setterMap/CurveSetterMap.ts
1622
1645
  const CurveSetterMap = {
1623
1646
  smoothness: (gameObject) => (value) => {
1624
1647
  if (value === void 0) return;
@@ -1649,7 +1672,7 @@ const _sfc_main$4 = /*@__PURE__*/ defineComponent({
1649
1672
  }
1650
1673
  });
1651
1674
  //#endregion
1652
- //#region src/util/setterMap/ContainerSetterMap.ts
1675
+ //#region src/services/setterMap/ContainerSetterMap.ts
1653
1676
  const ContainerSetterMap = {
1654
1677
  ...AlphaSingleSetterMap,
1655
1678
  ...BlendModeSetterMap,
@@ -1670,7 +1693,7 @@ const _sfc_main$3 = /*@__PURE__*/ defineComponent({
1670
1693
  },
1671
1694
  setup(__props, { emit: __emit }) {
1672
1695
  const emit = __emit;
1673
- const container = ref();
1696
+ const container = shallowRef();
1674
1697
  useInitializeGameObject((scene) => {
1675
1698
  const { children, x, y } = __props.configuration;
1676
1699
  container.value = scene.add.container(x, y, children);
@@ -1684,7 +1707,7 @@ const _sfc_main$3 = /*@__PURE__*/ defineComponent({
1684
1707
  }
1685
1708
  });
1686
1709
  //#endregion
1687
- //#region src/util/setterMap/ArcSetterMap.ts
1710
+ //#region src/services/setterMap/ArcSetterMap.ts
1688
1711
  const ArcSetterMap = {
1689
1712
  closePath: (gameObject) => (value) => {
1690
1713
  if (value === void 0) return;
@@ -1727,7 +1750,7 @@ const _sfc_main$2 = /*@__PURE__*/ defineComponent({
1727
1750
  }
1728
1751
  });
1729
1752
  //#endregion
1730
- //#region src/util/setterMap/BitmapTextSetterMap.ts
1753
+ //#region src/services/setterMap/BitmapTextSetterMap.ts
1731
1754
  const BitmapTextSetterMap = {
1732
1755
  align: (gameObject) => (value) => {
1733
1756
  if (value === void 0) return;
@@ -1869,7 +1892,11 @@ const onUpdate = (...args) => {
1869
1892
  pushListener("Update", ...args);
1870
1893
  };
1871
1894
  //#endregion
1872
- //#region src/util/sleepScene.ts
1895
+ //#region src/models/plugins/TilemapFile.ts
1896
+ const JSONFile = Loader.FileTypes.JSONFile;
1897
+ var TilemapFile = class extends JSONFile {};
1898
+ //#endregion
1899
+ //#region src/services/shared/sleepScene.ts
1873
1900
  const sleepScene = (scene, durationMs) => new Promise((resolve) => {
1874
1901
  const settle = () => {
1875
1902
  scene.events.off(Scenes.Events.SHUTDOWN, settle);
@@ -1879,8 +1906,4 @@ const sleepScene = (scene, durationMs) => new Promise((resolve) => {
1879
1906
  scene.events.once(Scenes.Events.SHUTDOWN, settle);
1880
1907
  });
1881
1908
  //#endregion
1882
- //#region src/models/plugins/TilemapFile.ts
1883
- const JSONFile = Loader.FileTypes.JSONFile;
1884
- var TilemapFile = class extends JSONFile {};
1885
- //#endregion
1886
1909
  export { AlphaSetterMap, AlphaSingleSetterMap, AnimationSetterMap, _sfc_main as Arc, ArcSetterMap, BaseTextureSetterMap, _sfc_main$1 as BitmapText, BitmapTextSetterMap, BlendModeSetterMap, _sfc_main$2 as Circle, ComputedSizeSetterMap, _sfc_main$3 as Container, ContainerSetterMap, _sfc_main$4 as Curve, CurveSetterMap, DepthSetterMap, DisplaySizeSetterMap, EVENT_PREFIX, _sfc_main$5 as Ellipse, EllipseSetterMap, ExternalSceneStore, FlipSetterMap, _sfc_main$6 as Game, GameObjectEventMap, GameObjectSetterMap, GlobalSetterMap, _sfc_main$7 as Graphics, GraphicsSetterMap, _sfc_main$8 as Image, ImageSetterMap, InjectionKeyMap, _sfc_main$9 as IsoBox, IsoBoxSetterMap, IsoSetterMap, _sfc_main$10 as IsoTriangle, IsoTriangleSetterMap, Lifecycle, _sfc_main$11 as Line, LineSetterMap, MaskSetterMap, _sfc_main$12 as Nineslice, NinesliceSetterMap, OriginSetterMap, _sfc_main$13 as Particles, ParticlesSetterMap, _sfc_main$14 as PathFollower, PathFollowerComponentSetterMap, PathFollowerSetterMap, _sfc_main$15 as Polygon, PolygonSetterMap, _sfc_main$16 as Rectangle, RectangleSetterMap, RenderNodesSetterMap, _sfc_main$17 as RenderTexture, RenderTextureSetterMap, _sfc_main$18 as Scene, ScrollFactorSetterMap, ShapeSetterMap, SizeSetterMap, _sfc_main$19 as Sprite, SpriteSetterMap, _sfc_main$20 as Star, StarSetterMap, TILEMAP_TILED_JSON_EXTERNAL_KEY, _sfc_main$21 as Text, TextSetterMap, TextureCropSetterMap, TextureSetterMap, _sfc_main$22 as TileSprite, TileSpriteSetterMap, TiledJSONExternalFile, _sfc_main$23 as Tilemap, TilemapFile, TilesetFile, TintSetterMap, TransformSetterMap, _sfc_main$24 as Triangle, TriangleSetterMap, TweenSetterMap, _sfc_main$25 as Video, VideoSetterMap, VisibleSetterMap, _sfc_main$26 as Zone, ZoneSetterMap, checkIsEvent, createSceneClass, getDepthInsertIndex, getEventName, getInitializeGameObjectLifecycleHook, getScene, getUpdateEvent, onCreate, onInit, onNextTick, onPreload, onShutdown, onUpdate, pushGameObject, pushListener, registerTiledJSONExternalLoader, resetLifecycleListeners, runLifecycleListeners, runSceneShutdown, sleepScene, useAnimations, useCameraStore, useGame, useInitializeGameObject, useInitializeGameObjectEvents, useInitializeGameObjectSetters, useInjectSceneKey, useInputStore, usePhaserStore, useTextStore, useTween };