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.
package/lib/systemContext.d.ts
CHANGED
|
@@ -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;
|
package/lib/systemContext.js
CHANGED
|
@@ -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();
|
package/lib/systemContext.js.map
CHANGED
|
@@ -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;
|
|
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
package/src/systemContext.ts
CHANGED
|
@@ -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();
|