bard-legends-framework 0.10.9 → 0.11.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 (109) hide show
  1. package/dist/game-entities/controller/controller.d.ts +0 -1
  2. package/dist/game-entities/controller/controller.js +1 -0
  3. package/dist/game-entities/controller/controller.test.js +2 -2
  4. package/dist/game-entities/entity/entity.d.ts +8 -6
  5. package/dist/game-entities/entity/entity.js +5 -7
  6. package/dist/game-entities/entity/entity.test.js +40 -134
  7. package/dist/game-entities/entity/helpers/entity-store.helper.d.ts +6 -9
  8. package/dist/game-entities/entity/helpers/entity-store.helper.js +22 -57
  9. package/dist/game-entities/entity/helpers/entity-store.helper.test.d.ts +1 -0
  10. package/dist/game-entities/entity/helpers/entity-store.helper.test.js +136 -0
  11. package/dist/game-entities/entity/helpers/entity-views.helper.d.ts +1 -1
  12. package/dist/game-entities/entity/helpers/entity-views.helper.js +5 -3
  13. package/dist/game-entities/entity/singleton-entity.d.ts +3 -3
  14. package/dist/game-entities/entity/singleton-entity.js +1 -1
  15. package/dist/game-entities/entity/singleton-entity.test.js +2 -29
  16. package/dist/game-entities/index.d.ts +1 -3
  17. package/dist/game-entities/index.js +3 -7
  18. package/dist/game-entities/scene/scene.d.ts +3 -3
  19. package/dist/game-entities/scene/scene.js +31 -25
  20. package/dist/game-entities/scene/scene.test.js +4 -32
  21. package/dist/game-entities/service/service.js +5 -3
  22. package/dist/game-entities/service/service.test.js +2 -28
  23. package/dist/game-entities/unit-test.helper.d.ts +5 -0
  24. package/dist/game-entities/unit-test.helper.js +14 -0
  25. package/dist/game-entities/update-cycle.d.ts +15 -4
  26. package/dist/game-entities/update-cycle.js +14 -9
  27. package/dist/game-entities/view/view.d.ts +5 -6
  28. package/dist/game-entities/view/view.js +5 -17
  29. package/dist/game-entities/view/view.test.js +36 -244
  30. package/dist/physics/entity-types/immovable-physics-entity.d.ts +1 -3
  31. package/dist/physics/entity-types/immovable-physics-entity.js +1 -3
  32. package/dist/physics/entity-types/movable-entity.js +4 -4
  33. package/dist/physics/entity-types/movable-physics-entity.d.ts +2 -3
  34. package/dist/physics/entity-types/movable-physics-entity.js +5 -6
  35. package/dist/physics/entity-types/physics-entity.d.ts +2 -1
  36. package/dist/physics/entity-types/physics-entity.js +3 -2
  37. package/dist/physics/interfaces.d.ts +1 -1
  38. package/dist/physics/module//342/232/234/357/270/217gateways/controllers/physics-internal.controller.d.ts +3 -3
  39. package/dist/physics/module//342/232/234/357/270/217gateways/controllers/physics.controller.d.ts +1 -1
  40. package/dist/physics/module//342/232/234/357/270/217gateways/physics-internal.gateway.d.ts +3 -3
  41. package/dist/physics/module//342/232/234/357/270/217gateways/physics.gateway.d.ts +1 -1
  42. package/dist/physics/module//360/237/223/220services/creation/physics-world.service.js +2 -2
  43. package/dist/physics/module//360/237/223/220services/path-finding/availability-grid.service.js +1 -1
  44. package/dist/physics/module//360/237/223/220services/path-finding/path-finder.service.js +1 -1
  45. package/dist/physics/module//360/237/223/220services/query/physics-query.service.d.ts +3 -3
  46. package/dist/physics/module//360/237/223/220services/test-visuals/test-visuals.service.js +17 -7
  47. package/dist/physics/module//360/237/247/212entities/physics-world.entity.js +2 -2
  48. package/dist/pixi/components/mouse-wheel-listener.ui.d.ts +2 -1
  49. package/dist/pixi/components/mouse-wheel-listener.ui.js +4 -3
  50. package/dist/pixi/display-object/container-attributes.d.ts +2 -3
  51. package/dist/pixi/display-object/container-attributes.js +2 -3
  52. package/dist/pixi/display-object/container.d.ts +0 -3
  53. package/dist/pixi/display-object/container.js +0 -10
  54. package/dist/pixi/display-object/objects/sprite/glow-sprite-generator.js +5 -3
  55. package/dist/pixi/game.d.ts +6 -2
  56. package/dist/pixi/game.js +14 -5
  57. package/dist/pixi/modules/CAMERA//360/237/247/212entities/camera.entity.js +4 -4
  58. package/dist/pixi/modules/CAMERA//360/237/247/251views/camera.view.js +1 -1
  59. package/dist/pixi/services/keyboard/keyboard.d.ts +4 -2
  60. package/dist/pixi/services/keyboard/keyboard.js +6 -4
  61. package/dist/pixi/services/mouse/mouse-target-focus.service.d.ts +2 -1
  62. package/dist/pixi/services/mouse/mouse-target-focus.service.js +6 -5
  63. package/dist/pixi/services/mouse/mouse.service.d.ts +15 -5
  64. package/dist/pixi/services/mouse/mouse.service.js +38 -18
  65. package/dist/utilities/animator/animating-content/fade-in-content.d.ts +18 -0
  66. package/dist/utilities/animator/animating-content/fade-in-content.js +37 -0
  67. package/dist/utilities/animator/animating-content/slide-in-content.d.ts +37 -0
  68. package/dist/utilities/animator/animating-content/slide-in-content.js +99 -0
  69. package/dist/utilities/animator/animations.d.ts +37 -0
  70. package/dist/utilities/animator/animations.js +88 -0
  71. package/dist/utilities/animator/animator.d.ts +61 -0
  72. package/dist/utilities/animator/animator.js +315 -0
  73. package/dist/utilities/animator/animator.test.d.ts +1 -0
  74. package/dist/utilities/animator/animator.test.js +867 -0
  75. package/dist/utilities/animator/index.d.ts +7 -0
  76. package/dist/utilities/animator/index.js +24 -0
  77. package/dist/utilities/animator/state-animation/slide-state-animation.d.ts +24 -0
  78. package/dist/utilities/animator/state-animation/slide-state-animation.js +130 -0
  79. package/dist/utilities/animator/state-animation/slide-state-animation.test.d.ts +1 -0
  80. package/dist/utilities/animator/state-animation/slide-state-animation.test.js +301 -0
  81. package/dist/utilities/animator/state-animation/state-animation.d.ts +33 -0
  82. package/dist/utilities/animator/state-animation/state-animation.js +146 -0
  83. package/dist/utilities/animator/state-animation/state-animation.test.d.ts +1 -0
  84. package/dist/utilities/animator/state-animation/state-animation.test.js +335 -0
  85. package/dist/utilities/animator/state-animation/visit-disappear-state-animation.d.ts +32 -0
  86. package/dist/utilities/animator/state-animation/visit-disappear-state-animation.js +168 -0
  87. package/dist/utilities/animator/state-animation/visit-disappear-state-animation.test.d.ts +1 -0
  88. package/dist/utilities/animator/state-animation/visit-disappear-state-animation.test.js +431 -0
  89. package/dist/utilities/data-structures/vector-set/vector-set.d.ts +7 -0
  90. package/dist/utilities/data-structures/vector-set/vector-set.js +26 -0
  91. package/dist/utilities/delta-time/delta-time.d.ts +3 -0
  92. package/dist/utilities/delta-time/delta-time.js +10 -0
  93. package/dist/utilities/grid-algorithms/closest-available-space/closest-available-space.helper.d.ts +6 -0
  94. package/dist/utilities/grid-algorithms/closest-available-space/closest-available-space.helper.js +55 -0
  95. package/dist/utilities/grid-algorithms/closest-available-space/closest-available-space.helper.test.d.ts +1 -0
  96. package/dist/utilities/grid-algorithms/closest-available-space/closest-available-space.helper.test.js +100 -0
  97. package/dist/utilities/grid-algorithms/path-finder/path-finder.d.ts +8 -0
  98. package/dist/utilities/grid-algorithms/path-finder/path-finder.js +98 -0
  99. package/dist/utilities/grid-algorithms/path-finder/path-finder.test.d.ts +1 -0
  100. package/dist/utilities/grid-algorithms/path-finder/path-finder.test.js +155 -0
  101. package/dist/utilities/grid-algorithms/position-to-grid-position-converter.d.ts +6 -0
  102. package/dist/utilities/grid-algorithms/position-to-grid-position-converter.js +17 -0
  103. package/dist/utilities/grid-algorithms/vector-field-path-finder/vector-field-path-finder.d.ts +18 -0
  104. package/dist/utilities/grid-algorithms/vector-field-path-finder/vector-field-path-finder.js +129 -0
  105. package/dist/utilities/grid-algorithms/vector-field-path-finder/vector-field-path-finder.test.d.ts +1 -0
  106. package/dist/utilities/grid-algorithms/vector-field-path-finder/vector-field-path-finder.test.js +254 -0
  107. package/dist/utilities/index.d.ts +6 -6
  108. package/dist/utilities/index.js +6 -6
  109. package/package.json +3 -3
@@ -1,6 +1,6 @@
1
- import { Entity } from './entity';
1
+ import { Entity, EntityClassType } from './entity';
2
2
  export declare abstract class SingletonEntity extends Entity {
3
- static getInstance<T extends SingletonEntity>(this: new (...args: any[]) => T): T | undefined;
4
- static getInstanceOrFail<T extends SingletonEntity>(this: new (...args: any[]) => T): T;
3
+ static getInstance<T extends SingletonEntity>(this: EntityClassType<T>): T | undefined;
4
+ static getInstanceOrFail<T extends SingletonEntity>(this: EntityClassType<T>): T;
5
5
  constructor();
6
6
  }
@@ -15,7 +15,7 @@ class SingletonEntity extends entity_1.Entity {
15
15
  let entities = this.constructor.getEntities();
16
16
  if (entities.length > 1) {
17
17
  this.attachToRoot();
18
- throw new Error(`SingletonEntity: entity is decorated as singleton but multiple instances are created! Name: "${this.constructor.name}"`);
18
+ throw new Error(`SingletonEntity: entity is decorated as singleton but multiple instances are created! "${this}"`);
19
19
  }
20
20
  }
21
21
  }
@@ -1,45 +1,19 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
2
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
3
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
4
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
23
7
  };
24
- var __importStar = (this && this.__importStar) || function (mod) {
25
- if (mod && mod.__esModule) return mod;
26
- var result = {};
27
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
- __setModuleDefault(result, mod);
29
- return result;
30
- };
31
8
  Object.defineProperty(exports, "__esModule", { value: true });
32
- const ActionsLib = __importStar(require("actions-lib"));
33
9
  const vitest_1 = require("vitest");
34
- const decorate_actions_lib_1 = require("../base/helpers/decorate-actions-lib");
35
10
  const scene_1 = require("../scene/scene");
36
- const update_cycle_1 = require("../update-cycle");
11
+ const unit_test_helper_1 = require("../unit-test.helper");
37
12
  const entity_1 = require("./entity");
38
13
  const singleton_entity_1 = require("./singleton-entity");
39
- decorate_actions_lib_1.ActionsLibDecorator.decorate(ActionsLib);
40
14
  (0, vitest_1.describe)('SINGLETON ENTITY', () => {
41
15
  (0, vitest_1.beforeEach)(() => {
42
- update_cycle_1.UpdateCycle.hardResetAction.trigger();
16
+ unit_test_helper_1.UnitTestHelper.hardReset();
43
17
  let SampleScene = class SampleScene extends scene_1.Scene {
44
18
  async init() { }
45
19
  update() { }
@@ -83,6 +57,5 @@ decorate_actions_lib_1.ActionsLibDecorator.decorate(ActionsLib);
83
57
  new Sample().attach(baseEntity);
84
58
  (0, vitest_1.expect)(() => new Sample()).toThrow();
85
59
  });
86
- // TODO: test continuesSubscription
87
60
  });
88
61
  //# sourceMappingURL=singleton-entity.test.js.map
@@ -1,10 +1,8 @@
1
- export { Attachable } from './base/attachable';
2
- export { ActionsLibDecorator } from './base/helpers/decorate-actions-lib';
3
- export { ReferanceVariable } from './base/helpers/referance-variable';
4
1
  export { ControllerDecorator, ControllerDecoratorMeta, ControllerLink } from './controller/controller';
5
2
  export { Entity, EntityDecorator } from './entity/entity';
6
3
  export { SingletonEntity } from './entity/singleton-entity';
7
4
  export { Scene, SceneDecorator } from './scene/scene';
8
5
  export { Service, ServiceDecorator } from './service/service';
6
+ export { UnitTestHelper } from './unit-test.helper';
9
7
  export { UpdateCycle } from './update-cycle';
10
8
  export { View, ViewDecorator, ViewDecoratorMeta } from './view/view';
@@ -1,12 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ViewDecorator = exports.View = exports.UpdateCycle = exports.ServiceDecorator = exports.Service = exports.SceneDecorator = exports.Scene = exports.SingletonEntity = exports.EntityDecorator = exports.Entity = exports.ControllerLink = exports.ControllerDecorator = exports.ReferanceVariable = exports.ActionsLibDecorator = exports.Attachable = void 0;
4
- var attachable_1 = require("./base/attachable");
5
- Object.defineProperty(exports, "Attachable", { enumerable: true, get: function () { return attachable_1.Attachable; } });
6
- var decorate_actions_lib_1 = require("./base/helpers/decorate-actions-lib");
7
- Object.defineProperty(exports, "ActionsLibDecorator", { enumerable: true, get: function () { return decorate_actions_lib_1.ActionsLibDecorator; } });
8
- var referance_variable_1 = require("./base/helpers/referance-variable");
9
- Object.defineProperty(exports, "ReferanceVariable", { enumerable: true, get: function () { return referance_variable_1.ReferanceVariable; } });
3
+ exports.ViewDecorator = exports.View = exports.UpdateCycle = exports.UnitTestHelper = exports.ServiceDecorator = exports.Service = exports.SceneDecorator = exports.Scene = exports.SingletonEntity = exports.EntityDecorator = exports.Entity = exports.ControllerLink = exports.ControllerDecorator = void 0;
10
4
  var controller_1 = require("./controller/controller");
11
5
  Object.defineProperty(exports, "ControllerDecorator", { enumerable: true, get: function () { return controller_1.ControllerDecorator; } });
12
6
  Object.defineProperty(exports, "ControllerLink", { enumerable: true, get: function () { return controller_1.ControllerLink; } });
@@ -21,6 +15,8 @@ Object.defineProperty(exports, "SceneDecorator", { enumerable: true, get: functi
21
15
  var service_1 = require("./service/service");
22
16
  Object.defineProperty(exports, "Service", { enumerable: true, get: function () { return service_1.Service; } });
23
17
  Object.defineProperty(exports, "ServiceDecorator", { enumerable: true, get: function () { return service_1.ServiceDecorator; } });
18
+ var unit_test_helper_1 = require("./unit-test.helper");
19
+ Object.defineProperty(exports, "UnitTestHelper", { enumerable: true, get: function () { return unit_test_helper_1.UnitTestHelper; } });
24
20
  var update_cycle_1 = require("./update-cycle");
25
21
  Object.defineProperty(exports, "UpdateCycle", { enumerable: true, get: function () { return update_cycle_1.UpdateCycle; } });
26
22
  var view_1 = require("./view/view");
@@ -1,12 +1,12 @@
1
- import { Variable } from 'actions-lib';
2
- import { Attachable } from '../base/attachable';
1
+ import { Attachable } from 'actions-lib';
3
2
  export type SceneClassType = new (...services: unknown[]) => Scene<unknown, unknown>;
4
3
  type SceneInput<T> = T extends Scene<infer I, any> ? I : never;
5
4
  type SceneOutput<T> = T extends Scene<any, infer O> ? O : never;
6
5
  export declare function SceneDecorator(): (SceneClass: SceneClassType) => any;
7
6
  export declare abstract class Scene<InputType, OutputType> extends Attachable {
8
7
  private static sceneTransitioning;
9
- static activeScene: Variable<Scene<unknown, unknown> | undefined>;
8
+ private static readonly _activeScene;
9
+ static readonly activeScene: import("actions-lib").Notifier<Scene<unknown, unknown> | undefined>;
10
10
  static getActiveScene(this: typeof Scene): Scene<unknown, unknown> | undefined;
11
11
  static getActiveSceneOrFail(this: typeof Scene): Scene<unknown, unknown>;
12
12
  static isActive<T extends Scene<unknown, unknown>>(this: new (...args: unknown[]) => T): boolean;
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Scene = exports.SceneDecorator = void 0;
4
4
  const actions_lib_1 = require("actions-lib");
5
- const attachable_1 = require("../base/attachable");
6
5
  const service_1 = require("../service/service");
6
+ const unit_test_helper_1 = require("../unit-test.helper");
7
7
  const update_cycle_1 = require("../update-cycle");
8
8
  function SceneDecorator() {
9
9
  return function (SceneClass) {
@@ -15,60 +15,59 @@ function SceneDecorator() {
15
15
  };
16
16
  }
17
17
  exports.SceneDecorator = SceneDecorator;
18
- class Scene extends attachable_1.Attachable {
18
+ class Scene extends actions_lib_1.Attachable {
19
19
  static { this.sceneTransitioning = false; }
20
- static { this.activeScene = new actions_lib_1.Variable(); }
20
+ static { this._activeScene = new actions_lib_1.Variable(undefined); }
21
+ static { this.activeScene = this._activeScene.notifier; }
21
22
  static getActiveScene() {
22
- return Scene.activeScene.value;
23
+ return Scene._activeScene.value;
23
24
  }
24
25
  static getActiveSceneOrFail() {
25
- if (!Scene.activeScene.value) {
26
+ if (!Scene._activeScene.value) {
26
27
  throw new Error(`Scene: getActiveSceneOrFail is called when there is no active scene!`);
27
28
  }
28
- return Scene.activeScene.value;
29
+ return Scene._activeScene.value;
29
30
  }
30
31
  static isActive() {
31
- return Scene.activeScene.value instanceof this;
32
+ return Scene._activeScene.value instanceof this;
32
33
  }
33
34
  static getInstance() {
34
- return Scene.activeScene.value instanceof this ? Scene.activeScene.value : undefined;
35
+ return Scene._activeScene.value instanceof this ? Scene._activeScene.value : undefined;
35
36
  }
36
37
  static getInstanceOrFail() {
37
- if (!Scene.activeScene.value) {
38
+ if (!Scene._activeScene.value) {
38
39
  throw new Error(`Scene: getInstance is called when there is no active scene!`);
39
40
  }
40
- if (!(Scene.activeScene.value instanceof this)) {
41
- throw new Error(`Scene: getInstance is called while "${this.name}" was not the active scene. Current scene is: "${Scene.activeScene.value.constructor.name}"!`);
41
+ if (!(Scene._activeScene.value instanceof this)) {
42
+ throw new Error(`Scene: getInstance is called while "${this.name}" was not the active scene. Current scene is: "${Scene._activeScene.value}"!`);
42
43
  }
43
- return Scene.activeScene.value;
44
+ return Scene._activeScene.value;
44
45
  }
45
46
  static open(...args) {
46
47
  if (Scene.sceneTransitioning) {
47
48
  throw new Error('Scene: you cannot open a scene while a scene is transitioning!');
48
49
  }
49
- else if (Scene.activeScene.value) {
50
+ else if (Scene._activeScene.value) {
50
51
  throw new Error('Scene: you cannot open a scene while there is already another active scene!');
51
52
  }
52
53
  let input = args[0];
53
54
  let onOpenResolve;
54
55
  let onCloseResolve;
55
- let onOpen = new Promise((resolve, reject) => {
56
+ let onOpen = new Promise(resolve => {
56
57
  onOpenResolve = resolve;
57
58
  });
58
- let onClose = new Promise((resolve, reject) => {
59
+ let onClose = new Promise(resolve => {
59
60
  onCloseResolve = resolve;
60
61
  });
61
62
  Scene.sceneTransitioning = true;
62
63
  let resolvedArgs = service_1.Service['resolveParameters']([], this.$meta.paramtypes);
63
64
  let scene = new this(...resolvedArgs).attachToRoot();
64
- Scene.activeScene.set(scene);
65
+ Scene._activeScene.set(scene);
65
66
  scene.init(input).then(() => {
66
67
  Scene.sceneTransitioning = false;
67
68
  onOpenResolve();
68
69
  });
69
- scene.closePromise.then(output => {
70
- onCloseResolve(output);
71
- });
70
+ scene.closePromise.then(output => onCloseResolve(output));
72
71
  return { onOpen, onClose };
73
72
  }
74
73
  constructor() {
@@ -84,22 +83,29 @@ class Scene extends attachable_1.Attachable {
84
83
  }
85
84
  async close(...args) {
86
85
  if (Scene.sceneTransitioning) {
87
- throw new Error('Scene: you cannot close a scene while a scene is transitioning!');
86
+ if (Scene._activeScene.value === this) {
87
+ return;
88
+ }
89
+ else {
90
+ throw new Error('Scene: you cannot close a scene while a scene is transitioning!');
91
+ }
88
92
  }
89
- else if (Scene.activeScene.value !== this) {
93
+ else if (Scene._activeScene.value !== this) {
90
94
  throw new Error('Internal Error: Scene instance is accessed while it is not the active scene!');
91
95
  }
92
96
  let output = args[0];
93
97
  Scene.sceneTransitioning = true;
94
98
  await this.prepareToClose();
95
99
  super.destroy();
96
- Scene.activeScene.set(undefined);
100
+ Scene._activeScene.set(undefined);
97
101
  this.resolveClosePromise(output);
98
102
  Scene.sceneTransitioning = false;
99
103
  }
100
104
  }
101
105
  exports.Scene = Scene;
102
- update_cycle_1.UpdateCycle.hardResetAction.subscribe(() => {
103
- Scene.activeScene.set(undefined);
104
- });
106
+ unit_test_helper_1.UnitTestHelper.onHardReset
107
+ .subscribe(() => {
108
+ Scene['_activeScene'].set(undefined);
109
+ })
110
+ .attachToRoot();
105
111
  //# sourceMappingURL=scene.js.map
@@ -1,50 +1,24 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
2
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
3
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
4
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
23
7
  };
24
- var __importStar = (this && this.__importStar) || function (mod) {
25
- if (mod && mod.__esModule) return mod;
26
- var result = {};
27
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
- __setModuleDefault(result, mod);
29
- return result;
30
- };
31
8
  var __metadata = (this && this.__metadata) || function (k, v) {
32
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
33
10
  };
34
11
  Object.defineProperty(exports, "__esModule", { value: true });
35
- const ActionsLib = __importStar(require("actions-lib"));
36
- const helpers_lib_1 = require("helpers-lib");
37
12
  const vitest_1 = require("vitest");
38
- const decorate_actions_lib_1 = require("../base/helpers/decorate-actions-lib");
39
13
  const entity_1 = require("../entity/entity");
40
14
  const service_1 = require("../service/service");
15
+ const unit_test_helper_1 = require("../unit-test.helper");
41
16
  const update_cycle_1 = require("../update-cycle");
42
17
  const view_1 = require("../view/view");
43
18
  const scene_1 = require("./scene");
44
- decorate_actions_lib_1.ActionsLibDecorator.decorate(ActionsLib);
45
19
  (0, vitest_1.describe)('SCENE', () => {
46
20
  (0, vitest_1.beforeEach)(() => {
47
- update_cycle_1.UpdateCycle.hardResetAction.trigger();
21
+ unit_test_helper_1.UnitTestHelper.hardReset();
48
22
  });
49
23
  (0, vitest_1.test)('create scene', () => {
50
24
  let SampleScene = class SampleScene extends scene_1.Scene {
@@ -56,8 +30,8 @@ decorate_actions_lib_1.ActionsLibDecorator.decorate(ActionsLib);
56
30
  (0, scene_1.SceneDecorator)()
57
31
  ], SampleScene);
58
32
  SampleScene.open();
59
- (0, vitest_1.expect)(scene_1.Scene.activeScene.value).toBeDefined();
60
- (0, vitest_1.expect)(scene_1.Scene.activeScene.value).toBeInstanceOf(SampleScene);
33
+ (0, vitest_1.expect)(scene_1.Scene.getActiveScene()).toBeDefined();
34
+ (0, vitest_1.expect)(scene_1.Scene.getActiveScene()).toBeInstanceOf(SampleScene);
61
35
  });
62
36
  (0, vitest_1.test)('arguments in open call should be passed to the init function', () => {
63
37
  let SampleScene = class SampleScene extends scene_1.Scene {
@@ -182,7 +156,6 @@ decorate_actions_lib_1.ActionsLibDecorator.decorate(ActionsLib);
182
156
  await SampleScene.open().onOpen;
183
157
  new SampleEntity().attach(scene_1.Scene.getActiveSceneOrFail());
184
158
  await SampleScene.getInstanceOrFail().close();
185
- await update_cycle_1.UpdateCycle.triggerUpdateTick(1); // Update cycle should take place to destroy functions to be called
186
159
  (0, vitest_1.expect)(SampleEntity.entityDestroyCalled).toBeTruthy();
187
160
  (0, vitest_1.expect)(viewDestroyCalled).toBeTruthy();
188
161
  });
@@ -222,7 +195,6 @@ decorate_actions_lib_1.ActionsLibDecorator.decorate(ActionsLib);
222
195
  ], _SampleView);
223
196
  SampleScene.open();
224
197
  new SampleEntity().attach(scene_1.Scene.getActiveSceneOrFail());
225
- await (0, helpers_lib_1.Wait)(); // Wait for the async view init to expect the update call
226
198
  update_cycle_1.UpdateCycle.triggerUpdateTick(1);
227
199
  (0, vitest_1.expect)(SampleScene.sceneUpdateCalled).toBeTruthy();
228
200
  (0, vitest_1.expect)(viewUpdateCalled).toBeTruthy();
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Service = exports.ServiceDecorator = void 0;
4
- const update_cycle_1 = require("../update-cycle");
4
+ const unit_test_helper_1 = require("../unit-test.helper");
5
5
  require("reflect-metadata");
6
6
  function ServiceDecorator() {
7
7
  return function (ServiceClass) {
@@ -52,7 +52,9 @@ class Service {
52
52
  }
53
53
  }
54
54
  exports.Service = Service;
55
- update_cycle_1.UpdateCycle.hardResetAction.subscribe(() => {
55
+ unit_test_helper_1.UnitTestHelper.onHardReset
56
+ .subscribe(() => {
56
57
  Service['serviceInstances'] = new Map();
57
- });
58
+ })
59
+ .attachToRoot();
58
60
  //# sourceMappingURL=service.js.map
@@ -1,49 +1,23 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
2
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
3
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
4
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
23
7
  };
24
- var __importStar = (this && this.__importStar) || function (mod) {
25
- if (mod && mod.__esModule) return mod;
26
- var result = {};
27
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
- __setModuleDefault(result, mod);
29
- return result;
30
- };
31
8
  var __metadata = (this && this.__metadata) || function (k, v) {
32
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
33
10
  };
34
11
  Object.defineProperty(exports, "__esModule", { value: true });
35
- const ActionsLib = __importStar(require("actions-lib"));
36
12
  const vitest_1 = require("vitest");
37
- const decorate_actions_lib_1 = require("../base/helpers/decorate-actions-lib");
38
13
  const entity_1 = require("../entity/entity");
39
14
  const scene_1 = require("../scene/scene");
40
- const update_cycle_1 = require("../update-cycle");
15
+ const unit_test_helper_1 = require("../unit-test.helper");
41
16
  const view_1 = require("../view/view");
42
17
  const service_1 = require("./service");
43
- decorate_actions_lib_1.ActionsLibDecorator.decorate(ActionsLib);
44
18
  (0, vitest_1.describe)('SERVICE', () => {
45
19
  (0, vitest_1.beforeEach)(() => {
46
- update_cycle_1.UpdateCycle.hardResetAction.trigger();
20
+ unit_test_helper_1.UnitTestHelper.hardReset();
47
21
  });
48
22
  (0, vitest_1.test)('get services', () => {
49
23
  var SampleService_1;
@@ -0,0 +1,5 @@
1
+ export declare class UnitTestHelper {
2
+ private static readonly _hardResetAction;
3
+ static readonly onHardReset: import("actions-lib").Notifier<void>;
4
+ static hardReset(): void;
5
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnitTestHelper = void 0;
4
+ const actions_lib_1 = require("actions-lib");
5
+ class UnitTestHelper {
6
+ static { this._hardResetAction = new actions_lib_1.Action(); }
7
+ static { this.onHardReset = this._hardResetAction.notifier; }
8
+ static hardReset() {
9
+ actions_lib_1.ActionLibUnitTestHelper.hardReset();
10
+ this._hardResetAction.trigger();
11
+ }
12
+ }
13
+ exports.UnitTestHelper = UnitTestHelper;
14
+ //# sourceMappingURL=unit-test.helper.js.map
@@ -1,15 +1,26 @@
1
1
  import { Action } from 'actions-lib';
2
2
  export declare class UpdateCycle {
3
- static readonly hardResetAction: Action<void>;
4
- static readonly beforeSceneUpdateAction: Action<{
3
+ static readonly _beforeSceneUpdateAction: Action<{
5
4
  time: number;
6
5
  delta: number;
7
6
  }>;
8
- static readonly sceneUpdateAction: Action<{
7
+ static readonly beforeSceneUpdateAction: import("actions-lib").Notifier<{
9
8
  time: number;
10
9
  delta: number;
11
10
  }>;
12
- static readonly afterSceneUpdateAction: Action<{
11
+ static readonly _sceneUpdateAction: Action<{
12
+ time: number;
13
+ delta: number;
14
+ }>;
15
+ static readonly sceneUpdateAction: import("actions-lib").Notifier<{
16
+ time: number;
17
+ delta: number;
18
+ }>;
19
+ static readonly _afterSceneUpdateAction: Action<{
20
+ time: number;
21
+ delta: number;
22
+ }>;
23
+ static readonly afterSceneUpdateAction: import("actions-lib").Notifier<{
13
24
  time: number;
14
25
  delta: number;
15
26
  }>;
@@ -2,11 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UpdateCycle = void 0;
4
4
  const actions_lib_1 = require("actions-lib");
5
+ const unit_test_helper_1 = require("./unit-test.helper");
5
6
  class UpdateCycle {
6
- static { this.hardResetAction = new actions_lib_1.Action(); }
7
- static { this.beforeSceneUpdateAction = new actions_lib_1.Action(); }
8
- static { this.sceneUpdateAction = new actions_lib_1.Action(); }
9
- static { this.afterSceneUpdateAction = new actions_lib_1.Action(); }
7
+ static { this._beforeSceneUpdateAction = new actions_lib_1.Action(); }
8
+ static { this.beforeSceneUpdateAction = this._beforeSceneUpdateAction.notifier; }
9
+ static { this._sceneUpdateAction = new actions_lib_1.Action(); }
10
+ static { this.sceneUpdateAction = this._sceneUpdateAction.notifier; }
11
+ static { this._afterSceneUpdateAction = new actions_lib_1.Action(); }
12
+ static { this.afterSceneUpdateAction = this._afterSceneUpdateAction.notifier; }
10
13
  static { this.time = 0; }
11
14
  static { this.updateModifierCallback = undefined; }
12
15
  static async wait(duration) {
@@ -39,9 +42,9 @@ class UpdateCycle {
39
42
  this.time += delta;
40
43
  this._lastDelta = delta;
41
44
  if (delta > 0) {
42
- UpdateCycle.beforeSceneUpdateAction.trigger({ time: this.time, delta });
43
- UpdateCycle.sceneUpdateAction.trigger({ time: this.time, delta });
44
- UpdateCycle.afterSceneUpdateAction.trigger({ time: this.time, delta });
45
+ UpdateCycle._beforeSceneUpdateAction.trigger({ time: this.time, delta });
46
+ UpdateCycle._sceneUpdateAction.trigger({ time: this.time, delta });
47
+ UpdateCycle._afterSceneUpdateAction.trigger({ time: this.time, delta });
45
48
  }
46
49
  }
47
50
  static get lastDelta() {
@@ -50,7 +53,9 @@ class UpdateCycle {
50
53
  static { this._lastDelta = 0; }
51
54
  }
52
55
  exports.UpdateCycle = UpdateCycle;
53
- UpdateCycle.hardResetAction.subscribe(() => {
56
+ unit_test_helper_1.UnitTestHelper.onHardReset
57
+ .subscribe(() => {
54
58
  UpdateCycle['time'] = 0;
55
- });
59
+ })
60
+ .attachToRoot();
56
61
  //# sourceMappingURL=update-cycle.js.map
@@ -1,12 +1,11 @@
1
- import { Attachable } from '../base/attachable';
2
- import { Entity } from '../entity/entity';
3
- export type ViewClassType<EntityType> = new (entity: EntityType, ...services: any[]) => View;
4
- export interface ViewDecoratorMeta<EntityType> {
5
- entity: new (...args: any[]) => EntityType;
1
+ import { Attachable } from 'actions-lib';
2
+ import { Entity, EntityClassType } from '../entity/entity';
3
+ export type ViewClassType<EntityType extends Entity> = new (entity: EntityType, ...services: any[]) => View;
4
+ export interface ViewDecoratorMeta<EntityType extends Entity> {
5
+ entity: EntityClassType<EntityType>;
6
6
  }
7
7
  export declare function ViewDecorator<EntityType extends Entity>(meta: ViewDecoratorMeta<EntityType>): (ViewClass: ViewClassType<EntityType>) => any;
8
8
  export declare abstract class View extends Attachable {
9
- private static viewClassNames;
10
9
  static getInstance<T extends View>(this: new (...args: any[]) => T, entityId: string): T | undefined;
11
10
  static getInstanceOrFail<T extends View>(this: new (...args: any[]) => T, entityId: string): T;
12
11
  private _entityId;
@@ -1,19 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.View = exports.ViewDecorator = void 0;
4
- const attachable_1 = require("../base/attachable");
5
- const attachable_store_1 = require("../base/helpers/attachable.store");
4
+ const actions_lib_1 = require("actions-lib");
6
5
  const entity_views_helper_1 = require("../entity/helpers/entity-views.helper");
7
6
  const service_1 = require("../service/service");
8
- const update_cycle_1 = require("../update-cycle");
9
7
  function ViewDecorator(meta) {
10
8
  return function (ViewClass) {
11
- if (View['viewClassNames'].has(ViewClass.name)) {
12
- throw new Error(`View class names should be unique! This view name is already taken. name: "${ViewClass.name}"`);
13
- }
14
- else {
15
- View['viewClassNames'].add(ViewClass.name);
16
- }
17
9
  ViewClass.$meta = {
18
10
  paramtypes: service_1.Service.getParametersMeta(ViewClass),
19
11
  viewInstances: new Map(),
@@ -24,17 +16,16 @@ function ViewDecorator(meta) {
24
16
  };
25
17
  }
26
18
  exports.ViewDecorator = ViewDecorator;
27
- class View extends attachable_1.Attachable {
28
- static { this.viewClassNames = new Set(); }
19
+ class View extends actions_lib_1.Attachable {
29
20
  static getInstance(entityId) {
30
- if (!attachable_store_1.AttachableStore.validateIdForClass(entityId, this.$meta.entity)) {
21
+ if (!this.$meta.entity.validateId(entityId)) {
31
22
  return undefined;
32
23
  }
33
24
  let viewInstances = this.$meta.viewInstances;
34
25
  return viewInstances.get(entityId);
35
26
  }
36
27
  static getInstanceOrFail(entityId) {
37
- if (!attachable_store_1.AttachableStore.validateIdForClass(entityId, this.$meta.entity)) {
28
+ if (!this.$meta.entity.validateId(entityId)) {
38
29
  throw new Error(`View: getInstance is called with entity id: "${entityId}", that is not belonging to the class: "${this.$meta.entity}"`);
39
30
  }
40
31
  let viewInstances = this.$meta.viewInstances;
@@ -46,7 +37,7 @@ class View extends attachable_1.Attachable {
46
37
  }
47
38
  constructor() {
48
39
  super();
49
- this.attachToRoot(); // View is always attached to its entity
40
+ this.attachToRoot();
50
41
  this._entityId = entity_views_helper_1.EntityViewsHelper.currentEntityId;
51
42
  this.getViewInstances().set(this._entityId, this);
52
43
  let originalUpdate = this.update.bind(this);
@@ -68,7 +59,4 @@ class View extends attachable_1.Attachable {
68
59
  }
69
60
  }
70
61
  exports.View = View;
71
- update_cycle_1.UpdateCycle.hardResetAction.subscribe(() => {
72
- View['viewClassNames'].clear();
73
- });
74
62
  //# sourceMappingURL=view.js.map