bard-legends-framework 0.6.10 → 0.6.13

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 (75) hide show
  1. package/.eslintrc.js +1 -0
  2. package/dist/game-entities/attachable/attachable.d.ts +0 -1
  3. package/dist/game-entities/attachable/attachable.js +1 -3
  4. package/dist/game-entities/attachable/attachable.js.map +1 -1
  5. package/dist/game-entities/entity/entity.d.ts +2 -9
  6. package/dist/game-entities/entity/entity.js +10 -46
  7. package/dist/game-entities/entity/entity.js.map +1 -1
  8. package/dist/game-entities/entity/entity.test.js +0 -31
  9. package/dist/game-entities/entity/entity.test.js.map +1 -1
  10. package/dist/game-entities/entity/helpers/entity-store.helper.js +3 -6
  11. package/dist/game-entities/entity/helpers/entity-store.helper.js.map +1 -1
  12. package/dist/game-entities/entity/helpers/entity-views.helper.d.ts +13 -0
  13. package/dist/game-entities/entity/helpers/entity-views.helper.js +69 -0
  14. package/dist/game-entities/entity/helpers/entity-views.helper.js.map +1 -0
  15. package/dist/game-entities/entity/helpers/view-creation.helper.js +1 -1
  16. package/dist/game-entities/entity/singleton-entity.d.ts +15 -0
  17. package/dist/game-entities/entity/singleton-entity.js +78 -0
  18. package/dist/game-entities/entity/singleton-entity.js.map +1 -0
  19. package/dist/game-entities/entity/singleton-entity.test.d.ts +1 -0
  20. package/dist/game-entities/entity/singleton-entity.test.js +85 -0
  21. package/dist/game-entities/entity/singleton-entity.test.js.map +1 -0
  22. package/dist/game-entities/index.d.ts +1 -0
  23. package/dist/game-entities/index.js +3 -1
  24. package/dist/game-entities/index.js.map +1 -1
  25. package/dist/game-entities/view/view.d.ts +2 -1
  26. package/dist/game-entities/view/view.js +10 -10
  27. package/dist/game-entities/view/view.js.map +1 -1
  28. package/dist/game-entities/view/view.test.js +1 -1
  29. package/dist/game-entities/view/view.test.js.map +1 -1
  30. package/dist/physics/module//342/232/234/357/270/217gateways/controllers/physics.controller.d.ts +1 -0
  31. package/dist/physics/module//342/232/234/357/270/217gateways/controllers/physics.controller.js +3 -0
  32. package/dist/physics/module//342/232/234/357/270/217gateways/controllers/physics.controller.js.map +1 -1
  33. package/dist/physics/module//342/232/234/357/270/217gateways/physics.gateway.d.ts +1 -0
  34. package/dist/physics/module//342/232/234/357/270/217gateways/physics.gateway.js +3 -0
  35. package/dist/physics/module//342/232/234/357/270/217gateways/physics.gateway.js.map +1 -1
  36. package/dist/physics/module//360/237/223/220services/creation/physics-world.service.d.ts +1 -0
  37. package/dist/physics/module//360/237/223/220services/creation/physics-world.service.js +14 -9
  38. package/dist/physics/module//360/237/223/220services/creation/physics-world.service.js.map +1 -1
  39. package/dist/physics/module//360/237/223/220services/test-visuals/test-visuals.service.js +12 -12
  40. package/dist/physics/module//360/237/223/220services/test-visuals/test-visuals.service.js.map +1 -1
  41. package/dist/physics/module//360/237/247/212entities/physics-world.entity.d.ts +1 -0
  42. package/dist/physics/module//360/237/247/212entities/physics-world.entity.js +1 -0
  43. package/dist/physics/module//360/237/247/212entities/physics-world.entity.js.map +1 -1
  44. package/dist/pixi/display-object/container-attributes.d.ts +69 -0
  45. package/dist/pixi/display-object/container-attributes.js +220 -0
  46. package/dist/pixi/display-object/container-attributes.js.map +1 -0
  47. package/dist/pixi/display-object/container.d.ts +20 -0
  48. package/dist/pixi/display-object/container.js +78 -0
  49. package/dist/pixi/display-object/container.js.map +1 -0
  50. package/dist/pixi/display-object/display-object-attributes.d.ts +3 -0
  51. package/dist/pixi/display-object/display-object-attributes.js +18 -0
  52. package/dist/pixi/display-object/display-object-attributes.js.map +1 -1
  53. package/dist/pixi/display-object/display-object.d.ts +6 -5
  54. package/dist/pixi/display-object/display-object.js +12 -7
  55. package/dist/pixi/display-object/display-object.js.map +1 -1
  56. package/dist/pixi/display-object/objects/graphics.d.ts +11 -4
  57. package/dist/pixi/display-object/objects/graphics.js +41 -9
  58. package/dist/pixi/display-object/objects/graphics.js.map +1 -1
  59. package/dist/pixi/display-object/objects/sprite.d.ts +10 -4
  60. package/dist/pixi/display-object/objects/sprite.js +23 -12
  61. package/dist/pixi/display-object/objects/sprite.js.map +1 -1
  62. package/dist/pixi/display-object/objects/text.d.ts +28 -0
  63. package/dist/pixi/display-object/objects/text.js +89 -0
  64. package/dist/pixi/display-object/objects/text.js.map +1 -0
  65. package/dist/pixi/game.d.ts +1 -2
  66. package/dist/pixi/game.js +4 -3
  67. package/dist/pixi/game.js.map +1 -1
  68. package/dist/pixi/helpers/game-assets.js +1 -1
  69. package/dist/pixi/index.d.ts +3 -2
  70. package/dist/pixi/index.js +6 -4
  71. package/dist/pixi/index.js.map +1 -1
  72. package/dist/utilities/libraries/animator/animator.js +7 -6
  73. package/dist/utilities/libraries/animator/animator.js.map +1 -1
  74. package/package.json +3 -3
  75. package/package.json.bak +3 -3
package/.eslintrc.js CHANGED
@@ -43,6 +43,7 @@ module.exports = {
43
43
  '[conventional-private-properties]',
44
44
  'constructor',
45
45
  '[methods]',
46
+ '[conventional-private-properties]',
46
47
  '[conventional-private-methods]'
47
48
  ],
48
49
  accessorPairPositioning: 'getThenSet'
@@ -12,7 +12,6 @@ export declare abstract class Attachable implements Destroyable {
12
12
  static findAttachableParent(attachableCandidate: Attachable | string): Attachable;
13
13
  readonly id: string;
14
14
  readonly onDestroy: Action<void>;
15
- readonly onAllAttachmentsDestroyed: Action<void>;
16
15
  protected destroyed: boolean;
17
16
  protected childDestroy: () => void;
18
17
  protected attachableDestroy: () => void;
@@ -27,7 +27,6 @@ class Attachable {
27
27
  constructor() {
28
28
  this.id = '';
29
29
  this.onDestroy = new actions_lib_1.Action();
30
- this.onAllAttachmentsDestroyed = new actions_lib_1.Action();
31
30
  this.destroyed = false;
32
31
  this.childDestroy = this.destroy.bind(this);
33
32
  this.attachableDestroy = () => {
@@ -36,7 +35,6 @@ class Attachable {
36
35
  let attachedEntities = [...this.attachments];
37
36
  attachedEntities.forEach(item => this.destroyAttachment(item));
38
37
  this.attachments = [];
39
- this.onAllAttachmentsDestroyed.trigger();
40
38
  };
41
39
  this.attachments = [];
42
40
  let numberPartOfTheId = Attachable.nextAvailableIds.get(this.constructor.name) || 1;
@@ -85,7 +83,7 @@ class Attachable {
85
83
  }
86
84
  }
87
85
  else {
88
- throw new Error(`Attachable: destroyAttachment is used with not supperted type! Target: '${object}'`);
86
+ throw new Error(`Attachable: destroyAttachment is used with not supperted type! Target: "${object}"`);
89
87
  }
90
88
  }
91
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"attachable.js","sourceRoot":"","sources":["../../../src/game-entities/attachable/attachable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attachable.js","sourceRoot":"","sources":["../../../src/game-entities/attachable/attachable.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,11 @@
1
1
  import { Attachable } from '../attachable/attachable';
2
2
  export type EntityClassType = new (...args: any[]) => Entity;
3
- export interface EntityDecoratorMeta {
4
- singleton?: boolean;
5
- }
6
- export declare function EntityDecorator(options?: EntityDecoratorMeta): (EntityClass: EntityClassType) => any;
3
+ export declare function EntityDecorator(): (EntityClass: EntityClassType) => any;
7
4
  export declare abstract class Entity extends Attachable {
8
- private static onSingletonCreated;
9
5
  static getInstanceById<T extends Entity>(this: new (...args: any[]) => T, entityId: string | undefined): T | undefined;
10
6
  static getInstanceByIdOrFail<T extends Entity>(this: new (...args: any[]) => T, entityId: string): T;
11
- static getSingleton<T extends Entity>(this: new (...args: any[]) => T): T | undefined;
12
- static getSingletonAsync<T extends Entity>(this: new (...args: any[]) => T): Promise<T>;
13
- static getSingletonOrFail<T extends Entity>(this: new (...args: any[]) => T): T;
14
7
  static getEntities<T extends Entity>(this: new (...args: any[]) => T): T[];
15
- private attachIsCalled;
8
+ protected attachIsCalled: boolean;
16
9
  private attachedParent?;
17
10
  private viewCreationHelper;
18
11
  constructor();
@@ -1,24 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Entity = exports.EntityDecorator = void 0;
4
- const actions_lib_1 = require("actions-lib");
5
4
  const attachable_1 = require("../attachable/attachable");
6
5
  const scene_1 = require("../scene/scene");
7
- const view_creation_helper_1 = require("./helpers/view-creation.helper");
6
+ const entity_views_helper_1 = require("./helpers/entity-views.helper");
8
7
  const entity_store_helper_1 = require("./helpers/entity-store.helper");
9
8
  const update_cycle_1 = require("../update-cycle");
10
- function EntityDecorator(options) {
9
+ function EntityDecorator() {
11
10
  return function (EntityClass) {
12
11
  EntityClass.$meta = {
13
- type: 'entity',
14
- singleton: options?.singleton ? true : false
12
+ type: 'entity'
15
13
  };
16
14
  entity_store_helper_1.EntityStoreHelper.registerEntityClass(EntityClass);
17
15
  };
18
16
  }
19
17
  exports.EntityDecorator = EntityDecorator;
20
18
  class Entity extends attachable_1.Attachable {
21
- static { this.onSingletonCreated = new actions_lib_1.Action(); }
22
19
  static getInstanceById(entityId) {
23
20
  if (entityId) {
24
21
  return entity_store_helper_1.EntityStoreHelper.getIdToEntityMap(this).get(entityId);
@@ -27,56 +24,22 @@ class Entity extends attachable_1.Attachable {
27
24
  static getInstanceByIdOrFail(entityId) {
28
25
  let entity = entity_store_helper_1.EntityStoreHelper.getIdToEntityMap(this).get(entityId);
29
26
  if (!entity) {
30
- throw new Error(`Entity: entity is not found! Name: '${this.name}', id: '${entityId}'`);
27
+ throw new Error(`Entity: entity is not found! Name: "${this.name}", id: "${entityId}"`);
31
28
  }
32
29
  return entity;
33
30
  }
34
- static getSingleton() {
35
- return entity_store_helper_1.EntityStoreHelper.getSingleton(this);
36
- }
37
- static async getSingletonAsync() {
38
- let entity = entity_store_helper_1.EntityStoreHelper.getSingleton(this);
39
- if (entity) {
40
- return entity;
41
- }
42
- else {
43
- return new Promise(resolve => {
44
- let subscription = Entity.onSingletonCreated
45
- .subscribe(createdEntity => {
46
- if (createdEntity instanceof this) {
47
- subscription.unsubscribe();
48
- resolve(createdEntity);
49
- }
50
- })
51
- .skipAttachCheck();
52
- });
53
- }
54
- }
55
- static getSingletonOrFail() {
56
- return entity_store_helper_1.EntityStoreHelper.getSingletonOrFail(this);
57
- }
58
31
  static getEntities() {
59
32
  return entity_store_helper_1.EntityStoreHelper.getEntities(this);
60
33
  }
61
34
  constructor() {
62
35
  super();
63
36
  this.attachIsCalled = false;
64
- this.viewCreationHelper = new view_creation_helper_1.ViewCreationHelper(this);
65
- let meta = this.constructor.$meta;
66
- if (meta.singleton) {
67
- let entities = this.constructor.getEntities();
68
- if (entities.length > 0) {
69
- throw new Error(`EntityDecorator: entity is decorated as singleton but multiple instances are created! Name: '${this.constructor.name}'`);
70
- }
71
- else {
72
- Entity.onSingletonCreated.trigger(this);
73
- }
74
- }
37
+ this.viewCreationHelper = new entity_views_helper_1.EntityViewsHelper(this);
75
38
  scene_1.Scene['registerEntity'](this);
76
39
  entity_store_helper_1.EntityStoreHelper.registerEntity(this);
77
40
  setTimeout(() => {
78
41
  if (!this.attachIsCalled) {
79
- throw new Error(`EntityDecorator: entity is not attached to anything! Name: '${this.constructor.name}'`);
42
+ throw new Error(`Entity: entity is not attached to anything! Name: "${this.constructor.name}"`);
80
43
  }
81
44
  });
82
45
  this.destroy = function () {
@@ -93,7 +56,7 @@ class Entity extends attachable_1.Attachable {
93
56
  attach(parent) {
94
57
  let parentEntity = attachable_1.Attachable.findAttachableParent(parent);
95
58
  if (parentEntity === this) {
96
- throw new Error(`Entity cannot be attach to itself! entity: '${this.constructor.name}'`);
59
+ throw new Error(`Entity cannot be attach to itself! entity: "${this.constructor.name}"`);
97
60
  }
98
61
  this.attachIsCalled = true;
99
62
  if (!this.destroyed) {
@@ -105,7 +68,7 @@ class Entity extends attachable_1.Attachable {
105
68
  }
106
69
  update(time, delta) { }
107
70
  entityDestroy() {
108
- this.viewCreationHelper.views.forEach(view => view.destroy());
71
+ this.viewCreationHelper.destroyViews();
109
72
  scene_1.Scene['unregisterEntity'](this);
110
73
  entity_store_helper_1.EntityStoreHelper.unregisterEntity(this.constructor.name, this.id);
111
74
  if (this.attachedParent) {
@@ -113,10 +76,11 @@ class Entity extends attachable_1.Attachable {
113
76
  this.attachedParent = undefined;
114
77
  }
115
78
  }
79
+ // Triggered by Scene
116
80
  updateTick(time, delta) {
117
81
  if (!this.destroyed) {
118
82
  this.update(time, delta);
119
- this.viewCreationHelper.views.forEach(view => view.update(time, delta));
83
+ this.viewCreationHelper.updateViews(time, delta);
120
84
  }
121
85
  }
122
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../src/game-entities/entity/entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../src/game-entities/entity/entity.ts"],"names":[],"mappings":"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"}
@@ -250,37 +250,6 @@ decorate_actions_lib_1.ActionsLibDecorator.decorate(ActionsLib);
250
250
  update_cycle_1.UpdateCycle.triggerUpdateTick(1); // Update cycle should take place to destroy functions to be called
251
251
  (0, vitest_1.expect)(Sample.getInstanceById(sample.id)).toBeUndefined();
252
252
  });
253
- (0, vitest_1.test)('select singleton sample', () => {
254
- let Sample = class Sample extends entity_1.Entity {
255
- };
256
- Sample = __decorate([
257
- (0, entity_1.EntityDecorator)({
258
- singleton: true
259
- })
260
- ], Sample);
261
- let sample = new Sample().attach(scene_1.Scene.activeScene);
262
- (0, vitest_1.expect)(Sample.getSingletonOrFail()).toEqual(sample);
263
- });
264
- (0, vitest_1.test)('select singleton should throw error if entity is not decorated as singleton', () => {
265
- let Sample = class Sample extends entity_1.Entity {
266
- };
267
- Sample = __decorate([
268
- (0, entity_1.EntityDecorator)()
269
- ], Sample);
270
- new Sample().attach(scene_1.Scene.activeScene);
271
- (0, vitest_1.expect)(() => Sample.getSingletonOrFail()).toThrow();
272
- });
273
- (0, vitest_1.test)('creation multiple singleton should throw error', () => {
274
- let Sample = class Sample extends entity_1.Entity {
275
- };
276
- Sample = __decorate([
277
- (0, entity_1.EntityDecorator)({
278
- singleton: true
279
- })
280
- ], Sample);
281
- new Sample().attach(scene_1.Scene.activeScene);
282
- (0, vitest_1.expect)(() => new Sample().attach(scene_1.Scene.activeScene)).toThrow();
283
- });
284
253
  (0, vitest_1.test)('select entities', () => {
285
254
  let BaseEntity = class BaseEntity extends entity_1.Entity {
286
255
  };
@@ -1 +1 @@
1
- {"version":3,"file":"entity.test.js","sourceRoot":"","sources":["../../../src/game-entities/entity/entity.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity.test.js","sourceRoot":"","sources":["../../../src/game-entities/entity/entity.test.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ class EntityStoreHelper {
6
6
  static { this.entities = new Map(); }
7
7
  static registerEntityClass(entityClass) {
8
8
  if (this.entities.has(entityClass.name)) {
9
- throw new Error(`Entity class names should be unique! This entity name is already taken. name: '${entityClass.name}'`);
9
+ throw new Error(`EntityStoreHelper: Entity class names should be unique! This entity name is already taken. name: "${entityClass.name}"`);
10
10
  }
11
11
  else {
12
12
  this.entities.set(entityClass.name, new Map());
@@ -27,15 +27,12 @@ class EntityStoreHelper {
27
27
  return entities[0];
28
28
  }
29
29
  static getSingletonOrFail(EntityClass) {
30
- if (!EntityClass.$meta.singleton) {
31
- throw new Error(`EntityDecorator: selectSingleton is called with an entity that is not decorated as singleton! Name: '${this.name}'`);
32
- }
33
30
  let entities = EntityStoreHelper.getEntities(EntityClass);
34
31
  if (entities.length > 1) {
35
- throw new Error(`EntityDecorator: selectSingleton is called with an entity that has multiple instances! Name: '${this.name}'`);
32
+ throw new Error(`EntityStoreHelper: selectSingleton is called with an entity that has multiple instances! Name: "${this.name}"`);
36
33
  }
37
34
  else if (entities.length === 0) {
38
- throw new Error(`EntityDecorator: selectSingleton is called with an entity that has no instance! Name: '${this.name}'`);
35
+ throw new Error(`EntityStoreHelper: selectSingleton is called with an entity that has no instance! Name: "${this.name}"`);
39
36
  }
40
37
  else {
41
38
  return entities[0];
@@ -1 +1 @@
1
- {"version":3,"file":"entity-store.helper.js","sourceRoot":"","sources":["../../../../src/game-entities/entity/helpers/entity-store.helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity-store.helper.js","sourceRoot":"","sources":["../../../../src/game-entities/entity/helpers/entity-store.helper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { ViewClassType } from '../../view/view';
2
+ import { Entity, EntityClassType } from '../entity';
3
+ export declare class EntityViewsHelper {
4
+ private entity;
5
+ private static viewRegistries;
6
+ static registerView<T>(ViewClass: ViewClassType<T>, EntityClass: EntityClassType): void;
7
+ private static createView;
8
+ private views;
9
+ constructor(entity: Entity);
10
+ createViews(): void;
11
+ updateViews(time: number, delta: number): void;
12
+ destroyViews(): void;
13
+ }
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EntityViewsHelper = void 0;
4
+ const update_cycle_1 = require("../../update-cycle");
5
+ const service_1 = require("../../service/service");
6
+ const entity_store_helper_1 = require("./entity-store.helper");
7
+ class EntityViewsHelper {
8
+ static { this.viewRegistries = new Map(); }
9
+ static registerView(ViewClass, EntityClass) {
10
+ if (!EntityViewsHelper.viewRegistries.has(EntityClass)) {
11
+ EntityViewsHelper.viewRegistries.set(EntityClass, []);
12
+ }
13
+ let relatedRegistries = EntityViewsHelper.viewRegistries.get(EntityClass);
14
+ relatedRegistries && relatedRegistries.push(ViewClass);
15
+ let alreadyCreatedEntities = entity_store_helper_1.EntityStoreHelper.getEntities(EntityClass);
16
+ alreadyCreatedEntities.forEach(entity => {
17
+ this.createView(entity, ViewClass);
18
+ });
19
+ }
20
+ static createView(entity, ViewClass) {
21
+ let timeout = setTimeout(() => {
22
+ console.warn(`View - createView: view init is taking too long! entity: "${ViewClass.name}"`);
23
+ }, 1000);
24
+ try {
25
+ let resolvedViewArgs = service_1.Service.resolveParameters([this], ViewClass.$meta.paramtypes);
26
+ let view = new ViewClass(entity, ...resolvedViewArgs.slice(1));
27
+ view['_entityId'] = entity.id;
28
+ view['_entityIsDestroyed'] = false;
29
+ view['init']().then(() => {
30
+ clearTimeout(timeout);
31
+ view['afterInit']();
32
+ });
33
+ entity['viewCreationHelper'].views.push(view);
34
+ }
35
+ catch (e) {
36
+ console.error(e);
37
+ }
38
+ }
39
+ constructor(entity) {
40
+ this.entity = entity;
41
+ this.views = [];
42
+ }
43
+ createViews() {
44
+ if (!this.entity['destroyed']) {
45
+ let registeredViewClasses = EntityViewsHelper.viewRegistries.get(this.entity.constructor);
46
+ if (registeredViewClasses) {
47
+ registeredViewClasses.forEach(ViewClass => {
48
+ EntityViewsHelper.createView(this.entity, ViewClass);
49
+ });
50
+ }
51
+ }
52
+ }
53
+ updateViews(time, delta) {
54
+ this.views.forEach(view => {
55
+ view.update(time, delta);
56
+ });
57
+ }
58
+ destroyViews() {
59
+ this.views.forEach(view => {
60
+ view['_entityIsDestroyed'] = true;
61
+ view.destroy();
62
+ });
63
+ }
64
+ }
65
+ exports.EntityViewsHelper = EntityViewsHelper;
66
+ update_cycle_1.UpdateCycle.hardResetAction.subscribe(() => {
67
+ EntityViewsHelper['viewRegistries'] = new Map();
68
+ });
69
+ //# sourceMappingURL=entity-views.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-views.helper.js","sourceRoot":"","sources":["../../../../src/game-entities/entity/helpers/entity-views.helper.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ class ViewCreationHelper {
19
19
  }
20
20
  static createView(entity, ViewClass) {
21
21
  let timeout = setTimeout(() => {
22
- console.warn(`View - createView: view init is taking too long! entity: '${ViewClass.name}'`);
22
+ console.warn(`View - createView: view init is taking too long! entity: "${ViewClass.name}"`);
23
23
  }, 1000);
24
24
  try {
25
25
  let resolvedViewArgs = service_1.Service.resolveParameters([this], ViewClass.$meta.paramtypes);
@@ -0,0 +1,15 @@
1
+ import { ActionSubscription } from 'actions-lib';
2
+ import { Entity } from './entity';
3
+ export declare abstract class SingletonEntity extends Entity {
4
+ private static onSingletonCreated;
5
+ static getInstance<T extends SingletonEntity>(this: new (...args: any[]) => T): T | undefined;
6
+ static getInstanceOrFail<T extends SingletonEntity>(this: new (...args: any[]) => T): T;
7
+ static getInstanceAsync<T extends SingletonEntity>(this: new (...args: any[]) => T): Promise<T>;
8
+ /**
9
+ * Listens the singleton entity continuesly.
10
+ * The subscribe function should return the subscription made to the entity, becaues it needs to be destroyed each time entity gets destroyed.
11
+ * Use ActionSubscription.combine([...]) if there are more than one subscription.
12
+ */
13
+ static continuesSubscription<T extends SingletonEntity>(this: new (...args: any[]) => T, subscribeFunction: (entity: T) => ActionSubscription): ActionSubscription;
14
+ constructor();
15
+ }
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SingletonEntity = void 0;
4
+ const actions_lib_1 = require("actions-lib");
5
+ const entity_store_helper_1 = require("./helpers/entity-store.helper");
6
+ const entity_1 = require("./entity");
7
+ class SingletonEntity extends entity_1.Entity {
8
+ static { this.onSingletonCreated = new actions_lib_1.Action(); }
9
+ static getInstance() {
10
+ return entity_store_helper_1.EntityStoreHelper.getSingleton(this);
11
+ }
12
+ static getInstanceOrFail() {
13
+ return entity_store_helper_1.EntityStoreHelper.getSingletonOrFail(this);
14
+ }
15
+ static async getInstanceAsync() {
16
+ let entity = entity_store_helper_1.EntityStoreHelper.getSingleton(this);
17
+ if (entity && !entity.destroyed) {
18
+ return entity;
19
+ }
20
+ else {
21
+ return new Promise(resolve => {
22
+ let subscription = SingletonEntity.onSingletonCreated
23
+ .subscribe(createdEntity => {
24
+ if (createdEntity instanceof this) {
25
+ subscription.unsubscribe();
26
+ resolve(createdEntity);
27
+ }
28
+ })
29
+ .skipAttachCheck();
30
+ });
31
+ }
32
+ }
33
+ /**
34
+ * Listens the singleton entity continuesly.
35
+ * The subscribe function should return the subscription made to the entity, becaues it needs to be destroyed each time entity gets destroyed.
36
+ * Use ActionSubscription.combine([...]) if there are more than one subscription.
37
+ */
38
+ static continuesSubscription(subscribeFunction) {
39
+ let unsubscribed = false;
40
+ let subscription;
41
+ let onDestroySubscription;
42
+ let subscribe = () => {
43
+ this.getSingletonAsync().then((entity) => {
44
+ if (!unsubscribed) {
45
+ subscription = subscribeFunction(entity);
46
+ onDestroySubscription = entity.onDestroy
47
+ .subscribe(() => {
48
+ if (!unsubscribed) {
49
+ subscription?.unsubscribe();
50
+ onDestroySubscription?.unsubscribe();
51
+ subscribe();
52
+ }
53
+ })
54
+ .skipAttachCheck();
55
+ }
56
+ });
57
+ };
58
+ subscribe();
59
+ return new actions_lib_1.ActionSubscription(() => {
60
+ unsubscribed = true;
61
+ subscription?.unsubscribe();
62
+ onDestroySubscription?.unsubscribe();
63
+ });
64
+ }
65
+ constructor() {
66
+ super();
67
+ let entities = this.constructor.getEntities();
68
+ if (entities.length > 1) {
69
+ this.attachIsCalled = true; // Ignore the attach error
70
+ throw new Error(`SingletonEntity: entity is decorated as singleton but multiple instances are created! Name: "${this.constructor.name}"`);
71
+ }
72
+ else {
73
+ SingletonEntity.onSingletonCreated.trigger(this);
74
+ }
75
+ }
76
+ }
77
+ exports.SingletonEntity = SingletonEntity;
78
+ //# sourceMappingURL=singleton-entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"singleton-entity.js","sourceRoot":"","sources":["../../../src/game-entities/entity/singleton-entity.ts"],"names":[],"mappings":";;;AAAA,6CAAyD;AAEzD,uEAAkE;AAClE,qCAAkC;AAElC,MAAsB,eAAgB,SAAQ,eAAM;aACnC,uBAAkB,GAAG,IAAI,oBAAM,EAAmB,CAAC;IAElE,MAAM,CAAC,WAAW;QAChB,OAAO,uCAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,iBAAiB;QACtB,OAAO,uCAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,gBAAgB;QAC3B,IAAI,MAAM,GAAG,uCAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAChC,OAAO,MAAM,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,OAAO,CAAI,OAAO,CAAC,EAAE;gBAC9B,IAAI,YAAY,GAAG,eAAe,CAAC,kBAAkB;qBAClD,SAAS,CAAC,aAAa,CAAC,EAAE;oBACzB,IAAI,aAAa,YAAY,IAAI,EAAE,CAAC;wBAClC,YAAY,CAAC,WAAW,EAAE,CAAC;wBAC3B,OAAO,CAAC,aAAa,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC,CAAC;qBACD,eAAe,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,qBAAqB,CAE1B,iBAAoD;QAEpD,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,YAA4C,CAAC;QACjD,IAAI,qBAAqD,CAAC;QAE1D,IAAI,SAAS,GAAG,GAAS,EAAE;YACnB,IAAK,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC,MAAS,EAAE,EAAE;gBACjD,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,YAAY,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;oBACzC,qBAAqB,GAAG,MAAM,CAAC,SAAS;yBACrC,SAAS,CAAC,GAAG,EAAE;wBACd,IAAI,CAAC,YAAY,EAAE,CAAC;4BAClB,YAAY,EAAE,WAAW,EAAE,CAAC;4BAC5B,qBAAqB,EAAE,WAAW,EAAE,CAAC;4BACrC,SAAS,EAAE,CAAC;wBACd,CAAC;oBACH,CAAC,CAAC;yBACD,eAAe,EAAE,CAAC;gBACvB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QACF,SAAS,EAAE,CAAC;QAEZ,OAAO,IAAI,gCAAkB,CAAC,GAAG,EAAE;YACjC,YAAY,GAAG,IAAI,CAAC;YACpB,YAAY,EAAE,WAAW,EAAE,CAAC;YAC5B,qBAAqB,EAAE,WAAW,EAAE,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;QACE,KAAK,EAAE,CAAC;QAER,IAAI,QAAQ,GAAS,IAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QACrD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,0BAA0B;YACtD,MAAM,IAAI,KAAK,CACb,gGAAgG,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,CACzH,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;;AA/EH,0CAgFC"}
@@ -0,0 +1,85 @@
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
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ 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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
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
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ const vitest_1 = require("vitest");
33
+ const ActionsLib = __importStar(require("actions-lib"));
34
+ const update_cycle_1 = require("../update-cycle");
35
+ const scene_1 = require("../scene/scene");
36
+ const singleton_entity_1 = require("./singleton-entity");
37
+ const entity_1 = require("./entity");
38
+ const decorate_actions_lib_1 = require("../attachable/helpers/decorate-actions-lib");
39
+ decorate_actions_lib_1.ActionsLibDecorator.decorate(ActionsLib);
40
+ (0, vitest_1.describe)('SINGLETON ENTITY', () => {
41
+ (0, vitest_1.beforeEach)(() => {
42
+ update_cycle_1.UpdateCycle.hardResetAction.trigger();
43
+ let SampleScene = class SampleScene extends scene_1.Scene {
44
+ };
45
+ SampleScene = __decorate([
46
+ (0, scene_1.SceneDecorator)()
47
+ ], SampleScene);
48
+ SampleScene.open(undefined);
49
+ });
50
+ (0, vitest_1.test)('select singleton sample', () => {
51
+ let Sample = class Sample extends singleton_entity_1.SingletonEntity {
52
+ };
53
+ Sample = __decorate([
54
+ (0, entity_1.EntityDecorator)()
55
+ ], Sample);
56
+ let sample = new Sample().attach(scene_1.Scene.activeScene);
57
+ (0, vitest_1.expect)(Sample.getInstanceOrFail()).toEqual(sample);
58
+ });
59
+ (0, vitest_1.test)('creation multiple singleton should throw error', () => {
60
+ let Sample = class Sample extends singleton_entity_1.SingletonEntity {
61
+ };
62
+ Sample = __decorate([
63
+ (0, entity_1.EntityDecorator)()
64
+ ], Sample);
65
+ new Sample().attach(scene_1.Scene.activeScene);
66
+ (0, vitest_1.expect)(() => new Sample().attach(scene_1.Scene.activeScene)).toThrow();
67
+ });
68
+ (0, vitest_1.test)('select entities', () => {
69
+ let BaseEntity = class BaseEntity extends singleton_entity_1.SingletonEntity {
70
+ };
71
+ BaseEntity = __decorate([
72
+ (0, entity_1.EntityDecorator)()
73
+ ], BaseEntity);
74
+ let baseEntity = new BaseEntity().attach(scene_1.Scene.activeScene);
75
+ let Sample = class Sample extends singleton_entity_1.SingletonEntity {
76
+ };
77
+ Sample = __decorate([
78
+ (0, entity_1.EntityDecorator)()
79
+ ], Sample);
80
+ new Sample().attach(baseEntity);
81
+ (0, vitest_1.expect)(() => new Sample()).toThrow();
82
+ });
83
+ // TODO: test continuesSubscription
84
+ });
85
+ //# sourceMappingURL=singleton-entity.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"singleton-entity.test.js","sourceRoot":"","sources":["../../../src/game-entities/entity/singleton-entity.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAA4D;AAC5D,wDAA0C;AAE1C,kDAA8C;AAC9C,0CAAuD;AACvD,yDAAqD;AACrD,qCAA2C;AAE3C,qFAAiF;AACjF,0CAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAEzC,IAAA,iBAAQ,EAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAA,mBAAU,EAAC,GAAG,EAAE;QACd,0BAAW,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAGtC,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,aAAW;SAAG,CAAA;QAAlC,WAAW;YADhB,IAAA,sBAAc,GAAE;WACX,WAAW,CAAuB;QACxC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,yBAAyB,EAAE,GAAG,EAAE;QAEnC,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,kCAAe;SAAG,CAAA;QAAjC,MAAM;YADX,IAAA,wBAAe,GAAE;WACZ,MAAM,CAA2B;QAEvC,IAAI,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC,MAAM,CAAC,aAAK,CAAC,WAAW,CAAC,CAAC;QACpD,IAAA,eAAM,EAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,gDAAgD,EAAE,GAAG,EAAE;QAE1D,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,kCAAe;SAAG,CAAA;QAAjC,MAAM;YADX,IAAA,wBAAe,GAAE;WACZ,MAAM,CAA2B;QAEvC,IAAI,MAAM,EAAE,CAAC,MAAM,CAAC,aAAK,CAAC,WAAW,CAAC,CAAC;QACvC,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,MAAM,CAAC,aAAK,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,iBAAiB,EAAE,GAAG,EAAE;QAE3B,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,kCAAe;SAAG,CAAA;QAArC,UAAU;YADf,IAAA,wBAAe,GAAE;WACZ,UAAU,CAA2B;QAC3C,IAAI,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC,MAAM,CAAC,aAAK,CAAC,WAAW,CAAC,CAAC;QAG5D,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,kCAAe;SAAG,CAAA;QAAjC,MAAM;YADX,IAAA,wBAAe,GAAE;WACZ,MAAM,CAA2B;QAEvC,IAAI,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAChC,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,mCAAmC;AACrC,CAAC,CAAC,CAAC"}