mani-game-engine 1.0.0-pre.54 → 1.0.0-pre.56

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/entity.d.ts CHANGED
@@ -10,7 +10,7 @@ export declare class Entity {
10
10
  readonly onRemove: Signal<unknown>;
11
11
  private markRemoval;
12
12
  private _detached;
13
- private readonly signalMap;
13
+ readonly _signalMap: Map<ID, Signal>;
14
14
  private _components?;
15
15
  get components(): ReadonlyMap<Class, InstanceType<any>>;
16
16
  private _dynamicComponents;
package/lib/entity.js CHANGED
@@ -12,7 +12,7 @@ class Entity {
12
12
  this.onRemove = new mani_signal_1.Signal();
13
13
  this.markRemoval = false;
14
14
  this._detached = false;
15
- this.signalMap = new Map();
15
+ this._signalMap = new Map();
16
16
  this._dynamicComponents = new Map();
17
17
  this.dynamicComponentAdded = new mani_signal_1.Signal();
18
18
  this.dynamicComponentRemoved = new mani_signal_1.Signal();
@@ -87,7 +87,7 @@ class Entity {
87
87
  }
88
88
  get detached() { return this._detached; }
89
89
  getSignal(id) {
90
- return (0, injector_1.putIfAbsent)(this.signalMap, id, () => new mani_signal_1.Signal());
90
+ return (0, injector_1.putIfAbsent)(this._signalMap, id, () => new mani_signal_1.Signal());
91
91
  }
92
92
  setParent(parent) {
93
93
  if (parent === this._parent) {
@@ -140,7 +140,7 @@ class Entity {
140
140
  if (this.gameEngine) {
141
141
  return await this.gameEngine.remove(entity);
142
142
  }
143
- this.signalMap.forEach(signal => signal.detachAll());
143
+ entity._signalMap.forEach(signal => signal.detachAll());
144
144
  }
145
145
  async detach() {
146
146
  if (this._detached) {
package/lib/entity.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"entity.js","sourceRoot":"","sources":["../src/entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../src/entity.ts"],"names":[],"mappings":"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"}
package/lib/gameEngine.js CHANGED
@@ -268,7 +268,7 @@ class GameEngine {
268
268
  for (const entity of entities) {
269
269
  entity.markRemoval = false;
270
270
  if (!entity.gameEngine) {
271
- console.log(entity);
271
+ console.log('Entity not active', entity);
272
272
  }
273
273
  entity.gameEngine = undefined;
274
274
  const systemContexts = this.entitySystemMap.get(entity);
@@ -280,6 +280,7 @@ class GameEngine {
280
280
  }
281
281
  entity.onRemove.dispatch();
282
282
  entity.onRemove.detachAll();
283
+ entity._signalMap.forEach(signal => signal.detachAll());
283
284
  for (const system of this.onRemoveEntitySet) {
284
285
  system.onRemoveEntity(entity);
285
286
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gameEngine.js","sourceRoot":"","sources":["../src/gameEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gameEngine.js","sourceRoot":"","sources":["../src/gameEngine.ts"],"names":[],"mappings":"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"}
@@ -31,29 +31,34 @@ export type ScopeMapping = (params: {
31
31
  interface AddScopeSignalOptions extends ScopeSignalOptions {
32
32
  context?: unknown;
33
33
  }
34
- export declare class ScopeContext {
34
+ export type ScopeChangeParams = {
35
+ from: ScopeContext;
36
+ to: ScopeContext;
37
+ };
38
+ export declare class ScopeContext<T extends Class = Class<Scope>> {
35
39
  private parent?;
36
- readonly scope: Scope;
40
+ readonly scope: InstanceType<T>;
37
41
  readonly injector: EcsInjector;
38
42
  private readonly stack;
39
43
  private readonly signalBindings;
40
44
  private serviceBindings;
41
45
  private closed;
42
46
  private muteKeepAliveSignals;
43
- readonly onEnter: Signal<ScopeContext>;
44
- readonly onExit: Signal<ScopeContext>;
45
- readonly onSubReturn: Signal<ScopeContext>;
46
- readonly onSubExit: Signal<ScopeContext>;
47
- readonly onActivate: Signal<ScopeContext>;
48
- readonly onDeactivate: Signal<ScopeContext>;
47
+ readonly onEnter: Signal<ScopeContext<Class<Scope>>>;
48
+ readonly onExit: Signal<ScopeContext<Class<Scope>>>;
49
+ readonly onSubReturn: Signal<ScopeContext<Class<Scope>>>;
50
+ readonly onSubExit: Signal<ScopeContext<Class<Scope>>>;
51
+ readonly onActivate: Signal<ScopeContext<Class<Scope>>>;
52
+ readonly onDeactivate: Signal<ScopeContext<Class<Scope>>>;
49
53
  private readonly creationTime;
54
+ readonly onScopeChange: Signal<ScopeChangeParams>;
50
55
  get runtime(): number;
51
- constructor(injector: EcsInjector, scopeClass: Class, mapping?: ScopeMapping, parent?: ScopeContext | undefined, resolve?: () => void);
56
+ constructor(injector: EcsInjector, scopeClass: T, mapping?: ScopeMapping, parent?: ScopeContext<Class<Scope>> | undefined, resolve?: () => void);
52
57
  get isRoot(): boolean;
53
58
  get target(): Scope | undefined;
54
59
  get isActive(): boolean;
55
- get activeContext(): ScopeContext;
56
- enterScope(scopeClass: Class, mapping?: ScopeMapping): Promise<ScopeContext | undefined>;
60
+ get activeContext(): ScopeContext<Class<Scope>>;
61
+ enterScope(scopeClass: Class, mapping?: ScopeMapping): Promise<ScopeContext<Class<Scope>> | undefined>;
57
62
  exitScope(target?: Scope): Promise<void>;
58
63
  closeSubScopes(): void;
59
64
  private logStack;
@@ -68,9 +68,11 @@ class ScopeContext {
68
68
  this.creationTime = performance.now();
69
69
  if (!parent) {
70
70
  this.stack = new ScopeStack(this);
71
+ this.onScopeChange = new index_1.Signal();
71
72
  }
72
73
  else {
73
74
  this.stack = parent.stack;
75
+ this.onScopeChange = parent.onScopeChange;
74
76
  this.stack.stack.push(this);
75
77
  }
76
78
  this.injector = injector.createChild();
@@ -121,6 +123,7 @@ class ScopeContext {
121
123
  let newContext;
122
124
  const doChange = async () => {
123
125
  var _a, _b, _c, _d;
126
+ const oldContext = this.activeContext;
124
127
  (_b = (_a = this.activeContext.scope).onSubExit) === null || _b === void 0 ? void 0 : _b.call(_a);
125
128
  this.activeContext.onSubExit.dispatch(this);
126
129
  (_d = (_c = this.activeContext.scope).onDeactivate) === null || _d === void 0 ? void 0 : _d.call(_c);
@@ -129,6 +132,10 @@ class ScopeContext {
129
132
  newContext = new ScopeContext(this.activeContext.injector, scopeClass, mapping, this.activeContext, resolve);
130
133
  });
131
134
  this.logStack();
135
+ this.onScopeChange.dispatch({
136
+ from: oldContext,
137
+ to: newContext,
138
+ });
132
139
  const nextChange = this.stack.queuedScopeChanges.shift();
133
140
  if (nextChange) {
134
141
  await nextChange();
@@ -279,6 +286,7 @@ class ScopeContext {
279
286
  this.onDeactivate.dispatch(this);
280
287
  (_d = (_c = this.scope).onExit) === null || _d === void 0 ? void 0 : _d.call(_c);
281
288
  this.onExit.dispatch(this);
289
+ this.onScopeChange.dispatch({ from: this, to: this.parent });
282
290
  this.injector._dispose();
283
291
  this.parent.updateSignalBindings();
284
292
  (_f = (_e = this.parent.scope).onSubReturn) === null || _f === void 0 ? void 0 : _f.call(_e);
@@ -1 +1 @@
1
- {"version":3,"file":"scopeContext.js","sourceRoot":"","sources":["../../src/scope/scopeContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scopeContext.js","sourceRoot":"","sources":["../../src/scope/scopeContext.ts"],"names":[],"mappings":"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"}
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.54",
4
+ "version": "1.0.0-pre.56",
5
5
  "description": "entity component system game engine for typescript",
6
6
  "private": false,
7
7
  "scripts": {
package/src/entity.ts CHANGED
@@ -3,6 +3,7 @@ import {Signal} from 'mani-signal';
3
3
  import {Class} from './types';
4
4
  import {ID, putIfAbsent} from './injector';
5
5
  import {EcsInjector} from './ecsInjector';
6
+ import {entitySignalHandlers} from './systemContext';
6
7
 
7
8
  let idCounter = 0;
8
9
 
@@ -21,7 +22,7 @@ export class Entity {
21
22
  readonly onRemove = new Signal();
22
23
  private markRemoval = false;
23
24
  private _detached = false;
24
- private readonly signalMap: Map<ID, Signal> = new Map<ID, Signal>();
25
+ readonly _signalMap: Map<ID, Signal> = new Map<ID, Signal>();
25
26
 
26
27
  // this is filled by the injector
27
28
  private _components?: Map<Class, InstanceType<any>>;
@@ -108,7 +109,7 @@ export class Entity {
108
109
  async onBeforeRemove?(): Promise<void>;
109
110
 
110
111
  getSignal<T>(id: ID): Signal<T> {
111
- return putIfAbsent(this.signalMap, id, () => new Signal<any>());
112
+ return putIfAbsent(this._signalMap, id, () => new Signal<any>());
112
113
  }
113
114
 
114
115
  private setParent(parent: Entity | undefined) {
@@ -173,7 +174,7 @@ export class Entity {
173
174
  if (this.gameEngine) {
174
175
  return await this.gameEngine.remove(entity);
175
176
  }
176
- this.signalMap.forEach(signal => signal.detachAll());
177
+ entity._signalMap.forEach(signal => signal.detachAll());
177
178
  }
178
179
 
179
180
  async detach() {
package/src/gameEngine.ts CHANGED
@@ -41,7 +41,6 @@ export class GameEngine {
41
41
  readonly onAddEntity: Signal<Entity>;
42
42
  readonly onRemoveEntity: Signal<Entity>;
43
43
 
44
-
45
44
  private readonly onEarlyUpdateSet = new Set<System>();
46
45
  private readonly onUpdateSet = new Set<System>();
47
46
  private readonly onFixedUpdateSet = new Set<System>();
@@ -55,7 +54,6 @@ export class GameEngine {
55
54
  private readonly onAddEntitySet = new Set<System>();
56
55
  private readonly onRemoveEntitySet = new Set<System>();
57
56
 
58
-
59
57
  // TODO: for performance, we could store the systems directly in the entity
60
58
  private readonly entitySystemMap = new Map<Entity, Set<SystemContext>>();
61
59
 
@@ -70,7 +68,6 @@ export class GameEngine {
70
68
 
71
69
  private _started = false;
72
70
 
73
-
74
71
  get started(): boolean { return this._started; }
75
72
 
76
73
  private _frameCount = 0;
@@ -350,7 +347,7 @@ export class GameEngine {
350
347
  for (const entity of entities) {
351
348
  (<any>entity).markRemoval = false;
352
349
  if (!(<any>entity).gameEngine) {
353
- console.log(entity);
350
+ console.log('Entity not active', entity);
354
351
  // throw new Error('Entity not active');
355
352
  }
356
353
  (<any>entity).gameEngine = undefined;
@@ -364,6 +361,7 @@ export class GameEngine {
364
361
  }
365
362
  entity.onRemove.dispatch();
366
363
  entity.onRemove.detachAll();
364
+ entity._signalMap.forEach(signal => signal.detachAll());
367
365
 
368
366
  for (const system of this.onRemoveEntitySet) {
369
367
  system.onRemoveEntity!(entity);
@@ -391,12 +389,12 @@ export class GameEngine {
391
389
  this.entitySystemMap.set(entity, systemContexts);
392
390
  }
393
391
 
394
- const entityWasAdded = ()=> {
392
+ const entityWasAdded = () => {
395
393
  for (const system of this.onAddEntitySet) {
396
394
  system.onAddEntity!(entity);
397
395
  }
398
396
  resolve();
399
- }
397
+ };
400
398
 
401
399
  // Promise.all doesnt resolve immediately when there are no promises bu
402
400
  if (preparePromises.length === 0) {
@@ -50,7 +50,7 @@ class ScopeSignalBinding {
50
50
  this.signalBinding.detach();
51
51
  }
52
52
  }
53
-
53
+ // TODO: rename to ScopeStack to something like InternalScopeTreeSingleton with an interface
54
54
  class ScopeStack {
55
55
  readonly stack: ScopeContext[] = [];
56
56
  queuedScopeChanges: (() => Promise<void>)[] = [];
@@ -68,7 +68,6 @@ class ScopeStack {
68
68
  get activeContext() {
69
69
  return this.stack[this.stack.length - 1];
70
70
  }
71
-
72
71
  }
73
72
 
74
73
  export type ScopeMapping = (params: {
@@ -87,9 +86,14 @@ interface AddScopeSignalOptions extends ScopeSignalOptions {
87
86
  context?: unknown;
88
87
  }
89
88
 
89
+ export type ScopeChangeParams = {
90
+ from: ScopeContext;
91
+ to: ScopeContext;
92
+ }
93
+
90
94
  // TODO: maybe move Signal resolver to Injector and dont use EcsInjector here?
91
- export class ScopeContext {
92
- readonly scope!: Scope;
95
+ export class ScopeContext<T extends Class = Class<Scope>> {
96
+ readonly scope!: InstanceType<T>;
93
97
  readonly injector: EcsInjector;
94
98
  private readonly stack: ScopeStack; // TODO: naming
95
99
  private readonly signalBindings: ScopeSignalBinding[] = [];
@@ -107,18 +111,21 @@ export class ScopeContext {
107
111
  readonly onActivate = new Signal<ScopeContext>();
108
112
  readonly onDeactivate = new Signal<ScopeContext>();
109
113
  private readonly creationTime: DOMHighResTimeStamp;
114
+ readonly onScopeChange: Signal<ScopeChangeParams>;
110
115
 
111
116
  get runtime() {
112
117
  return (performance.now() - this.creationTime) / 1000;
113
118
  }
114
119
 
115
- constructor(injector: EcsInjector, scopeClass: Class, mapping?: ScopeMapping, private parent?: ScopeContext, resolve?: () => void) {
120
+ constructor(injector: EcsInjector, scopeClass: T, mapping?: ScopeMapping, private parent?: ScopeContext, resolve?: () => void) {
116
121
  this.creationTime = performance.now();
117
122
  if (!parent) {
118
123
  this.stack = new ScopeStack(this);
124
+ this.onScopeChange = new Signal<ScopeChangeParams>();
119
125
 
120
126
  } else {
121
127
  this.stack = parent.stack;
128
+ this.onScopeChange = parent.onScopeChange;
122
129
  this.stack.stack.push(this);
123
130
  }
124
131
 
@@ -162,7 +169,7 @@ export class ScopeContext {
162
169
  }
163
170
  }
164
171
 
165
- get isRoot() {
172
+ get isRoot(): boolean {
166
173
  return this === this.stack.rootScope;
167
174
  }
168
175
 
@@ -171,7 +178,7 @@ export class ScopeContext {
171
178
  return this.stack.target;
172
179
  }
173
180
 
174
- get isActive() {
181
+ get isActive(): boolean {
175
182
  return this === this.stack.activeContext;
176
183
  }
177
184
 
@@ -185,7 +192,7 @@ export class ScopeContext {
185
192
  async enterScope(scopeClass: Class, mapping?: ScopeMapping) {
186
193
  let newContext: ScopeContext | undefined;
187
194
  const doChange = async () => {
188
-
195
+ const oldContext = this.activeContext;
189
196
  this.activeContext.scope.onSubExit?.();
190
197
  this.activeContext.onSubExit.dispatch(this);
191
198
  this.activeContext.scope.onDeactivate?.();
@@ -196,6 +203,10 @@ export class ScopeContext {
196
203
  });
197
204
 
198
205
  this.logStack();
206
+ this.onScopeChange.dispatch({
207
+ from: oldContext,
208
+ to: newContext!,
209
+ })
199
210
  const nextChange = this.stack.queuedScopeChanges.shift();
200
211
  if (nextChange) {
201
212
  await nextChange();
@@ -359,7 +370,7 @@ export class ScopeContext {
359
370
 
360
371
  this.scope.onExit?.();
361
372
  this.onExit.dispatch(this);
362
-
373
+ this.onScopeChange.dispatch({from: this, to: this.parent});
363
374
  this.injector._dispose();
364
375
 
365
376
  this.parent.updateSignalBindings();