mani-game-engine 1.0.0-pre.78 → 1.0.0-pre.79

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.
@@ -7,6 +7,8 @@ export declare class SystemContext<T extends System = System> {
7
7
  readonly entity: Entity;
8
8
  readonly system: T;
9
9
  readonly onDispose: Signal<unknown>;
10
+ private readonly abortController;
11
+ get abortSignal(): AbortSignal;
10
12
  private signalBindings;
11
13
  constructor(entity: Entity);
12
14
  addSignalById<S>(signalId: string | symbol, callback: SignalCallback<S>, options?: AddSignalOptions): void;
@@ -14,9 +14,13 @@ const OnEntitySignal = (id) => (target, propertyKey, descriptor) => {
14
14
  };
15
15
  exports.OnEntitySignal = OnEntitySignal;
16
16
  class SystemContext {
17
+ get abortSignal() {
18
+ return this.abortController.signal;
19
+ }
17
20
  constructor(entity) {
18
21
  this.entity = entity;
19
22
  this.onDispose = new index_1.Signal();
23
+ this.abortController = new AbortController();
20
24
  this.signalBindings = new Set();
21
25
  }
22
26
  addSignalById(signalId, callback, options = {}) {
@@ -39,6 +43,7 @@ class SystemContext {
39
43
  };
40
44
  }
41
45
  dispose() {
46
+ this.abortController.abort();
42
47
  for (const binding of this.signalBindings)
43
48
  binding.detach();
44
49
  this.onDispose.dispatch();
@@ -1 +1 @@
1
- {"version":3,"file":"systemContext.js","sourceRoot":"","sources":["../src/systemContext.ts"],"names":[],"mappings":";;;AACA,mCAAmG;AAGtF,QAAA,oBAAoB,GAAG,IAAI,GAAG,EAA0B,CAAC;AAC/D,MAAM,cAAc,GAAG,CAAC,EAAM,EAAE,EAAE,CAAC,CAAC,MAAW,EAAE,WAAmB,EAAE,UAA8B,EAAE,EAAE;IAC7G,IAAI,MAAM,YAAY,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,MAAM,WAAW,GAAG,IAAA,mBAAW,EAAC,4BAAoB,EAAE,MAAM,CAAC,WAAW,EAAE,GAAmB,EAAE,CAAC,EAAE,CAAC,CAAC;QACpG,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;IACtC,CAAC;AACH,CAAC,CAAC;AAPW,QAAA,cAAc,kBAOzB;AAEF,MAAa,aAAa;IAKxB,YAAqB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAH1B,cAAS,GAAG,IAAI,cAAM,EAAE,CAAC;QAC1B,mBAAc,GAAG,IAAI,GAAG,EAAiB,CAAC;IAGlD,CAAC;IAGD,aAAa,CAAI,QAAyB,EAAE,QAA2B,EAAE,UAA4B,EAAE;QACrG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAG,IAAI,CAAC,MAAc,CAAC,UAAyB,CAAC,SAAS,CAAI,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACzH,CAAC;IAGD,SAAS,CAAI,MAAiB,EAAE,QAA2B,EAAE,UAA4B,EAAE;QACzF,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC;IACJ,CAAC;IAED,aAAa,CAAI,MAAiB,EAAE,QAA2B,EAAE,UAA4B,EAAE;QAC7F,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC;IAEJ,CAAC;IAED,OAAO;QACL,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QAC5D,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;IAC7B,CAAC;CACF;AAtCD,sCAsCC"}
1
+ {"version":3,"file":"systemContext.js","sourceRoot":"","sources":["../src/systemContext.ts"],"names":[],"mappings":";;;AACA,mCAAmG;AAGtF,QAAA,oBAAoB,GAAG,IAAI,GAAG,EAA0B,CAAC;AAC/D,MAAM,cAAc,GAAG,CAAC,EAAM,EAAE,EAAE,CAAC,CAAC,MAAW,EAAE,WAAmB,EAAE,UAA8B,EAAE,EAAE;IAC7G,IAAI,MAAM,YAAY,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,MAAM,WAAW,GAAG,IAAA,mBAAW,EAAC,4BAAoB,EAAE,MAAM,CAAC,WAAW,EAAE,GAAmB,EAAE,CAAC,EAAE,CAAC,CAAC;QACpG,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;IACtC,CAAC;AACH,CAAC,CAAC;AAPW,QAAA,cAAc,kBAOzB;AAEF,MAAa,aAAa;IAIxB,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;IACrC,CAAC;IAGD,YAAqB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAP1B,cAAS,GAAG,IAAI,cAAM,EAAE,CAAC;QACjB,oBAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAIjD,mBAAc,GAAG,IAAI,GAAG,EAAiB,CAAC;IAGlD,CAAC;IAGD,aAAa,CAAI,QAAyB,EAAE,QAA2B,EAAE,UAA4B,EAAE;QACrG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAG,IAAI,CAAC,MAAc,CAAC,UAAyB,CAAC,SAAS,CAAI,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACzH,CAAC;IAGD,SAAS,CAAI,MAAiB,EAAE,QAA2B,EAAE,UAA4B,EAAE;QACzF,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC;IACJ,CAAC;IAED,aAAa,CAAI,MAAiB,EAAE,QAA2B,EAAE,UAA4B,EAAE;QAC7F,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC;IAEJ,CAAC;IAED,OAAO;QACL,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QAC5D,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;IAC7B,CAAC;CACF;AA3CD,sCA2CC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mani-game-engine",
3
3
  "author": "Jan Mankopf",
4
- "version": "1.0.0-pre.78",
4
+ "version": "1.0.0-pre.79",
5
5
  "description": "entity component system game engine for typescript",
6
6
  "private": false,
7
7
  "scripts": {
@@ -15,6 +15,10 @@ export const OnEntitySignal = (id: ID) => (target: any, propertyKey: string, des
15
15
  export class SystemContext<T extends System = System> {
16
16
  readonly system!: T;
17
17
  readonly onDispose = new Signal();
18
+ private readonly abortController = new AbortController();
19
+ get abortSignal() {
20
+ return this.abortController.signal;
21
+ }
18
22
  private signalBindings = new Set<SignalBinding>();
19
23
 
20
24
  constructor(readonly entity: Entity) {
@@ -46,6 +50,7 @@ export class SystemContext<T extends System = System> {
46
50
  }
47
51
 
48
52
  dispose() {
53
+ this.abortController.abort();
49
54
  for (const binding of this.signalBindings) binding.detach();
50
55
  this.onDispose.dispatch();
51
56
  this.onDispose.detachAll();