bard-legends-framework 0.10.1 → 0.10.2
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/entity/helpers/entity-views.helper.d.ts +1 -0
- package/dist/game-entities/entity/helpers/entity-views.helper.js +8 -11
- package/dist/game-entities/view/view.d.ts +3 -8
- package/dist/game-entities/view/view.js +17 -56
- package/dist/game-entities/view/view.test.js +50 -109
- package/dist/pixi/game.js +0 -1
- package/dist/pixi/modules/CAMERA/camera.d.ts +0 -1
- package/dist/pixi/modules/CAMERA/camera.js +1 -4
- package/dist/pixi/modules/CAMERA//342/232/234/357/270/217gateways/camera-view.gateway.d.ts +1 -1
- package/dist/pixi/modules/CAMERA//342/232/234/357/270/217gateways/camera-view.gateway.js +1 -1
- package/dist/pixi/modules/CAMERA//342/232/234/357/270/217gateways/controllers/camera-view.controller.d.ts +1 -1
- package/dist/pixi/modules/CAMERA//342/232/234/357/270/217gateways/controllers/camera-view.controller.js +3 -3
- package/dist/pixi/modules/CAMERA//360/237/223/220services/camera.service.js +2 -1
- package/dist/pixi/modules/CAMERA//360/237/247/251views/camera.view.d.ts +0 -1
- package/dist/pixi/modules/CAMERA//360/237/247/251views/camera.view.js +0 -2
- package/package.json +1 -1
|
@@ -3,6 +3,7 @@ import { Entity, EntityClassType } from '../entity';
|
|
|
3
3
|
export declare class EntityViewsHelper {
|
|
4
4
|
private entity;
|
|
5
5
|
private static viewRegistries;
|
|
6
|
+
static currentEntityId: string;
|
|
6
7
|
static registerView<T>(ViewClass: ViewClassType<T>, EntityClass: EntityClassType): void;
|
|
7
8
|
private static createView;
|
|
8
9
|
private views;
|
|
@@ -18,19 +18,17 @@ class EntityViewsHelper {
|
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
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
21
|
try {
|
|
25
22
|
let resolvedViewArgs = service_1.Service.resolveParameters([this], ViewClass.$meta.paramtypes);
|
|
23
|
+
EntityViewsHelper.currentEntityId = entity.id;
|
|
26
24
|
let view = new ViewClass(entity, ...resolvedViewArgs.slice(1));
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
25
|
+
if (entity.destroyed) {
|
|
26
|
+
// Created view might destroy its entity in constructor, which should also destroy the view
|
|
27
|
+
view.destroy();
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
entity['viewCreationHelper'].views.push(view);
|
|
31
|
+
}
|
|
34
32
|
}
|
|
35
33
|
catch (e) {
|
|
36
34
|
console.error(e);
|
|
@@ -57,7 +55,6 @@ class EntityViewsHelper {
|
|
|
57
55
|
}
|
|
58
56
|
destroyViews() {
|
|
59
57
|
this.views.forEach(view => {
|
|
60
|
-
view['_entityIsDestroyed'] = true;
|
|
61
58
|
view.destroy();
|
|
62
59
|
});
|
|
63
60
|
}
|
|
@@ -7,17 +7,12 @@ export interface ViewDecoratorMeta<EntityType> {
|
|
|
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
9
|
private static viewClassNames;
|
|
10
|
-
static
|
|
11
|
-
static
|
|
12
|
-
static getInstanceOrFail<T extends View>(this: new (...args: any[]) => T, entityId: string): Promise<T>;
|
|
10
|
+
static getInstance<T extends View>(this: new (...args: any[]) => T, entityId: string): T | undefined;
|
|
11
|
+
static getInstanceOrFail<T extends View>(this: new (...args: any[]) => T, entityId: string): T;
|
|
13
12
|
protected childUpdate: (time: number, delta: number) => void;
|
|
14
|
-
private created;
|
|
15
|
-
private viewsCreated;
|
|
16
13
|
private _entityId;
|
|
17
|
-
private _entityIsDestroyed;
|
|
18
14
|
constructor();
|
|
19
15
|
protected destroySelf(): void;
|
|
20
|
-
protected init(): Promise<void>;
|
|
21
16
|
update(time: number, delta: number): void;
|
|
22
|
-
|
|
17
|
+
private getViewInstances;
|
|
23
18
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.View = exports.ViewDecorator = void 0;
|
|
4
|
-
const actions_lib_1 = require("actions-lib");
|
|
5
4
|
const attachable_1 = require("../base/attachable");
|
|
6
5
|
const entity_views_helper_1 = require("../entity/helpers/entity-views.helper");
|
|
7
6
|
const service_1 = require("../service/service");
|
|
@@ -16,7 +15,7 @@ function ViewDecorator(meta) {
|
|
|
16
15
|
}
|
|
17
16
|
ViewClass.$meta = {
|
|
18
17
|
paramtypes: service_1.Service.getParametersMeta(ViewClass),
|
|
19
|
-
|
|
18
|
+
viewInstances: new Map(),
|
|
20
19
|
entityName: meta.entity.name,
|
|
21
20
|
type: 'view'
|
|
22
21
|
};
|
|
@@ -26,81 +25,43 @@ function ViewDecorator(meta) {
|
|
|
26
25
|
exports.ViewDecorator = ViewDecorator;
|
|
27
26
|
class View extends attachable_1.Attachable {
|
|
28
27
|
static { this.viewClassNames = new Set(); }
|
|
29
|
-
static
|
|
28
|
+
static getInstance(entityId) {
|
|
30
29
|
if (entityId.substring(0, entityId.indexOf(':')) !== this.$meta.entityName) {
|
|
31
30
|
return undefined;
|
|
32
31
|
}
|
|
33
|
-
let
|
|
34
|
-
return
|
|
32
|
+
let viewInstances = this.$meta.viewInstances;
|
|
33
|
+
return viewInstances.get(entityId);
|
|
35
34
|
}
|
|
36
|
-
static
|
|
37
|
-
return new Promise(resolve => {
|
|
38
|
-
let timeout = setTimeout(() => {
|
|
39
|
-
resolve(undefined);
|
|
40
|
-
}, 1000);
|
|
41
|
-
if (entityId.substring(0, entityId.indexOf(':')) !== this.$meta.entityName) {
|
|
42
|
-
clearTimeout(timeout);
|
|
43
|
-
resolve(undefined);
|
|
44
|
-
}
|
|
45
|
-
let observableMap = this.$meta.viewsCreated;
|
|
46
|
-
observableMap.waitUntilAddedSync(entityId, response => {
|
|
47
|
-
clearTimeout(timeout);
|
|
48
|
-
if (response._entityIsDestroyed) {
|
|
49
|
-
resolve(undefined);
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
resolve(response);
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
static async getInstanceOrFail(entityId) {
|
|
58
|
-
let timeout = setTimeout(() => {
|
|
59
|
-
console.warn(`View: getInstance is taking too long! View: ${View.name}, entityId: "${entityId}"`);
|
|
60
|
-
}, 1000);
|
|
35
|
+
static getInstanceOrFail(entityId) {
|
|
61
36
|
if (entityId.substring(0, entityId.indexOf(':')) !== this.$meta.entityName) {
|
|
62
|
-
clearTimeout(timeout);
|
|
63
37
|
throw new Error(`View: getInstance is called with entity id: "${entityId}", that is not belonging to the class: "${this.$meta.entityName}"`);
|
|
64
38
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
resolve(response);
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
});
|
|
39
|
+
let viewInstances = this.$meta.viewInstances;
|
|
40
|
+
let view = viewInstances.get(entityId);
|
|
41
|
+
if (!view) {
|
|
42
|
+
throw new Error(`View: getInstanceOrFail is called with entity id: "${entityId}", that is not found!`);
|
|
43
|
+
}
|
|
44
|
+
return view;
|
|
77
45
|
}
|
|
78
46
|
constructor() {
|
|
79
47
|
super();
|
|
80
48
|
this.childUpdate = this.update.bind(this);
|
|
81
|
-
this.created = false;
|
|
82
49
|
this.skipAttachCheck(); // View is always attached to its entity
|
|
83
|
-
this.
|
|
50
|
+
this._entityId = entity_views_helper_1.EntityViewsHelper.currentEntityId;
|
|
51
|
+
this.getViewInstances().set(this._entityId, this);
|
|
84
52
|
this.update = function (time, delta) {
|
|
85
|
-
if (!this.destroyed
|
|
53
|
+
if (!this.destroyed) {
|
|
86
54
|
this.childUpdate(time, delta);
|
|
87
55
|
}
|
|
88
56
|
};
|
|
89
57
|
}
|
|
90
58
|
destroySelf() {
|
|
91
59
|
super.destroySelf();
|
|
92
|
-
this.
|
|
60
|
+
this.getViewInstances().delete(this._entityId);
|
|
93
61
|
}
|
|
94
|
-
async init() { }
|
|
95
62
|
update(time, delta) { }
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
this.created = true;
|
|
99
|
-
let observableMap = this.constructor.$meta.viewsCreated;
|
|
100
|
-
observableMap.set(this._entityId, this);
|
|
101
|
-
if (this.destroyed) {
|
|
102
|
-
this.viewsCreated.remove(this._entityId);
|
|
103
|
-
}
|
|
63
|
+
getViewInstances() {
|
|
64
|
+
return this.constructor.$meta.viewInstances;
|
|
104
65
|
}
|
|
105
66
|
}
|
|
106
67
|
exports.View = View;
|
|
@@ -268,7 +268,7 @@ decorate_actions_lib_1.ActionsLibDecorator.decorate(ActionsLib);
|
|
|
268
268
|
], SampleView);
|
|
269
269
|
(0, vitest_1.expect)(SampleView.test).toEqual('test');
|
|
270
270
|
});
|
|
271
|
-
(0, vitest_1.test)('getInstance should wait until creation and return the view object after',
|
|
271
|
+
(0, vitest_1.test)('getInstance should wait until creation and return the view object after', () => {
|
|
272
272
|
var SampleView_4;
|
|
273
273
|
let BaseEntity = class BaseEntity extends entity_1.Entity {
|
|
274
274
|
};
|
|
@@ -287,7 +287,7 @@ decorate_actions_lib_1.ActionsLibDecorator.decorate(ActionsLib);
|
|
|
287
287
|
__metadata("design:paramtypes", [BaseEntity])
|
|
288
288
|
], SampleView);
|
|
289
289
|
let baseEntity = new BaseEntity().attach(scene_1.Scene.getActiveSceneOrFail());
|
|
290
|
-
let view =
|
|
290
|
+
let view = SampleView.getInstance(baseEntity.id);
|
|
291
291
|
(0, vitest_1.expect)(SampleView.instance).toBeDefined();
|
|
292
292
|
(0, vitest_1.expect)(SampleView.instance).toEqual(view);
|
|
293
293
|
});
|
|
@@ -312,15 +312,11 @@ decorate_actions_lib_1.ActionsLibDecorator.decorate(ActionsLib);
|
|
|
312
312
|
let baseEntity = new BaseEntity().attach(scene_1.Scene.getActiveSceneOrFail());
|
|
313
313
|
baseEntity.destroy();
|
|
314
314
|
await update_cycle_1.UpdateCycle.triggerUpdateTick(1); // Update cycle should take place to destroy functions to be called
|
|
315
|
-
let view;
|
|
316
|
-
SampleView.getInstance(baseEntity.id).then(response => {
|
|
317
|
-
view = response;
|
|
318
|
-
});
|
|
319
|
-
await (0, helpers_lib_1.Wait)();
|
|
315
|
+
let view = SampleView.getInstance(baseEntity.id);
|
|
320
316
|
(0, vitest_1.expect)(SampleView.instance).toBeDefined();
|
|
321
317
|
(0, vitest_1.expect)(view).toBe(undefined);
|
|
322
318
|
});
|
|
323
|
-
(0, vitest_1.test)('getInstanceOrFail should wait until creation and return the view object after',
|
|
319
|
+
(0, vitest_1.test)('getInstanceOrFail should wait until creation and return the view object after', () => {
|
|
324
320
|
var SampleView_6;
|
|
325
321
|
let BaseEntity = class BaseEntity extends entity_1.Entity {
|
|
326
322
|
};
|
|
@@ -339,11 +335,11 @@ decorate_actions_lib_1.ActionsLibDecorator.decorate(ActionsLib);
|
|
|
339
335
|
__metadata("design:paramtypes", [BaseEntity])
|
|
340
336
|
], SampleView);
|
|
341
337
|
let baseEntity = new BaseEntity().attach(scene_1.Scene.getActiveSceneOrFail());
|
|
342
|
-
let view =
|
|
338
|
+
let view = SampleView.getInstanceOrFail(baseEntity.id);
|
|
343
339
|
(0, vitest_1.expect)(SampleView.instance).toBeDefined();
|
|
344
340
|
(0, vitest_1.expect)(SampleView.instance).toEqual(view);
|
|
345
341
|
});
|
|
346
|
-
(0, vitest_1.test)('should wait until creation and return the view object after in other views init',
|
|
342
|
+
(0, vitest_1.test)('should wait until creation and return the view object after in other views init', () => {
|
|
347
343
|
var SampleView1_1;
|
|
348
344
|
let BaseEntity = class BaseEntity extends entity_1.Entity {
|
|
349
345
|
};
|
|
@@ -356,7 +352,7 @@ decorate_actions_lib_1.ActionsLibDecorator.decorate(ActionsLib);
|
|
|
356
352
|
this.entity = entity;
|
|
357
353
|
}
|
|
358
354
|
async init() {
|
|
359
|
-
let view =
|
|
355
|
+
let view = SampleView1.getInstanceOrFail(this.entity.id);
|
|
360
356
|
(0, vitest_1.expect)(SampleView1.instance).toBeDefined();
|
|
361
357
|
(0, vitest_1.expect)(SampleView1.instance).toEqual(view);
|
|
362
358
|
}
|
|
@@ -381,7 +377,7 @@ decorate_actions_lib_1.ActionsLibDecorator.decorate(ActionsLib);
|
|
|
381
377
|
], SampleView1);
|
|
382
378
|
new BaseEntity().attach(scene_1.Scene.getActiveSceneOrFail());
|
|
383
379
|
});
|
|
384
|
-
(0, vitest_1.test)('should wait until creation and return the view object after, case entity get created before the view definition',
|
|
380
|
+
(0, vitest_1.test)('should wait until creation and return the view object after, case entity get created before the view definition', () => {
|
|
385
381
|
var SampleView_7;
|
|
386
382
|
let BaseEntity = class BaseEntity extends entity_1.Entity {
|
|
387
383
|
};
|
|
@@ -400,69 +396,17 @@ decorate_actions_lib_1.ActionsLibDecorator.decorate(ActionsLib);
|
|
|
400
396
|
(0, view_1.ViewDecorator)({ entity: BaseEntity }),
|
|
401
397
|
__metadata("design:paramtypes", [BaseEntity])
|
|
402
398
|
], SampleView);
|
|
403
|
-
let view =
|
|
399
|
+
let view = SampleView.getInstanceOrFail(baseEntity.id);
|
|
404
400
|
(0, vitest_1.expect)(SampleView.instance).toBeDefined();
|
|
405
401
|
(0, vitest_1.expect)(SampleView.instance).toEqual(view);
|
|
406
402
|
});
|
|
407
|
-
(0, vitest_1.test)('should
|
|
403
|
+
(0, vitest_1.test)('should throw error if the entity id is belonging to another entity', () => {
|
|
408
404
|
var SampleView_8;
|
|
409
405
|
let BaseEntity = class BaseEntity extends entity_1.Entity {
|
|
410
406
|
};
|
|
411
407
|
BaseEntity = __decorate([
|
|
412
408
|
(0, entity_1.EntityDecorator)()
|
|
413
409
|
], BaseEntity);
|
|
414
|
-
let SampleView = class SampleView extends view_1.View {
|
|
415
|
-
static { SampleView_8 = this; }
|
|
416
|
-
constructor(entity) {
|
|
417
|
-
super();
|
|
418
|
-
}
|
|
419
|
-
async init() {
|
|
420
|
-
await (0, helpers_lib_1.Wait)();
|
|
421
|
-
SampleView_8.instance = this;
|
|
422
|
-
}
|
|
423
|
-
};
|
|
424
|
-
SampleView = SampleView_8 = __decorate([
|
|
425
|
-
(0, view_1.ViewDecorator)({ entity: BaseEntity }),
|
|
426
|
-
__metadata("design:paramtypes", [BaseEntity])
|
|
427
|
-
], SampleView);
|
|
428
|
-
let baseEntity = new BaseEntity().attach(scene_1.Scene.getActiveSceneOrFail());
|
|
429
|
-
let view = await SampleView.getInstanceOrFail(baseEntity.id);
|
|
430
|
-
(0, vitest_1.expect)(SampleView.instance).toBeDefined();
|
|
431
|
-
(0, vitest_1.expect)(SampleView.instance).toEqual(view);
|
|
432
|
-
});
|
|
433
|
-
(0, vitest_1.test)('should wait until creation and return the view object after when there is an async init, case entity get created before the view definition', async () => {
|
|
434
|
-
var SampleView_9;
|
|
435
|
-
let BaseEntity = class BaseEntity extends entity_1.Entity {
|
|
436
|
-
};
|
|
437
|
-
BaseEntity = __decorate([
|
|
438
|
-
(0, entity_1.EntityDecorator)()
|
|
439
|
-
], BaseEntity);
|
|
440
|
-
let baseEntity = new BaseEntity().attach(scene_1.Scene.getActiveSceneOrFail());
|
|
441
|
-
let SampleView = class SampleView extends view_1.View {
|
|
442
|
-
static { SampleView_9 = this; }
|
|
443
|
-
constructor(entity) {
|
|
444
|
-
super();
|
|
445
|
-
}
|
|
446
|
-
async init() {
|
|
447
|
-
await (0, helpers_lib_1.Wait)();
|
|
448
|
-
SampleView_9.instance = this;
|
|
449
|
-
}
|
|
450
|
-
};
|
|
451
|
-
SampleView = SampleView_9 = __decorate([
|
|
452
|
-
(0, view_1.ViewDecorator)({ entity: BaseEntity }),
|
|
453
|
-
__metadata("design:paramtypes", [BaseEntity])
|
|
454
|
-
], SampleView);
|
|
455
|
-
let view = await SampleView.getInstanceOrFail(baseEntity.id);
|
|
456
|
-
(0, vitest_1.expect)(SampleView.instance).toBeDefined();
|
|
457
|
-
(0, vitest_1.expect)(SampleView.instance).toEqual(view);
|
|
458
|
-
});
|
|
459
|
-
(0, vitest_1.test)('should throw error if the entity id is belonging to another entity', async () => {
|
|
460
|
-
var SampleView_10;
|
|
461
|
-
let BaseEntity = class BaseEntity extends entity_1.Entity {
|
|
462
|
-
};
|
|
463
|
-
BaseEntity = __decorate([
|
|
464
|
-
(0, entity_1.EntityDecorator)()
|
|
465
|
-
], BaseEntity);
|
|
466
410
|
let baseEntity = new BaseEntity().attach(scene_1.Scene.getActiveSceneOrFail());
|
|
467
411
|
let SampleEntity = class SampleEntity extends entity_1.Entity {
|
|
468
412
|
};
|
|
@@ -471,53 +415,20 @@ decorate_actions_lib_1.ActionsLibDecorator.decorate(ActionsLib);
|
|
|
471
415
|
], SampleEntity);
|
|
472
416
|
let sampleEntity = new SampleEntity().attach(baseEntity);
|
|
473
417
|
let SampleView = class SampleView extends view_1.View {
|
|
474
|
-
static {
|
|
418
|
+
static { SampleView_8 = this; }
|
|
475
419
|
constructor(entity) {
|
|
476
420
|
super();
|
|
477
|
-
|
|
421
|
+
SampleView_8.instance = this;
|
|
478
422
|
}
|
|
479
423
|
};
|
|
480
|
-
SampleView =
|
|
424
|
+
SampleView = SampleView_8 = __decorate([
|
|
481
425
|
(0, view_1.ViewDecorator)({ entity: BaseEntity }),
|
|
482
426
|
__metadata("design:paramtypes", [BaseEntity])
|
|
483
427
|
], SampleView);
|
|
484
|
-
(0, vitest_1.expect)(async () =>
|
|
485
|
-
});
|
|
486
|
-
(0, vitest_1.test)('update tick should not update view until creation is complete', () => {
|
|
487
|
-
var SampleView_11;
|
|
488
|
-
let viewUpdateCount = 0;
|
|
489
|
-
let Sample = class Sample extends entity_1.Entity {
|
|
490
|
-
};
|
|
491
|
-
Sample = __decorate([
|
|
492
|
-
(0, entity_1.EntityDecorator)()
|
|
493
|
-
], Sample);
|
|
494
|
-
let SampleView = class SampleView extends view_1.View {
|
|
495
|
-
static { SampleView_11 = this; }
|
|
496
|
-
constructor(entity) {
|
|
497
|
-
super();
|
|
498
|
-
SampleView_11.instance = this;
|
|
499
|
-
}
|
|
500
|
-
async init() {
|
|
501
|
-
await (0, helpers_lib_1.Wait)();
|
|
502
|
-
}
|
|
503
|
-
update() {
|
|
504
|
-
viewUpdateCount++;
|
|
505
|
-
}
|
|
506
|
-
};
|
|
507
|
-
SampleView = SampleView_11 = __decorate([
|
|
508
|
-
(0, view_1.ViewDecorator)({ entity: Sample }),
|
|
509
|
-
__metadata("design:paramtypes", [Sample])
|
|
510
|
-
], SampleView);
|
|
511
|
-
new Sample().attach(scene_1.Scene.getActiveSceneOrFail());
|
|
512
|
-
(0, vitest_1.expect)(viewUpdateCount).toEqual(0);
|
|
513
|
-
update_cycle_1.UpdateCycle.triggerUpdateTick(1);
|
|
514
|
-
(0, vitest_1.expect)(viewUpdateCount).toEqual(0);
|
|
515
|
-
SampleView.instance['afterInit']();
|
|
516
|
-
update_cycle_1.UpdateCycle.triggerUpdateTick(1);
|
|
517
|
-
(0, vitest_1.expect)(viewUpdateCount).toEqual(1);
|
|
428
|
+
(0, vitest_1.expect)(async () => SampleView.getInstanceOrFail(sampleEntity.id)).rejects.toThrow();
|
|
518
429
|
});
|
|
519
430
|
(0, vitest_1.test)('destroying entity should not prevent subscription of the view', async () => {
|
|
520
|
-
var Sample_1,
|
|
431
|
+
var Sample_1, SampleView_9;
|
|
521
432
|
let sampleAction = new actions_lib_1.Action();
|
|
522
433
|
let Sample = class Sample extends entity_1.Entity {
|
|
523
434
|
static { Sample_1 = this; }
|
|
@@ -537,20 +448,18 @@ decorate_actions_lib_1.ActionsLibDecorator.decorate(ActionsLib);
|
|
|
537
448
|
__metadata("design:paramtypes", [])
|
|
538
449
|
], Sample);
|
|
539
450
|
let SampleView = class SampleView extends view_1.View {
|
|
540
|
-
static {
|
|
451
|
+
static { SampleView_9 = this; }
|
|
541
452
|
static { this.triggered = false; }
|
|
542
453
|
constructor(entity) {
|
|
543
454
|
super();
|
|
544
|
-
}
|
|
545
|
-
async init() {
|
|
546
455
|
sampleAction
|
|
547
456
|
.subscribe(() => {
|
|
548
|
-
|
|
457
|
+
SampleView_9.triggered = true;
|
|
549
458
|
})
|
|
550
459
|
.attach(this);
|
|
551
460
|
}
|
|
552
461
|
};
|
|
553
|
-
SampleView =
|
|
462
|
+
SampleView = SampleView_9 = __decorate([
|
|
554
463
|
(0, view_1.ViewDecorator)({ entity: Sample }),
|
|
555
464
|
__metadata("design:paramtypes", [Sample])
|
|
556
465
|
], SampleView);
|
|
@@ -559,5 +468,37 @@ decorate_actions_lib_1.ActionsLibDecorator.decorate(ActionsLib);
|
|
|
559
468
|
(0, vitest_1.expect)(Sample.triggered).toEqual(true);
|
|
560
469
|
(0, vitest_1.expect)(SampleView.triggered).toEqual(true);
|
|
561
470
|
});
|
|
471
|
+
(0, vitest_1.test)('if view destroys the entity, the view should also be destroyed', async () => {
|
|
472
|
+
var Sample_2, SampleView_10;
|
|
473
|
+
let Sample = class Sample extends entity_1.Entity {
|
|
474
|
+
static { Sample_2 = this; }
|
|
475
|
+
static { this.destroyed = false; }
|
|
476
|
+
afterDestroy() {
|
|
477
|
+
Sample_2.destroyed = true;
|
|
478
|
+
}
|
|
479
|
+
};
|
|
480
|
+
Sample = Sample_2 = __decorate([
|
|
481
|
+
(0, entity_1.EntityDecorator)()
|
|
482
|
+
], Sample);
|
|
483
|
+
let SampleView = class SampleView extends view_1.View {
|
|
484
|
+
static { SampleView_10 = this; }
|
|
485
|
+
static { this.destroyed = false; }
|
|
486
|
+
constructor(entity) {
|
|
487
|
+
super();
|
|
488
|
+
entity.destroy();
|
|
489
|
+
}
|
|
490
|
+
afterDestroy() {
|
|
491
|
+
SampleView_10.destroyed = true;
|
|
492
|
+
}
|
|
493
|
+
};
|
|
494
|
+
SampleView = SampleView_10 = __decorate([
|
|
495
|
+
(0, view_1.ViewDecorator)({ entity: Sample }),
|
|
496
|
+
__metadata("design:paramtypes", [Sample])
|
|
497
|
+
], SampleView);
|
|
498
|
+
new Sample().attach(scene_1.Scene.getActiveSceneOrFail());
|
|
499
|
+
await update_cycle_1.UpdateCycle.triggerUpdateTick(1); // Update cycle should take place to destroy functions to be called
|
|
500
|
+
(0, vitest_1.expect)(Sample.destroyed).toEqual(true);
|
|
501
|
+
(0, vitest_1.expect)(SampleView.destroyed).toEqual(true);
|
|
502
|
+
});
|
|
562
503
|
});
|
|
563
504
|
//# sourceMappingURL=view.test.js.map
|
package/dist/pixi/game.js
CHANGED
|
@@ -90,7 +90,6 @@ class Game {
|
|
|
90
90
|
setTimeout(() => this.setScreenSize());
|
|
91
91
|
});
|
|
92
92
|
Game._camera = new camera_1.Camera();
|
|
93
|
-
await Game._camera.setup();
|
|
94
93
|
this.pixiApp.start();
|
|
95
94
|
this.pixiApp.ticker.add(() => {
|
|
96
95
|
update_cycle_1.UpdateCycle.triggerUpdateTick(this.pixiApp.ticker.deltaMS);
|
|
@@ -6,7 +6,6 @@ export declare class Camera {
|
|
|
6
6
|
private cameraViewGateway;
|
|
7
7
|
get position(): Vector;
|
|
8
8
|
constructor();
|
|
9
|
-
setup(): Promise<void>;
|
|
10
9
|
setPosition(position: Vector): void;
|
|
11
10
|
setTransition(options: FocusingOptions): void;
|
|
12
11
|
appear(on: boolean, type?: CameraAppearTransitionType): Promise<void>;
|
|
@@ -11,10 +11,7 @@ class Camera {
|
|
|
11
11
|
this.cameraGateway = game_entities_1.Service.get(__gateways_1.CameraGateway);
|
|
12
12
|
this.cameraViewGateway = game_entities_1.Service.get(__gateways_1.CameraViewGateway);
|
|
13
13
|
this.cameraGateway.createCamera();
|
|
14
|
-
|
|
15
|
-
async setup() {
|
|
16
|
-
// @ts-ignore
|
|
17
|
-
this.layers = await this.cameraViewGateway.getLayers();
|
|
14
|
+
this.layers = this.cameraViewGateway.getLayers();
|
|
18
15
|
}
|
|
19
16
|
setPosition(position) {
|
|
20
17
|
this.cameraGateway.setPosition(position);
|
|
@@ -2,6 +2,6 @@ import { ControllerLink } from '../../../../game-entities';
|
|
|
2
2
|
import { CameraAppearTransitionType, CameraLayer } from './dtos/requests.dto';
|
|
3
3
|
export declare const CameraViewControllerLink: ControllerLink;
|
|
4
4
|
export declare class CameraViewGateway {
|
|
5
|
-
getLayers():
|
|
5
|
+
getLayers(): Record<CameraLayer, string>;
|
|
6
6
|
appear(on: boolean, type: CameraAppearTransitionType): Promise<void>;
|
|
7
7
|
}
|
|
@@ -10,7 +10,7 @@ exports.CameraViewGateway = exports.CameraViewControllerLink = void 0;
|
|
|
10
10
|
const game_entities_1 = require("../../../../game-entities");
|
|
11
11
|
exports.CameraViewControllerLink = new game_entities_1.ControllerLink();
|
|
12
12
|
let CameraViewGateway = class CameraViewGateway {
|
|
13
|
-
|
|
13
|
+
getLayers() {
|
|
14
14
|
return exports.CameraViewControllerLink.trigger('getLayers');
|
|
15
15
|
}
|
|
16
16
|
async appear(on, type) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CameraAppearTransitionType, CameraLayer } from '../dtos/requests.dto';
|
|
2
2
|
export declare class CameraViewController {
|
|
3
|
-
getLayers():
|
|
3
|
+
getLayers(): Record<CameraLayer, string>;
|
|
4
4
|
appear(on: boolean, type: CameraAppearTransitionType): Promise<void>;
|
|
5
5
|
}
|
|
@@ -12,14 +12,14 @@ const camera_entity_1 = require("../../\uD83E\uDDCAentities/camera.entity");
|
|
|
12
12
|
const camera_view_1 = require("../../\uD83E\uDDE9views/camera.view");
|
|
13
13
|
const camera_view_gateway_1 = require("../camera-view.gateway");
|
|
14
14
|
let CameraViewController = class CameraViewController {
|
|
15
|
-
|
|
15
|
+
getLayers() {
|
|
16
16
|
let cameraEntityId = camera_entity_1.CameraEntity.getInstanceOrFail().id;
|
|
17
|
-
let cameraView =
|
|
17
|
+
let cameraView = camera_view_1.CameraView.getInstanceOrFail(cameraEntityId);
|
|
18
18
|
return cameraView.getLayers();
|
|
19
19
|
}
|
|
20
20
|
async appear(on, type) {
|
|
21
21
|
let cameraEntityId = camera_entity_1.CameraEntity.getInstanceOrFail().id;
|
|
22
|
-
let cameraView =
|
|
22
|
+
let cameraView = camera_view_1.CameraView.getInstanceOrFail(cameraEntityId);
|
|
23
23
|
return cameraView.appear(on, type);
|
|
24
24
|
}
|
|
25
25
|
};
|
|
@@ -16,7 +16,8 @@ const camera_entity_1 = require("../\uD83E\uDDCAentities/camera.entity");
|
|
|
16
16
|
const FOCUS_ANIMATION_DURATION = 1500;
|
|
17
17
|
let CameraService = class CameraService {
|
|
18
18
|
createCamera() {
|
|
19
|
-
|
|
19
|
+
let cameraEntity = new camera_entity_1.CameraEntity().skipAttachCheck();
|
|
20
|
+
return cameraEntity;
|
|
20
21
|
}
|
|
21
22
|
getCameraPosition() {
|
|
22
23
|
let cameraEntity = camera_entity_1.CameraEntity.getInstanceOrFail();
|
|
@@ -15,7 +15,6 @@ export declare class CameraView extends View {
|
|
|
15
15
|
private alphaAnimator;
|
|
16
16
|
private blackScreenAnimator;
|
|
17
17
|
constructor(entity: CameraEntity);
|
|
18
|
-
init(): Promise<void>;
|
|
19
18
|
protected destroySelf(): void;
|
|
20
19
|
getLayers(): Record<CameraLayer, string>;
|
|
21
20
|
appear(value: boolean, type: CameraAppearTransitionType): Promise<void>;
|
|
@@ -46,8 +46,6 @@ let CameraView = class CameraView extends game_entities_1.View {
|
|
|
46
46
|
reAnimateHandling: utilities_1.ReAnimateHandlingType.completePrevious,
|
|
47
47
|
completeAnimationsHandling: utilities_1.CompleteAnimationsHandlingType.stayInCurrentState
|
|
48
48
|
}).attach(this);
|
|
49
|
-
}
|
|
50
|
-
async init() {
|
|
51
49
|
game_1.Game.instance.screenSize
|
|
52
50
|
.subscribe(value => {
|
|
53
51
|
this.blackScreen.aspectRatio = value.x / value.y;
|