mani-game-engine 1.0.0-pre.50 → 1.0.0-pre.52

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.
@@ -32,9 +32,8 @@ export declare class EcsInjector<SystemClass extends Class = Class> extends Inje
32
32
  protected entitySystemMap: Map<Class, SystemClass[]>;
33
33
  protected dynamicComponentSystemMap: Map<Class, SystemClass[]>;
34
34
  protected entitySystemResolverTuples: Map<Class, Map<SystemClass, ResolverFunction[]>>;
35
- private signalMap;
35
+ private readonly signalMap;
36
36
  constructor(parent?: EcsInjector<SystemClass>);
37
- newSignalScope(): void;
38
37
  registerSystem<T extends SystemClass>(systemClass: T): void;
39
38
  createSystemsForDynamicComponents(dynamicComponentClass: Class, entity: Entity): Set<SystemContext<import("./types").System>> | undefined;
40
39
  createSystemsForEntity(entity: Entity): Set<SystemContext>;
@@ -125,9 +125,6 @@ class EcsInjector extends injector_1.Injector {
125
125
  this.addExtensionResolver('entitySignal', entitySignalResolver);
126
126
  }
127
127
  }
128
- newSignalScope() {
129
- this.signalMap = new Map();
130
- }
131
128
  registerSystem(systemClass) {
132
129
  var _a;
133
130
  const componentDependencies = ((_a = this.componentDependencyMap.get(systemClass)) === null || _a === void 0 ? void 0 : _a.map(it => it.type)) || [];
@@ -1 +1 @@
1
- {"version":3,"file":"ecsInjector.js","sourceRoot":"","sources":["../src/ecsInjector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ecsInjector.js","sourceRoot":"","sources":["../src/ecsInjector.ts"],"names":[],"mappings":"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"}
package/lib/entity.d.ts CHANGED
@@ -11,6 +11,8 @@ export declare class Entity {
11
11
  private markRemoval;
12
12
  private _detached;
13
13
  private readonly signalMap;
14
+ private _components?;
15
+ get components(): ReadonlyMap<Class, InstanceType<any>>;
14
16
  private _dynamicComponents;
15
17
  readonly dynamicComponentAdded: Signal<any>;
16
18
  readonly dynamicComponentRemoved: Signal<any>;
package/lib/entity.js CHANGED
@@ -20,6 +20,13 @@ class Entity {
20
20
  get isAdded() {
21
21
  return !!this.gameEngine;
22
22
  }
23
+ get components() {
24
+ if (!this._components) {
25
+ this._components = new Map();
26
+ ecsInjector_1.EcsInjector.entityComponents.get(this.constructor).forEach((field, componentClass) => this._components.set(componentClass, this[field]));
27
+ }
28
+ return this._components;
29
+ }
23
30
  get dynamicComponents() {
24
31
  return this._dynamicComponents;
25
32
  }
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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"}
@@ -27,7 +27,7 @@ export type ScopeMapping = (params: {
27
27
  onSubExit: Signal<ScopeContext>;
28
28
  onActivate: Signal<ScopeContext>;
29
29
  onDeactivate: Signal<ScopeContext>;
30
- }) => void;
30
+ }) => any | Promise<void>;
31
31
  interface AddScopeSignalOptions extends ScopeSignalOptions {
32
32
  context?: unknown;
33
33
  }
@@ -48,13 +48,13 @@ export declare class ScopeContext {
48
48
  readonly onDeactivate: Signal<ScopeContext>;
49
49
  private readonly creationTime;
50
50
  get runtime(): number;
51
- constructor(injector: EcsInjector, scopeClass: Class, mapping?: ScopeMapping, parent?: ScopeContext | undefined);
51
+ constructor(injector: EcsInjector, scopeClass: Class, mapping?: ScopeMapping, parent?: ScopeContext | undefined, resolve?: () => void);
52
52
  get isRoot(): boolean;
53
53
  get target(): Scope | undefined;
54
54
  get isActive(): boolean;
55
55
  get activeContext(): ScopeContext;
56
- enterScope(scopeClass: Class, mapping?: ScopeMapping): ScopeContext | undefined;
57
- exitScope(target?: Scope): void;
56
+ enterScope(scopeClass: Class, mapping?: ScopeMapping): Promise<ScopeContext | undefined>;
57
+ exitScope(target?: Scope): Promise<void>;
58
58
  closeSubScopes(): void;
59
59
  private logStack;
60
60
  getStackClasses(): Scope[];
@@ -53,8 +53,7 @@ class ScopeContext {
53
53
  get runtime() {
54
54
  return (performance.now() - this.creationTime) / 1000;
55
55
  }
56
- constructor(injector, scopeClass, mapping, parent) {
57
- var _a, _b, _c, _d;
56
+ constructor(injector, scopeClass, mapping, parent, resolve) {
58
57
  this.parent = parent;
59
58
  this.signalBindings = [];
60
59
  this.serviceBindings = [];
@@ -77,7 +76,7 @@ class ScopeContext {
77
76
  this.injector = injector.createChild();
78
77
  this.injector.map(scopeClass).toSingleton();
79
78
  this.injector.map(ScopeContext).toValue(this);
80
- mapping === null || mapping === void 0 ? void 0 : mapping({
79
+ const result = mapping === null || mapping === void 0 ? void 0 : mapping({
81
80
  injector: this.injector,
82
81
  registerScopeService: serviceClass => {
83
82
  this.injector.map(serviceClass).toSingleton();
@@ -90,13 +89,23 @@ class ScopeContext {
90
89
  onActivate: this.onActivate,
91
90
  onDeactivate: this.onDeactivate,
92
91
  });
93
- this.scope = this.injector.get(scopeClass);
94
- this.mapScopeSignals();
95
- this.updateSignalBindings();
96
- (_b = (_a = this.scope).onEnter) === null || _b === void 0 ? void 0 : _b.call(_a);
97
- this.onEnter.dispatch(this);
98
- (_d = (_c = this.scope).onActivate) === null || _d === void 0 ? void 0 : _d.call(_c);
99
- this.onActivate.dispatch(this);
92
+ const completeScopeChange = () => {
93
+ var _a, _b, _c, _d;
94
+ this.scope = this.injector.get(scopeClass);
95
+ this.mapScopeSignals();
96
+ this.updateSignalBindings();
97
+ (_b = (_a = this.scope).onEnter) === null || _b === void 0 ? void 0 : _b.call(_a);
98
+ this.onEnter.dispatch(this);
99
+ (_d = (_c = this.scope).onActivate) === null || _d === void 0 ? void 0 : _d.call(_c);
100
+ this.onActivate.dispatch(this);
101
+ resolve === null || resolve === void 0 ? void 0 : resolve();
102
+ };
103
+ if (result instanceof Promise) {
104
+ result.then(completeScopeChange);
105
+ }
106
+ else {
107
+ completeScopeChange();
108
+ }
100
109
  }
101
110
  get isRoot() {
102
111
  return this === this.stack.rootScope;
@@ -108,19 +117,21 @@ class ScopeContext {
108
117
  return this === this.stack.activeContext;
109
118
  }
110
119
  get activeContext() { return this.stack.activeContext; }
111
- enterScope(scopeClass, mapping) {
120
+ async enterScope(scopeClass, mapping) {
112
121
  let newContext;
113
- const doChange = () => {
122
+ const doChange = async () => {
114
123
  var _a, _b, _c, _d;
115
124
  (_b = (_a = this.activeContext.scope).onSubExit) === null || _b === void 0 ? void 0 : _b.call(_a);
116
125
  this.activeContext.onSubExit.dispatch(this);
117
126
  (_d = (_c = this.activeContext.scope).onDeactivate) === null || _d === void 0 ? void 0 : _d.call(_c);
118
127
  this.activeContext.onDeactivate.dispatch(this);
119
- newContext = new ScopeContext(this.activeContext.injector, scopeClass, mapping, this.activeContext);
128
+ await new Promise(resolve => {
129
+ newContext = new ScopeContext(this.activeContext.injector, scopeClass, mapping, this.activeContext, resolve);
130
+ });
120
131
  this.logStack();
121
132
  const nextChange = this.stack.queuedScopeChanges.shift();
122
133
  if (nextChange) {
123
- nextChange();
134
+ await nextChange();
124
135
  }
125
136
  else {
126
137
  this.stack.ongoingChange = false;
@@ -128,15 +139,15 @@ class ScopeContext {
128
139
  };
129
140
  if (!this.stack.ongoingChange) {
130
141
  this.stack.ongoingChange = true;
131
- doChange();
142
+ await doChange();
132
143
  }
133
144
  else {
134
145
  this.stack.queuedScopeChanges.push(doChange);
135
146
  }
136
147
  return newContext;
137
148
  }
138
- exitScope(target) {
139
- const doChange = () => {
149
+ async exitScope(target) {
150
+ const doChange = async () => {
140
151
  if (this.closed)
141
152
  throw new Error(`Scope already closed`);
142
153
  this.stack.target = target || this.scope.constructor;
@@ -153,7 +164,7 @@ class ScopeContext {
153
164
  this.stack.target = undefined;
154
165
  const nextChange = this.stack.queuedScopeChanges.shift();
155
166
  if (nextChange) {
156
- nextChange();
167
+ await nextChange();
157
168
  }
158
169
  else {
159
170
  this.stack.ongoingChange = false;
@@ -161,7 +172,7 @@ class ScopeContext {
161
172
  };
162
173
  if (!this.stack.ongoingChange) {
163
174
  this.stack.ongoingChange = true;
164
- doChange();
175
+ await doChange();
165
176
  }
166
177
  else {
167
178
  this.stack.queuedScopeChanges.push(doChange);
@@ -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.50",
4
+ "version": "1.0.0-pre.52",
5
5
  "description": "entity component system game engine for typescript",
6
6
  "private": false,
7
7
  "scripts": {
@@ -132,7 +132,7 @@ export class EcsInjector<SystemClass extends Class = Class> extends Injector {
132
132
  protected entitySystemMap: Map<Class, SystemClass[]>;
133
133
  protected dynamicComponentSystemMap: Map<Class, SystemClass[]>;
134
134
  protected entitySystemResolverTuples: Map<Class, Map<SystemClass, ResolverFunction[]>>;
135
- private signalMap: Map<ID, Signal>;
135
+ private readonly signalMap: Map<ID, Signal>;
136
136
 
137
137
  constructor(parent?: EcsInjector<SystemClass>) {
138
138
  super(parent);
@@ -162,9 +162,9 @@ export class EcsInjector<SystemClass extends Class = Class> extends Injector {
162
162
  }
163
163
 
164
164
  //TODO: this needs some overthinking...
165
- newSignalScope() {
166
- this.signalMap = new Map<ID, Signal>();
167
- }
165
+ // newSignalScope() {
166
+ // this.signalMap = new Map<ID, Signal>();
167
+ // }
168
168
 
169
169
  registerSystem<T extends SystemClass>(systemClass: T) {
170
170
  // TODO: check if system is already mapped
package/src/entity.ts CHANGED
@@ -23,6 +23,18 @@ export class Entity {
23
23
  private _detached = false;
24
24
  private readonly signalMap: Map<ID, Signal> = new Map<ID, Signal>();
25
25
 
26
+ // this is filled by the injector
27
+ private _components?: Map<Class, InstanceType<any>>;
28
+ get components(): ReadonlyMap<Class, InstanceType<any>> {
29
+ if (!this._components) {
30
+ this._components = new Map<Class, InstanceType<any>>();
31
+ EcsInjector.entityComponents.get(this.constructor as Class)!.forEach((field, componentClass) =>
32
+ this._components!.set(componentClass, (this as any)[field]));
33
+ }
34
+ return this._components;
35
+ }
36
+
37
+
26
38
  private _dynamicComponents = new Map<Class, InstanceType<any>>();
27
39
 
28
40
  readonly dynamicComponentAdded = new Signal<InstanceType<any>>();
@@ -53,7 +53,7 @@ class ScopeSignalBinding {
53
53
 
54
54
  class ScopeStack {
55
55
  readonly stack: ScopeContext[] = [];
56
- queuedScopeChanges: Function[] = [];
56
+ queuedScopeChanges: (() => Promise<void>)[] = [];
57
57
  ongoingChange = false;
58
58
  target?: Scope;
59
59
 
@@ -81,7 +81,7 @@ export type ScopeMapping = (params: {
81
81
  onActivate: Signal<ScopeContext>,
82
82
  onDeactivate: Signal<ScopeContext>,
83
83
 
84
- }) => void
84
+ }) => any | Promise<void>;
85
85
 
86
86
  interface AddScopeSignalOptions extends ScopeSignalOptions {
87
87
  context?: unknown;
@@ -89,7 +89,7 @@ interface AddScopeSignalOptions extends ScopeSignalOptions {
89
89
 
90
90
  // TODO: maybe move Signal resolver to Injector and dont use EcsInjector here?
91
91
  export class ScopeContext {
92
- readonly scope: Scope;
92
+ readonly scope!: Scope;
93
93
  readonly injector: EcsInjector;
94
94
  private readonly stack: ScopeStack; // TODO: naming
95
95
  private readonly signalBindings: ScopeSignalBinding[] = [];
@@ -112,7 +112,7 @@ export class ScopeContext {
112
112
  return (performance.now() - this.creationTime) / 1000;
113
113
  }
114
114
 
115
- constructor(injector: EcsInjector, scopeClass: Class, mapping?: ScopeMapping, private parent?: ScopeContext) {
115
+ constructor(injector: EcsInjector, scopeClass: Class, mapping?: ScopeMapping, private parent?: ScopeContext, resolve?: () => void) {
116
116
  this.creationTime = performance.now();
117
117
  if (!parent) {
118
118
  this.stack = new ScopeStack(this);
@@ -129,7 +129,7 @@ export class ScopeContext {
129
129
  this.injector.map(scopeClass).toSingleton();
130
130
  this.injector.map(ScopeContext).toValue(this);
131
131
 
132
- mapping?.({
132
+ const result = mapping?.({
133
133
  injector: this.injector,
134
134
  registerScopeService: serviceClass => {
135
135
  this.injector.map(serviceClass).toSingleton();
@@ -143,14 +143,23 @@ export class ScopeContext {
143
143
  onDeactivate: this.onDeactivate,
144
144
  });
145
145
 
146
- this.scope = this.injector.get(scopeClass) as Scope;
147
- this.mapScopeSignals();
148
- this.updateSignalBindings();
149
- // TODO: maybe the scope needs to prepare resources or something before it can react to signals, so we should move onEnter bevore the signal mapping and make it async (not working in constructor though)
150
- this.scope.onEnter?.();
151
- this.onEnter.dispatch(this);
152
- this.scope.onActivate?.();
153
- this.onActivate.dispatch(this);
146
+ const completeScopeChange = () => {
147
+ (this.scope as Scope) = this.injector.get(scopeClass);
148
+ this.mapScopeSignals();
149
+ this.updateSignalBindings();
150
+ // TODO: maybe the scope needs to prepare resources or something before it can react to signals, so we should move onEnter bevore the signal mapping and make it async (not working in constructor though)
151
+ this.scope.onEnter?.();
152
+ this.onEnter.dispatch(this);
153
+ this.scope.onActivate?.();
154
+ this.onActivate.dispatch(this);
155
+ resolve?.();
156
+ };
157
+
158
+ if (result instanceof Promise) {
159
+ result.then(completeScopeChange);
160
+ } else {
161
+ completeScopeChange();
162
+ }
154
163
  }
155
164
 
156
165
  get isRoot() {
@@ -173,21 +182,23 @@ export class ScopeContext {
173
182
  * @param scopeClass
174
183
  * @param mapping
175
184
  */
176
- enterScope(scopeClass: Class, mapping?: ScopeMapping): ScopeContext | undefined {
177
- let newContext;
178
- const doChange = () => {
185
+ async enterScope(scopeClass: Class, mapping?: ScopeMapping) {
186
+ let newContext: ScopeContext | undefined;
187
+ const doChange = async () => {
179
188
 
180
189
  this.activeContext.scope.onSubExit?.();
181
190
  this.activeContext.onSubExit.dispatch(this);
182
191
  this.activeContext.scope.onDeactivate?.();
183
192
  this.activeContext.onDeactivate.dispatch(this);
184
193
 
185
- newContext = new ScopeContext(this.activeContext.injector, scopeClass, mapping, this.activeContext);
194
+ await new Promise<void>(resolve => {
195
+ newContext = new ScopeContext(this.activeContext.injector, scopeClass, mapping, this.activeContext, resolve);
196
+ });
186
197
 
187
198
  this.logStack();
188
199
  const nextChange = this.stack.queuedScopeChanges.shift();
189
200
  if (nextChange) {
190
- nextChange();
201
+ await nextChange();
191
202
  } else {
192
203
  this.stack.ongoingChange = false;
193
204
  }
@@ -195,7 +206,7 @@ export class ScopeContext {
195
206
  // TODO: this queued changes are somewhat experimental
196
207
  if (!this.stack.ongoingChange) {
197
208
  this.stack.ongoingChange = true;
198
- doChange();
209
+ await doChange();
199
210
  } else {
200
211
  this.stack.queuedScopeChanges.push(doChange);
201
212
  }
@@ -205,8 +216,8 @@ export class ScopeContext {
205
216
  /**
206
217
  * Exits this scope (and all open subscopes=), if a scope class is given. all scopes from the stack are closed until after the scope with the given class
207
218
  */
208
- exitScope(target?: Scope) {
209
- const doChange = () => {
219
+ async exitScope(target?: Scope) {
220
+ const doChange = async () => {
210
221
  if (this.closed) throw new Error(`Scope already closed`);
211
222
  // TODO: check if target is in stack?
212
223
  this.stack.target = target || this.scope.constructor;
@@ -223,7 +234,7 @@ export class ScopeContext {
223
234
  this.stack.target = undefined;
224
235
  const nextChange = this.stack.queuedScopeChanges.shift();
225
236
  if (nextChange) {
226
- nextChange();
237
+ await nextChange();
227
238
  } else {
228
239
  this.stack.ongoingChange = false;
229
240
  }
@@ -231,7 +242,7 @@ export class ScopeContext {
231
242
  };
232
243
  if (!this.stack.ongoingChange) {
233
244
  this.stack.ongoingChange = true;
234
- doChange();
245
+ await doChange();
235
246
  } else {
236
247
  this.stack.queuedScopeChanges.push(doChange);
237
248
  }