mani-game-engine 1.0.0-pre.76 → 1.0.0-pre.77

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,5 +1,6 @@
1
1
  import { System } from './types';
2
2
  import { Entity, ID, Signal, SignalCallback } from './index';
3
+ import { AddSignalOptions } from 'mani-signal/src/signal';
3
4
  export declare const entitySignalHandlers: Map<Object, [string, ID][]>;
4
5
  export declare const OnEntitySignal: (id: ID) => (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
5
6
  export declare class SystemContext<T extends System = System> {
@@ -8,8 +9,8 @@ export declare class SystemContext<T extends System = System> {
8
9
  readonly onDispose: Signal<unknown>;
9
10
  private signalBindings;
10
11
  constructor(entity: Entity);
11
- addSignalById<S>(signalId: string | symbol, callback: SignalCallback<S>, thisArg?: unknown): void;
12
- addSignal<S>(signal: Signal<S>, callback: SignalCallback<S>, thisArg?: unknown): () => void;
13
- addSignalOnce<S>(signal: Signal<S>, callback: SignalCallback<S>, thisArg?: unknown): () => void;
12
+ addSignalById<S>(signalId: string | symbol, callback: SignalCallback<S>, options?: AddSignalOptions): void;
13
+ addSignal<S>(signal: Signal<S>, callback: SignalCallback<S>, options?: AddSignalOptions): () => void;
14
+ addSignalOnce<S>(signal: Signal<S>, callback: SignalCallback<S>, options?: AddSignalOptions): () => void;
14
15
  dispose(): void;
15
16
  }
@@ -19,19 +19,19 @@ class SystemContext {
19
19
  this.onDispose = new index_1.Signal();
20
20
  this.signalBindings = new Set();
21
21
  }
22
- addSignalById(signalId, callback, thisArg) {
23
- this.signalBindings.add(this.entity.gameEngine.getSignal(signalId).add(callback, { context: thisArg }));
22
+ addSignalById(signalId, callback, options = {}) {
23
+ this.signalBindings.add(this.entity.gameEngine.getSignal(signalId).add(callback, options));
24
24
  }
25
- addSignal(signal, callback, thisArg) {
26
- const binding = signal.add(callback, { context: thisArg });
25
+ addSignal(signal, callback, options = {}) {
26
+ const binding = signal.add(callback, options);
27
27
  this.signalBindings.add(binding);
28
28
  return () => {
29
29
  binding.detach();
30
30
  this.signalBindings.delete(binding);
31
31
  };
32
32
  }
33
- addSignalOnce(signal, callback, thisArg) {
34
- const binding = signal.addOnce(callback, { context: thisArg });
33
+ addSignalOnce(signal, callback, options = {}) {
34
+ const binding = signal.addOnce(callback, options);
35
35
  this.signalBindings.add(binding);
36
36
  return () => {
37
37
  binding.detach();
@@ -1 +1 @@
1
- {"version":3,"file":"systemContext.js","sourceRoot":"","sources":["../src/systemContext.ts"],"names":[],"mappings":";;;AACA,mCAAmG;AAEtF,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,OAAiB;QACxF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAG,IAAI,CAAC,MAAc,CAAC,UAAyB,CAAC,SAAS,CAAI,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAC,OAAO,EAAE,OAAO,EAAC,CAAC,CAAC,CAAC;IACpI,CAAC;IAGD,SAAS,CAAI,MAAiB,EAAE,QAA2B,EAAE,OAAiB;QAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAC,OAAO,EAAE,OAAO,EAAC,CAAC,CAAC;QACzD,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,OAAiB;QAChF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAC,OAAO,EAAE,OAAO,EAAC,CAAC,CAAC;QAC7D,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;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"}
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.76",
4
+ "version": "1.0.0-pre.77",
5
5
  "description": "entity component system game engine for typescript",
6
6
  "private": false,
7
7
  "scripts": {
@@ -1,5 +1,6 @@
1
1
  import {System} from './types';
2
2
  import {Entity, GameEngine, ID, putIfAbsent, Signal, SignalBinding, SignalCallback} from './index';
3
+ import {AddSignalOptions} from 'mani-signal/src/signal';
3
4
 
4
5
  export const entitySignalHandlers = new Map<Object, [string, ID][]>();
5
6
  export const OnEntitySignal = (id: ID) => (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {
@@ -20,13 +21,13 @@ export class SystemContext<T extends System = System> {
20
21
  }
21
22
 
22
23
  // TODO: is this a bit hacky?
23
- addSignalById<S>(signalId: string | symbol, callback: SignalCallback<S>, thisArg?: unknown) {
24
- this.signalBindings.add(((this.entity as any).gameEngine as GameEngine).getSignal<S>(signalId).add(callback, {context: thisArg}));
24
+ addSignalById<S>(signalId: string | symbol, callback: SignalCallback<S>, options: AddSignalOptions = {}) {
25
+ this.signalBindings.add(((this.entity as any).gameEngine as GameEngine).getSignal<S>(signalId).add(callback, options));
25
26
  }
26
27
 
27
28
  // returns a function that can be called to remove the signal
28
- addSignal<S>(signal: Signal<S>, callback: SignalCallback<S>, thisArg?: unknown) {
29
- const binding = signal.add(callback, {context: thisArg});
29
+ addSignal<S>(signal: Signal<S>, callback: SignalCallback<S>, options: AddSignalOptions = {}) {
30
+ const binding = signal.add(callback, options);
30
31
  this.signalBindings.add(binding);
31
32
  return () => {
32
33
  binding.detach();
@@ -34,8 +35,8 @@ export class SystemContext<T extends System = System> {
34
35
  };
35
36
  }
36
37
 
37
- addSignalOnce<S>(signal: Signal<S>, callback: SignalCallback<S>, thisArg?: unknown) {
38
- const binding = signal.addOnce(callback, {context: thisArg});
38
+ addSignalOnce<S>(signal: Signal<S>, callback: SignalCallback<S>, options: AddSignalOptions = {}) {
39
+ const binding = signal.addOnce(callback, options);
39
40
  this.signalBindings.add(binding);
40
41
  return () => {
41
42
  binding.detach();