bard-legends-framework 0.10.3 → 0.10.4

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.
@@ -1,10 +1,11 @@
1
+ import { Variable } from 'actions-lib';
1
2
  import { Attachable } from '../base/attachable';
2
3
  export type SceneClassType = new (...services: any[]) => Scene<any>;
3
4
  export declare function SceneDecorator(): (SceneClass: SceneClassType) => any;
4
5
  export declare abstract class Scene<InputType> extends Attachable {
5
6
  private static sceneInstance?;
6
7
  private static sceneTransitioning;
7
- static get activeScene(): Scene<any> | undefined;
8
+ static activeScene: Variable<Scene<any> | undefined>;
8
9
  static getActiveSceneOrFail(): Scene<any>;
9
10
  static isActive<T extends Scene<any>>(this: new (...args: any[]) => T): boolean;
10
11
  static getInstance<T extends Scene<any>>(this: new (...args: any[]) => T): T | undefined;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Scene = exports.SceneDecorator = void 0;
4
+ const actions_lib_1 = require("actions-lib");
4
5
  const attachable_1 = require("../base/attachable");
5
6
  const service_1 = require("../service/service");
6
7
  const update_cycle_1 = require("../update-cycle");
@@ -16,9 +17,7 @@ function SceneDecorator() {
16
17
  exports.SceneDecorator = SceneDecorator;
17
18
  class Scene extends attachable_1.Attachable {
18
19
  static { this.sceneTransitioning = false; }
19
- static get activeScene() {
20
- return Scene.sceneInstance;
21
- }
20
+ static { this.activeScene = new actions_lib_1.Variable(); }
22
21
  static getActiveSceneOrFail() {
23
22
  if (!Scene.sceneInstance) {
24
23
  throw new Error(`Scene: getActiveSceneOrFail is called when there is no active scene!`);
@@ -47,10 +46,12 @@ class Scene extends attachable_1.Attachable {
47
46
  await Scene.sceneInstance.prepareToClose();
48
47
  Scene.sceneInstance.destroy();
49
48
  Scene.sceneInstance = undefined;
49
+ Scene.activeScene.set(undefined);
50
50
  }
51
51
  let resolvedArgs = service_1.Service.resolveParameters([], this.$meta.paramtypes);
52
52
  let scene = new this(...resolvedArgs);
53
53
  Scene.sceneInstance = scene;
54
+ Scene.activeScene.set(scene);
54
55
  await scene.init(input);
55
56
  Scene.sceneTransitioning = false;
56
57
  }
@@ -60,6 +61,7 @@ class Scene extends attachable_1.Attachable {
60
61
  await Scene.sceneInstance.prepareToClose();
61
62
  Scene.sceneInstance.destroy();
62
63
  Scene.sceneInstance = undefined;
64
+ Scene.activeScene.set(undefined);
63
65
  }
64
66
  }
65
67
  constructor() {
@@ -53,8 +53,8 @@ decorate_actions_lib_1.ActionsLibDecorator.decorate(ActionsLib);
53
53
  (0, scene_1.SceneDecorator)()
54
54
  ], SampleScene);
55
55
  SampleScene.open(undefined);
56
- (0, vitest_1.expect)(scene_1.Scene.activeScene).toBeDefined();
57
- (0, vitest_1.expect)(scene_1.Scene.activeScene).toBeInstanceOf(SampleScene);
56
+ (0, vitest_1.expect)(scene_1.Scene.activeScene.value).toBeDefined();
57
+ (0, vitest_1.expect)(scene_1.Scene.activeScene.value).toBeInstanceOf(SampleScene);
58
58
  });
59
59
  (0, vitest_1.test)('arguments in open call should be passed to the init function', () => {
60
60
  let SampleScene = class SampleScene extends scene_1.Scene {
@@ -114,7 +114,7 @@ decorate_actions_lib_1.ActionsLibDecorator.decorate(ActionsLib);
114
114
  (0, vitest_1.expect)(SampleScene1.destroyCalled).toBeFalsy();
115
115
  SampleScene2.open(undefined);
116
116
  await update_cycle_1.UpdateCycle.triggerUpdateTick(1); // Update cycle should take place to destroy functions to be called
117
- (0, vitest_1.expect)(scene_1.Scene.activeScene).toBeInstanceOf(SampleScene2);
117
+ (0, vitest_1.expect)(scene_1.Scene.activeScene.value).toBeInstanceOf(SampleScene2);
118
118
  (0, vitest_1.expect)(SampleScene1.destroyCalled).toBeTruthy();
119
119
  });
120
120
  (0, vitest_1.test)('get instance should return the scene with its type', () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bard-legends-framework",
3
- "version": "0.10.3",
3
+ "version": "0.10.4",
4
4
  "description": "Bard Legends Framework",
5
5
  "main": "dist/index.js",
6
6
  "files": [