vue-phaserjs 2.40.0 → 3.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 (4) hide show
  1. package/LICENSE +201 -201
  2. package/dist/index.d.ts +466 -168
  3. package/dist/index.js +48 -43
  4. package/package.json +5 -5
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, defineComponent, getCurrentInstance, inject, nextTick, onMounted, onUnmounted, openBlock, provide, ref, renderSlot, toValue, useTemplateRef, watch } from "vue";
2
2
  import { ID_SEPARATOR, InvalidOperationError, NotFoundError, NotInitializedError, Operation, checkIsPlainObject, takeOne, toKebabCase } from "@esposter/shared";
3
3
  import ClickOutside from "phaser4-rex-plugins/plugins/clickoutside.js";
4
- import { Animations, Cameras, Game, Loader, Scene, Scenes, Tilemaps, Tweens, Utils } from "phaser";
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
7
  //#region src/util/getDepthInsertIndex.ts
@@ -199,9 +199,8 @@ const usePhaserStore = defineStore("phaser", () => {
199
199
  const removeParallelScene = (scene, targetSceneKey) => {
200
200
  const index = parallelSceneKeys.value.indexOf(targetSceneKey);
201
201
  if (index === -1) return;
202
- const parallelSceneKey = parallelSceneKeys.value[index];
203
202
  parallelSceneKeys.value = parallelSceneKeys.value.toSpliced(index, 1);
204
- scene.scene.stop(parallelSceneKey);
203
+ scene.scene.stop(targetSceneKey);
205
204
  };
206
205
  return {
207
206
  game,
@@ -299,9 +298,9 @@ const DepthSetterMap = { depth: (gameObject) => (value) => {
299
298
  if (value === void 0) return;
300
299
  gameObject.setDepth(value);
301
300
  if (!gameObject.parentContainer) return;
302
- const i = getDepthInsertIndex(gameObject.parentContainer.list, gameObject.depth);
303
- if (i === -1) gameObject.parentContainer.bringToTop(gameObject);
304
- else gameObject.parentContainer.moveTo(gameObject, Math.max(i - 1, 0));
301
+ const depthInsertIndex = getDepthInsertIndex(gameObject.parentContainer.list, gameObject.depth);
302
+ if (depthInsertIndex === -1) gameObject.parentContainer.bringToTop(gameObject);
303
+ else gameObject.parentContainer.moveTo(gameObject, Math.max(depthInsertIndex - 1, 0));
305
304
  } };
306
305
  //#endregion
307
306
  //#region src/util/setterMap/components/OriginSetterMap.ts
@@ -395,8 +394,8 @@ const TweenSetterMap = {
395
394
  },
396
395
  tweenchain: (gameObject, emit) => (value) => {
397
396
  if (!value) return;
398
- gameObject.scene.add.tweenchain(value.map((c) => ({
399
- ...c,
397
+ gameObject.scene.add.tweenchain(value.map((configuration) => ({
398
+ ...configuration,
400
399
  targets: gameObject
401
400
  }))).on(Tweens.Events.TWEEN_COMPLETE, () => {
402
401
  emit("update:tweenchain", void 0);
@@ -415,8 +414,8 @@ const ZoneSetterMap = {
415
414
  ...ComputedSizeSetterMap,
416
415
  ...DepthSetterMap,
417
416
  ...OriginSetterMap,
418
- ...TransformSetterMap,
419
417
  ...ScrollFactorSetterMap,
418
+ ...TransformSetterMap,
420
419
  ...VisibleSetterMap,
421
420
  ...GlobalSetterMap
422
421
  };
@@ -518,6 +517,16 @@ const TintSetterMap = {
518
517
  //#endregion
519
518
  //#region src/util/setterMap/VideoSetterMap.ts
520
519
  const VideoSetterMap = {
520
+ key: (gameObject) => (value) => {
521
+ if (!value) return;
522
+ gameObject.changeSource(value);
523
+ },
524
+ muted: (gameObject) => (value) => {
525
+ gameObject.setMute(value);
526
+ },
527
+ volume: (gameObject) => (value) => {
528
+ gameObject.setVolume(value);
529
+ },
521
530
  ...AlphaSetterMap,
522
531
  ...BlendModeSetterMap,
523
532
  ...DepthSetterMap,
@@ -530,17 +539,7 @@ const VideoSetterMap = {
530
539
  ...TintSetterMap,
531
540
  ...TransformSetterMap,
532
541
  ...VisibleSetterMap,
533
- ...GlobalSetterMap,
534
- key: (gameObject) => (value) => {
535
- if (!value) return;
536
- gameObject.changeSource(value);
537
- },
538
- muted: (gameObject) => (value) => {
539
- gameObject.setMute(value);
540
- },
541
- volume: (gameObject) => (value) => {
542
- gameObject.setVolume(value);
543
- }
542
+ ...GlobalSetterMap
544
543
  };
545
544
  //#endregion
546
545
  //#region src/components/Video.vue
@@ -813,7 +812,7 @@ const AnimationSetterMap = {
813
812
  emit(event);
814
813
  });
815
814
  if (gameObject.scene.anims.exists(configuration.key)) continue;
816
- else if (!gameObject.scene.anims.create(configuration)) throw new InvalidOperationError(Operation.Create, "Animation", configuration.key);
815
+ if (!gameObject.scene.anims.create(configuration)) throw new InvalidOperationError(Operation.Create, "Animation", configuration.key);
817
816
  }
818
817
  },
819
818
  playAnimationKey: (gameObject) => (value) => {
@@ -929,6 +928,14 @@ const createSceneClass = (key, hooks = {}) => class extends Scene {
929
928
  }
930
929
  };
931
930
  //#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
+ };
938
+ //#endregion
932
939
  //#region src/components/Scene.vue
933
940
  const _sfc_main$18 = /*@__PURE__*/ defineComponent({
934
941
  __name: "Scene",
@@ -963,13 +970,16 @@ const _sfc_main$18 = /*@__PURE__*/ defineComponent({
963
970
  const fadeOutCompleteListener = () => {
964
971
  isFading.value = false;
965
972
  };
973
+ const cameraFadeListeners = [
974
+ [Cameras.Scene2D.Events.FADE_IN_START, fadeStartListener],
975
+ [Cameras.Scene2D.Events.FADE_IN_COMPLETE, fadeInCompleteListener],
976
+ [Cameras.Scene2D.Events.FADE_OUT_START, fadeStartListener],
977
+ [Cameras.Scene2D.Events.FADE_OUT_COMPLETE, fadeOutCompleteListener]
978
+ ];
966
979
  const NewScene = createSceneClass(__props.sceneKey, {
967
980
  onCreate: (scene) => {
968
981
  emit("create", scene);
969
- scene.cameras.main.on(Cameras.Scene2D.Events.FADE_IN_START, fadeStartListener);
970
- scene.cameras.main.on(Cameras.Scene2D.Events.FADE_IN_COMPLETE, fadeInCompleteListener);
971
- scene.cameras.main.on(Cameras.Scene2D.Events.FADE_OUT_START, fadeStartListener);
972
- scene.cameras.main.on(Cameras.Scene2D.Events.FADE_OUT_COMPLETE, fadeOutCompleteListener);
982
+ for (const [event, listener] of cameraFadeListeners) scene.cameras.main.on(event, listener);
973
983
  isInputActive.value = true;
974
984
  },
975
985
  onInit: (scene) => emit("init", scene),
@@ -981,14 +991,8 @@ const _sfc_main$18 = /*@__PURE__*/ defineComponent({
981
991
  };
982
992
  const shutdownListener = () => {
983
993
  const scene = getScene(__props.sceneKey);
984
- resetLifecycleListeners(scene, "Update");
985
- resetLifecycleListeners(scene, "NextTick");
986
- runLifecycleListeners(scene, "Shutdown");
987
- scene.cameras.main.off(Cameras.Scene2D.Events.FADE_IN_START, fadeStartListener);
988
- scene.cameras.main.off(Cameras.Scene2D.Events.FADE_IN_COMPLETE, fadeInCompleteListener);
989
- scene.cameras.main.off(Cameras.Scene2D.Events.FADE_OUT_START, fadeStartListener);
990
- scene.cameras.main.off(Cameras.Scene2D.Events.FADE_OUT_COMPLETE, fadeOutCompleteListener);
991
- ExternalSceneStore.sceneReadyMap.set(__props.sceneKey, false);
994
+ runSceneShutdown(scene);
995
+ for (const [event, listener] of cameraFadeListeners) scene.cameras.main.off(event, listener);
992
996
  emit("shutdown", scene);
993
997
  };
994
998
  onMounted(async () => {
@@ -1160,6 +1164,10 @@ const _sfc_main$14 = /*@__PURE__*/ defineComponent({
1160
1164
  //#endregion
1161
1165
  //#region src/util/setterMap/ParticlesSetterMap.ts
1162
1166
  const ParticlesSetterMap = {
1167
+ config: (gameObject) => (value) => {
1168
+ if (!value) return;
1169
+ gameObject.setConfig(value);
1170
+ },
1163
1171
  ...AlphaSingleSetterMap,
1164
1172
  ...BlendModeSetterMap,
1165
1173
  ...DepthSetterMap,
@@ -1169,11 +1177,7 @@ const ParticlesSetterMap = {
1169
1177
  ...TextureSetterMap,
1170
1178
  ...TransformSetterMap,
1171
1179
  ...VisibleSetterMap,
1172
- ...GlobalSetterMap,
1173
- config: (gameObject) => (value) => {
1174
- if (!value) return;
1175
- gameObject.setConfig(value);
1176
- }
1180
+ ...GlobalSetterMap
1177
1181
  };
1178
1182
  //#endregion
1179
1183
  //#region src/components/Particles.vue
@@ -1451,6 +1455,7 @@ var TilesetFile = class extends XMLFile {
1451
1455
  const GetFastValue = Utils.Objects.GetFastValue;
1452
1456
  const JSONFile$1 = Loader.FileTypes.JSONFile;
1453
1457
  const MultiFile = Loader.MultiFile;
1458
+ const PUBLIC_FOLDER = "public";
1454
1459
  var TiledJSONExternalFile = class extends MultiFile {
1455
1460
  constructor(loader, key, tilemapURL, path, baseURL, tilemapXhrSettings, tilesetXhrSettings) {
1456
1461
  if (checkIsPlainObject(key)) {
@@ -1513,7 +1518,7 @@ var TiledJSONExternalFile = class extends MultiFile {
1513
1518
  loader.setPath(path);
1514
1519
  loader.setPrefix(prefix);
1515
1520
  for (const [tilesetIndex, tileset] of tilesets.entries()) {
1516
- const pathIndex = tileset.source.indexOf("public");
1521
+ const pathIndex = tileset.source.indexOf(PUBLIC_FOLDER);
1517
1522
  if (pathIndex === -1) throw new NotFoundError(this.onFileComplete.name, tileset.source);
1518
1523
  const relativePath = tileset.source.slice(pathIndex + 6);
1519
1524
  const tilesetFile = new TilesetFile(tilesetIndex, loader, `${file.key}${ID_SEPARATOR}Tileset${ID_SEPARATOR}${relativePath}`, relativePath, tilesetXhrSettings);
@@ -1563,11 +1568,11 @@ const _sfc_main$6 = /*@__PURE__*/ defineComponent({
1563
1568
  ...__props.configuration,
1564
1569
  parent: canvasRoot.value
1565
1570
  });
1566
- storeGame.value.events.on("ready", readyListener);
1571
+ storeGame.value.events.on(Core.Events.READY, readyListener);
1567
1572
  });
1568
1573
  onUnmounted(() => {
1569
1574
  const game = useGame();
1570
- game.events.off("ready", readyListener);
1575
+ game.events.off(Core.Events.READY, readyListener);
1571
1576
  game.destroy(true);
1572
1577
  storeGame.value = void 0;
1573
1578
  });
@@ -1649,8 +1654,8 @@ const ContainerSetterMap = {
1649
1654
  ...AlphaSingleSetterMap,
1650
1655
  ...BlendModeSetterMap,
1651
1656
  ...DepthSetterMap,
1652
- ...ScrollFactorSetterMap,
1653
1657
  ...MaskSetterMap,
1658
+ ...ScrollFactorSetterMap,
1654
1659
  ...TransformSetterMap,
1655
1660
  ...VisibleSetterMap,
1656
1661
  ...GlobalSetterMap
@@ -1878,4 +1883,4 @@ const sleepScene = (scene, durationMs) => new Promise((resolve) => {
1878
1883
  const JSONFile = Loader.FileTypes.JSONFile;
1879
1884
  var TilemapFile = class extends JSONFile {};
1880
1885
  //#endregion
1881
- 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, sleepScene, useAnimations, useCameraStore, useGame, useInitializeGameObject, useInitializeGameObjectEvents, useInitializeGameObjectSetters, useInjectSceneKey, useInputStore, usePhaserStore, useTextStore, useTween };
1886
+ 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 };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue-phaserjs",
3
- "version": "2.40.0",
3
+ "version": "3.0.0",
4
4
  "description": "A component library to integrate Phaser Framework with Vue.",
5
5
  "keywords": [
6
6
  "component-library",
@@ -55,7 +55,7 @@
55
55
  },
56
56
  "devDependencies": {
57
57
  "@arethetypeswrong/core": "^0.18.5",
58
- "@esposter/configuration": "2.40.0",
58
+ "@esposter/configuration": "3.0.0",
59
59
  "@vue/test-utils": "^2.5.0",
60
60
  "publint": "^0.3.24",
61
61
  "tsdown": "^0.23.0",
@@ -65,8 +65,8 @@
65
65
  "vue-tsc": "^3.3.11"
66
66
  },
67
67
  "peerDependencies": {
68
- "@esposter/shared": "2.39.0",
69
- "parse-tmx": "2.39.0",
68
+ "@esposter/shared": "2.40.0",
69
+ "parse-tmx": "2.40.0",
70
70
  "phaser": "^4.2.1",
71
71
  "phaser4-rex-plugins": "^4.2.0",
72
72
  "pinia": "^4.0.3",
@@ -75,5 +75,5 @@
75
75
  "inlinedDependencies": {
76
76
  "type-fest": "5.9.0"
77
77
  },
78
- "gitHead": "09506078db97923eeecb4ff602cf01015f237dc8"
78
+ "gitHead": "5ea72289bdd594e598aab8fefd5686df2a642a7e"
79
79
  }