bard-legends-framework 0.1.9 → 0.1.11
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/game-entities/attachable/attachable.d.ts +3 -1
- package/dist/game-entities/attachable/attachable.js +28 -4
- package/dist/game-entities/attachable/attachable.js.map +1 -1
- package/dist/game-entities/entity/entity.js +1 -1
- package/dist/game-entities/entity/entity.js.map +1 -1
- package/dist/game-entities/entity/helpers/entity-store.helper.d.ts +0 -2
- package/dist/game-entities/entity/helpers/entity-store.helper.js +0 -17
- package/dist/game-entities/entity/helpers/entity-store.helper.js.map +1 -1
- package/dist/game-entities/view/view.d.ts +1 -1
- package/dist/game-entities/view/view.js +4 -4
- package/dist/game-entities/view/view.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,7 +3,9 @@ import { Destroyable, Unsubscribable } from '../../_interfaces';
|
|
|
3
3
|
export type CanBeAttached = Destroyable | Unsubscribable | CanBeAttached[] | Variable<CanBeAttached>;
|
|
4
4
|
export declare abstract class Attachable implements Destroyable {
|
|
5
5
|
private static nextAvailableIds;
|
|
6
|
-
static
|
|
6
|
+
private static attachables;
|
|
7
|
+
static getAttachableOrFail(attachableCandidate: Attachable | string): Attachable;
|
|
8
|
+
static getAttachable(attachableCandidate: Attachable | string): Attachable | undefined;
|
|
7
9
|
readonly id: string;
|
|
8
10
|
readonly onDestroy: Action<void>;
|
|
9
11
|
protected destroyed: boolean;
|
|
@@ -4,12 +4,33 @@ exports.Attachable = void 0;
|
|
|
4
4
|
const actions_lib_1 = require("actions-lib");
|
|
5
5
|
const helpers_lib_1 = require("helpers-lib");
|
|
6
6
|
const update_loop_1 = require("../../lib/update-loop");
|
|
7
|
-
const entity_store_helper_1 = require("../entity/helpers/entity-store.helper");
|
|
8
7
|
class Attachable {
|
|
9
8
|
static { this.nextAvailableIds = new Map(); }
|
|
10
|
-
static
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
static { this.attachables = new Map(); }
|
|
10
|
+
static getAttachableOrFail(attachableCandidate) {
|
|
11
|
+
let attachable;
|
|
12
|
+
if (helpers_lib_1.Comparator.isString(attachableCandidate)) {
|
|
13
|
+
let attachableId = attachableCandidate;
|
|
14
|
+
attachable = this.attachables.get(attachableId);
|
|
15
|
+
if (!attachable) {
|
|
16
|
+
throw new Error(`Attachable: attachable not found by id! id: ${attachableId}`);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
else if (attachableCandidate instanceof Attachable) {
|
|
20
|
+
attachable = attachableCandidate;
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
throw new Error(`Attachable: attachable not found! attachable candidate: ${attachableCandidate}`);
|
|
24
|
+
}
|
|
25
|
+
return attachable;
|
|
26
|
+
}
|
|
27
|
+
static getAttachable(attachableCandidate) {
|
|
28
|
+
try {
|
|
29
|
+
return this.getAttachableOrFail(attachableCandidate);
|
|
30
|
+
}
|
|
31
|
+
catch (e) {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
13
34
|
}
|
|
14
35
|
constructor() {
|
|
15
36
|
this.id = '';
|
|
@@ -18,6 +39,7 @@ class Attachable {
|
|
|
18
39
|
this.childDestroy = this.destroy.bind(this);
|
|
19
40
|
this.attachableDestroy = () => {
|
|
20
41
|
this.onDestroy.trigger();
|
|
42
|
+
Attachable.attachables.delete(this.id);
|
|
21
43
|
let attachedEntities = [...this.attachments];
|
|
22
44
|
attachedEntities.forEach(item => this.destroyAttachment(item));
|
|
23
45
|
this.attachments = [];
|
|
@@ -26,6 +48,7 @@ class Attachable {
|
|
|
26
48
|
let numberPartOfTheId = Attachable.nextAvailableIds.get(this.constructor.name) || 1;
|
|
27
49
|
Attachable.nextAvailableIds.set(this.constructor.name, numberPartOfTheId + 1);
|
|
28
50
|
this.id = `${this.constructor.name}:${numberPartOfTheId}`;
|
|
51
|
+
Attachable.attachables.set(this.id, this);
|
|
29
52
|
this.destroy = function () {
|
|
30
53
|
update_loop_1.UpdateCycle.waitUntilDestroyPhase(() => {
|
|
31
54
|
if (!this.destroyed) {
|
|
@@ -76,6 +99,7 @@ exports.Attachable = Attachable;
|
|
|
76
99
|
update_loop_1.UpdateCycle.hardResetAction
|
|
77
100
|
.subscribe(() => {
|
|
78
101
|
Attachable['nextAvailableIds'].clear();
|
|
102
|
+
Attachable['attachables'].clear();
|
|
79
103
|
})
|
|
80
104
|
.skipAttachCheck();
|
|
81
105
|
//# sourceMappingURL=attachable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachable.js","sourceRoot":"","sources":["../../../src/game-entities/attachable/attachable.ts"],"names":[],"mappings":";;;AAAA,6CAA+C;AAC/C,6CAAyC;AAGzC,uDAAoD;
|
|
1
|
+
{"version":3,"file":"attachable.js","sourceRoot":"","sources":["../../../src/game-entities/attachable/attachable.ts"],"names":[],"mappings":"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"}
|
|
@@ -73,7 +73,7 @@ class Entity extends attachable_1.Attachable {
|
|
|
73
73
|
};
|
|
74
74
|
}
|
|
75
75
|
attach(parent) {
|
|
76
|
-
let parentEntity =
|
|
76
|
+
let parentEntity = attachable_1.Attachable.getAttachableOrFail(parent);
|
|
77
77
|
if (parentEntity === this) {
|
|
78
78
|
throw new Error(`Entity cannot be attach to itself! entity: '${this.constructor.name}'`);
|
|
79
79
|
}
|
|
@@ -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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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Attachable } from '../../attachable/attachable';
|
|
2
1
|
import { Entity, EntityClassType } from '../entity';
|
|
3
2
|
export declare class EntityStoreHelper {
|
|
4
3
|
private static entities;
|
|
@@ -8,7 +7,6 @@ export declare class EntityStoreHelper {
|
|
|
8
7
|
static getIdToEntityMap<T extends Entity>(EntityClass: new (...args: any[]) => T): Map<string, T>;
|
|
9
8
|
static getSingletonOrFail<T extends Entity>(EntityClass: new (...args: any[]) => T): T;
|
|
10
9
|
static getEntities<T extends Entity>(EntityClass: new (...args: any[]) => T): T[];
|
|
11
|
-
static getAttachableOrFail(parent: Attachable | string): Attachable;
|
|
12
10
|
static getEntityById<T extends Entity>(entityId: string, EntityClass: new (...args: any[]) => T): T | undefined;
|
|
13
11
|
private static getEntityByParsingId;
|
|
14
12
|
private static getClassNameFromEntityId;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.EntityStoreHelper = void 0;
|
|
4
|
-
const helpers_lib_1 = require("helpers-lib");
|
|
5
4
|
const update_loop_1 = require("../../../lib/update-loop");
|
|
6
5
|
class EntityStoreHelper {
|
|
7
6
|
static { this.entities = new Map(); }
|
|
@@ -23,7 +22,6 @@ class EntityStoreHelper {
|
|
|
23
22
|
static getIdToEntityMap(EntityClass) {
|
|
24
23
|
return this.entities.get(EntityClass.name);
|
|
25
24
|
}
|
|
26
|
-
// TODO: move this under Entity class
|
|
27
25
|
static getSingletonOrFail(EntityClass) {
|
|
28
26
|
if (!EntityClass.$meta.singleton) {
|
|
29
27
|
throw new Error(`EntityDecorator: selectSingleton is called with an entity that is not decorated as singleton! Name: '${this.name}'`);
|
|
@@ -44,21 +42,6 @@ class EntityStoreHelper {
|
|
|
44
42
|
let entities = Array.from(idToEntityMap.values());
|
|
45
43
|
return entities;
|
|
46
44
|
}
|
|
47
|
-
// TODO: move this under Attachable class
|
|
48
|
-
static getAttachableOrFail(parent) {
|
|
49
|
-
let parentEntity;
|
|
50
|
-
if (helpers_lib_1.Comparator.isString(parent)) {
|
|
51
|
-
let entityId = parent;
|
|
52
|
-
parentEntity = this.getEntityByParsingId(entityId);
|
|
53
|
-
if (!parentEntity) {
|
|
54
|
-
throw new Error(`EntityBase: parent not found! id: ${entityId}`);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
parentEntity = parent;
|
|
59
|
-
}
|
|
60
|
-
return parentEntity;
|
|
61
|
-
}
|
|
62
45
|
static getEntityById(entityId, EntityClass) {
|
|
63
46
|
let entity = this.getEntityByParsingId(entityId);
|
|
64
47
|
if (entity) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-store.helper.js","sourceRoot":"","sources":["../../../../src/game-entities/entity/helpers/entity-store.helper.ts"],"names":[],"mappings":";;;
|
|
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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"}
|
|
@@ -6,7 +6,7 @@ export interface ViewDecoratorMeta<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
|
|
9
|
+
private static viewClassNames;
|
|
10
10
|
static getInstanceOrFail<T extends View>(this: new (...args: any[]) => T, entityId: string): Promise<T>;
|
|
11
11
|
protected childUpdate: (time: number, delta: number) => void;
|
|
12
12
|
protected viewDestroy: () => void;
|
|
@@ -8,11 +8,11 @@ const view_creation_helper_1 = require("../entity/helpers/view-creation.helper")
|
|
|
8
8
|
const update_loop_1 = require("../../lib/update-loop");
|
|
9
9
|
function ViewDecorator(meta) {
|
|
10
10
|
return function (ViewClass) {
|
|
11
|
-
if (View['
|
|
11
|
+
if (View['viewClassNames'].has(ViewClass.name)) {
|
|
12
12
|
throw new Error(`View class names should be unique! This view name is already taken. name: '${ViewClass.name}'`);
|
|
13
13
|
}
|
|
14
14
|
else {
|
|
15
|
-
View['
|
|
15
|
+
View['viewClassNames'].add(ViewClass.name);
|
|
16
16
|
}
|
|
17
17
|
ViewClass.$meta = {
|
|
18
18
|
paramtypes: service_1.Service.getParametersMeta(ViewClass),
|
|
@@ -25,7 +25,7 @@ function ViewDecorator(meta) {
|
|
|
25
25
|
}
|
|
26
26
|
exports.ViewDecorator = ViewDecorator;
|
|
27
27
|
class View extends attachable_1.Attachable {
|
|
28
|
-
static { this.
|
|
28
|
+
static { this.viewClassNames = new Set(); }
|
|
29
29
|
static async getInstanceOrFail(entityId) {
|
|
30
30
|
let timeout = setTimeout(() => {
|
|
31
31
|
console.warn(`View: getInstance is taking too long! View: ${View.name}, entityId: '${entityId}'`);
|
|
@@ -78,7 +78,7 @@ class View extends attachable_1.Attachable {
|
|
|
78
78
|
exports.View = View;
|
|
79
79
|
update_loop_1.UpdateCycle.hardResetAction
|
|
80
80
|
.subscribe(() => {
|
|
81
|
-
View['
|
|
81
|
+
View['viewClassNames'].clear();
|
|
82
82
|
})
|
|
83
83
|
.skipAttachCheck();
|
|
84
84
|
//# sourceMappingURL=view.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/game-entities/view/view.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAG5C,yDAAsD;AACtD,gDAA6C;AAC7C,iFAA4E;AAC5E,uDAAoD;AAQpD,SAAgB,aAAa,CAA4B,IAAmC;IAC1F,OAAO,UAAU,SAAoC;QACnD,IAAI,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/game-entities/view/view.ts"],"names":[],"mappings":"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"}
|