@vworlds/vecs 1.0.12 → 1.0.13

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/dist/entity.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Component } from "./component.js";
1
+ import { type Component, type ComponentClass, type ComponentClassOrType } from "./component.js";
2
2
  import type { World } from "./world.js";
3
3
  import { ReadonlyArrayMap } from "./util/array_map.js";
4
4
  import { Events } from "./util/events.js";
@@ -107,17 +107,16 @@ export declare class Entity {
107
107
  */
108
108
  setParent(newParent: Entity | undefined): void;
109
109
  /**
110
- * Mark `c` as having changed, queueing the corresponding `onSet` / `update`
110
+ * Mark a component type as having changed, queueing the corresponding `onSet` / `update`
111
111
  * notifications.
112
112
  *
113
- * Equivalent to `c.modified()` but returns the entity for chaining. Repeated
114
- * calls before the world routes the modified command are coalesced via the
115
- * component's dirty flag.
113
+ * Repeated calls before the world routes the modified command are coalesced via
114
+ * the entity's dirty component bitset.
116
115
  *
117
- * @param c - Component instance whose data changed.
116
+ * @param typeOrClass - Component class or numeric type id whose data changed.
118
117
  * @returns This entity, for chaining.
119
118
  */
120
- modified<C extends typeof Component>(c: InstanceType<C>): Entity;
119
+ modified(typeOrClass: ComponentClassOrType): Entity;
121
120
  /**
122
121
  * Attach a component to this entity if it is not already present.
123
122
  *
@@ -127,7 +126,7 @@ export declare class Entity {
127
126
  * @param Class - Component class to instantiate.
128
127
  * @returns This entity, for chaining.
129
128
  */
130
- add<C extends typeof Component>(Class: C): Entity;
129
+ add<C extends ComponentClass>(Class: C): Entity;
131
130
  /**
132
131
  * Attach a component by numeric type id.
133
132
  *
@@ -147,7 +146,7 @@ export declare class Entity {
147
146
  * @param props - Properties to assign onto the component instance.
148
147
  * @returns This entity, for chaining.
149
148
  */
150
- set<C extends typeof Component>(Class: C, props: Partial<InstanceType<C>>): Entity;
149
+ set<C extends ComponentClass>(Class: C, props: Partial<InstanceType<C>>): Entity;
151
150
  /**
152
151
  * Attach a component by numeric type id and copy `props` onto it.
153
152
  *
@@ -165,7 +164,7 @@ export declare class Entity {
165
164
  *
166
165
  * @param Class - Component class to detach.
167
166
  */
168
- remove<C extends typeof Component>(Class: C): void;
167
+ remove<C extends ComponentClass>(Class: C): void;
169
168
  /**
170
169
  * Detach a component by numeric type id.
171
170
  *
@@ -178,7 +177,7 @@ export declare class Entity {
178
177
  * @param typeOrClass - Component class or numeric type id.
179
178
  * @returns The component instance, or `undefined` when it is not attached.
180
179
  */
181
- get<C extends typeof Component>(typeOrClass: number | C): InstanceType<C> | undefined;
180
+ get<C extends ComponentClass>(typeOrClass: number | C): InstanceType<C> | undefined;
182
181
  /**
183
182
  * Destroy this entity and recursively destroy its children.
184
183
  *
package/dist/entity.js CHANGED
@@ -42,6 +42,8 @@ export class Entity {
42
42
  this.eid = eid;
43
43
  /** @internal Maps numeric component type id to component instance. */
44
44
  this._components = new ArrayMap();
45
+ /** @internal Component types with pending modified delivery. */
46
+ this._dirtyComponentBitmask = new Bitset();
45
47
  /** @internal Set of queries this entity currently belongs to. */
46
48
  this._queries = new Set();
47
49
  /**
@@ -77,23 +79,22 @@ export class Entity {
77
79
  * If the component type belongs to an exclusivity group, any conflicting
78
80
  * component already on this entity is removed first.
79
81
  */
80
- _new(type, props) {
81
- const meta = this.world.getComponentMeta(type);
82
- if (meta.exclusive) {
83
- for (const exclusiveType of meta.exclusive) {
84
- if (this._components.has(exclusiveType)) {
85
- this._remove(exclusiveType);
82
+ _new(meta, props) {
83
+ if (meta._exclusive) {
84
+ for (const exclusiveMeta of meta._exclusive) {
85
+ if (this._components.has(exclusiveMeta.type)) {
86
+ this._remove(exclusiveMeta);
86
87
  }
87
88
  }
88
89
  }
89
- const c = new meta.Class(this, meta);
90
+ const c = new meta.Class();
90
91
  if (props !== undefined) {
91
92
  Object.assign(c, props);
92
93
  }
93
- this._components.set(type, c);
94
- this.componentBitmask.add(type);
94
+ this._components.set(meta.type, c);
95
+ this.componentBitmask.addBit(meta.bitPtr);
95
96
  if (meta._onAddHandlers) {
96
- meta._onAddHandlers.forEach((handler) => handler(c));
97
+ meta._onAddHandlers.forEach((handler) => handler(this, c));
97
98
  }
98
99
  this._updateQueries();
99
100
  return c;
@@ -145,23 +146,23 @@ export class Entity {
145
146
  * `props` if provided, fire `onSet`, and route modified events to every
146
147
  * query that watches the component type.
147
148
  */
148
- _set(type, props) {
149
+ _set(meta, props) {
149
150
  if (this._destroyed) {
150
151
  return;
151
152
  }
152
- const existing = this._components.get(type);
153
- const c = existing ?? this._new(type, props);
153
+ const existing = this._components.get(meta.type);
154
+ const c = existing ?? this._new(meta, props);
154
155
  if (props !== undefined) {
155
156
  if (existing) {
156
157
  Object.assign(c, props);
157
158
  }
158
- const setHandlers = c.meta._onSetHandlers;
159
+ const setHandlers = meta._onSetHandlers;
159
160
  if (setHandlers) {
160
- setHandlers.forEach((handler) => handler(c));
161
+ setHandlers.forEach((handler) => handler(this, c));
161
162
  }
162
- c._dirty = false;
163
+ this._dirtyComponentBitmask.deleteBit(meta.bitPtr);
163
164
  if (existing) {
164
- this._queries.forEach((q) => q._notifyModified(c));
165
+ this._queries.forEach((q) => q._notifyModified(this, meta, c));
165
166
  }
166
167
  }
167
168
  }
@@ -169,39 +170,40 @@ export class Entity {
169
170
  * @internal Apply a `Modified` command: fire `onSet` and route modified
170
171
  * events to every query that watches the component type.
171
172
  */
172
- _modified(type) {
173
+ _modified(meta) {
173
174
  if (this._destroyed) {
174
175
  return;
175
176
  }
176
- const c = this._components.get(type);
177
+ const c = this._components.get(meta.type);
177
178
  if (!c) {
178
179
  return;
179
180
  }
180
- const setHandlers = c.meta._onSetHandlers;
181
+ const setHandlers = meta._onSetHandlers;
181
182
  if (setHandlers) {
182
- setHandlers.forEach((handler) => handler(c));
183
+ setHandlers.forEach((handler) => handler(this, c));
183
184
  }
184
- c._dirty = false;
185
- this._queries.forEach((q) => q._notifyModified(c));
185
+ this._dirtyComponentBitmask.deleteBit(meta.bitPtr);
186
+ this._queries.forEach((q) => q._notifyModified(this, meta, c));
186
187
  }
187
188
  /**
188
189
  * @internal Apply a `Remove` command: clear the type bit, route exits,
189
190
  * detach the component, and fire `onRemove`.
190
191
  */
191
- _remove(type) {
192
+ _remove(meta) {
192
193
  if (this._destroyed) {
193
194
  return;
194
195
  }
195
- const c = this._components.get(type);
196
+ const c = this._components.get(meta.type);
196
197
  if (!c) {
197
198
  return;
198
199
  }
199
- this.componentBitmask.delete(type);
200
+ this._dirtyComponentBitmask.deleteBit(meta.bitPtr);
201
+ this.componentBitmask.deleteBit(meta.bitPtr);
200
202
  this._updateQueries();
201
- this._components.delete(type);
202
- const removeHandlers = c.meta._onRemoveHandlers;
203
+ this._components.delete(meta.type);
204
+ const removeHandlers = meta._onRemoveHandlers;
203
205
  if (removeHandlers) {
204
- removeHandlers.forEach((handler) => handler(c));
206
+ removeHandlers.forEach((handler) => handler(this, c));
205
207
  }
206
208
  }
207
209
  /**
@@ -221,12 +223,14 @@ export class Entity {
221
223
  }
222
224
  });
223
225
  toExit.forEach((q) => q._exit(this));
224
- this._components.forEach((c) => {
225
- const removeHandlers = c.meta._onRemoveHandlers;
226
+ this._components.forEach((c, type) => {
227
+ const meta = this.world.getComponentMeta(type);
228
+ const removeHandlers = meta._onRemoveHandlers;
226
229
  if (removeHandlers) {
227
- removeHandlers.forEach((handler) => handler(c));
230
+ removeHandlers.forEach((handler) => handler(this, c));
228
231
  }
229
232
  });
233
+ this._dirtyComponentBitmask.clear();
230
234
  if (this._events) {
231
235
  this._events.emit("destroy");
232
236
  this._events.removeAllListeners("destroy");
@@ -315,56 +319,56 @@ export class Entity {
315
319
  }
316
320
  }
317
321
  /**
318
- * Mark `c` as having changed, queueing the corresponding `onSet` / `update`
322
+ * Mark a component type as having changed, queueing the corresponding `onSet` / `update`
319
323
  * notifications.
320
324
  *
321
- * Equivalent to `c.modified()` but returns the entity for chaining. Repeated
322
- * calls before the world routes the modified command are coalesced via the
323
- * component's dirty flag.
325
+ * Repeated calls before the world routes the modified command are coalesced via
326
+ * the entity's dirty component bitset.
324
327
  *
325
- * @param c - Component instance whose data changed.
328
+ * @param typeOrClass - Component class or numeric type id whose data changed.
326
329
  * @returns This entity, for chaining.
327
330
  */
328
- modified(c) {
329
- if (c._dirty) {
331
+ modified(typeOrClass) {
332
+ const meta = this.world.getComponentMeta(typeOrClass);
333
+ if (this._dirtyComponentBitmask.hasBit(meta.bitPtr)) {
330
334
  return this;
331
335
  }
332
- c._dirty = true;
336
+ this._dirtyComponentBitmask.addBit(meta.bitPtr);
333
337
  if (this.world.deferred) {
334
- this.world._enqueue({ kind: 2 /* CommandKind.Modified */, entity: this, type: c.type });
338
+ this.world._enqueue({ kind: 2 /* CommandKind.Modified */, entity: this, meta });
335
339
  }
336
340
  else {
337
- this._modified(c.type);
341
+ this._modified(meta);
338
342
  }
339
343
  return this;
340
344
  }
341
345
  add(typeOrClass) {
342
- const type = this.world.getComponentType(typeOrClass);
346
+ const meta = this.world.getComponentMeta(typeOrClass);
343
347
  if (this.world.deferred) {
344
- this.world._enqueue({ kind: 1 /* CommandKind.Set */, entity: this, type, props: undefined });
348
+ this.world._enqueue({ kind: 1 /* CommandKind.Set */, entity: this, meta, props: undefined });
345
349
  }
346
350
  else {
347
- this._set(type, undefined);
351
+ this._set(meta, undefined);
348
352
  }
349
353
  return this;
350
354
  }
351
355
  set(typeOrClass, props) {
352
- const type = this.world.getComponentType(typeOrClass);
356
+ const meta = this.world.getComponentMeta(typeOrClass);
353
357
  if (this.world.deferred) {
354
- this.world._enqueue({ kind: 1 /* CommandKind.Set */, entity: this, type, props });
358
+ this.world._enqueue({ kind: 1 /* CommandKind.Set */, entity: this, meta, props });
355
359
  }
356
360
  else {
357
- this._set(type, props);
361
+ this._set(meta, props);
358
362
  }
359
363
  return this;
360
364
  }
361
365
  remove(typeOrClass) {
362
- const type = this.world.getComponentType(typeOrClass);
366
+ const meta = this.world.getComponentMeta(typeOrClass);
363
367
  if (this.world.deferred) {
364
- this.world._enqueue({ kind: 3 /* CommandKind.Remove */, entity: this, type });
368
+ this.world._enqueue({ kind: 3 /* CommandKind.Remove */, entity: this, meta });
365
369
  }
366
370
  else {
367
- this._remove(type);
371
+ this._remove(meta);
368
372
  }
369
373
  }
370
374
  /**
@@ -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/dist/filter.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Component } from "./component.js";
1
+ import { type ComponentClass } from "./component.js";
2
2
  import type { Entity } from "./entity.js";
3
3
  import type { World } from "./world.js";
4
4
  import { type MaybeRequired, type QueryDSL } from "./dsl.js";
@@ -35,7 +35,7 @@ import { type MaybeRequired, type QueryDSL } from "./dsl.js";
35
35
  * manually via the `_guaranteed` argument. Components in `R` are non-nullable
36
36
  * in `forEach` callback tuples.
37
37
  */
38
- export declare class Filter<R extends (typeof Component)[] = []> {
38
+ export declare class Filter<R extends ComponentClass[] = []> {
39
39
  /** World this filter reads entities from. */
40
40
  readonly world: World;
41
41
  private readonly _belongs;
@@ -61,7 +61,7 @@ export declare class Filter<R extends (typeof Component)[] = []> {
61
61
  * @param callback - Receives the entity and a tuple of resolved component
62
62
  * instances.
63
63
  */
64
- forEach<J extends (typeof Component)[]>(components: readonly [...J], callback: (e: Entity, resolved: {
64
+ forEach<J extends ComponentClass[]>(components: readonly [...J], callback: (e: Entity, resolved: {
65
65
  [K in keyof J]: MaybeRequired<J[K], R>;
66
66
  }) => void): void;
67
67
  }
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ export { type System, type SystemQuery } from "./system.js";
2
2
  export { Query } from "./query.js";
3
3
  export { World } from "./world.js";
4
4
  export { Filter } from "./filter.js";
5
- export { Component, type ComponentMeta } from "./component.js";
5
+ export { type Component, type ComponentClass, type ComponentMeta } from "./component.js";
6
6
  export { type Entity } from "./entity.js";
7
7
  export { type IPhase } from "./phase.js";
8
8
  export { IntervalTickSource, RateTickSource, type ITickSource } from "./timer.js";
package/dist/index.js CHANGED
@@ -1,7 +1,6 @@
1
1
  export { Query } from "./query.js";
2
2
  export { World } from "./world.js";
3
3
  export { Filter } from "./filter.js";
4
- export { Component } from "./component.js";
5
4
  export { IntervalTickSource, RateTickSource } from "./timer.js";
6
5
  export { Bitset } from "./util/bitset.js";
7
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAsB,MAAM,gBAAgB,CAAC;AAG/D,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAoB,MAAM,YAAY,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAoB,MAAM,YAAY,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vworlds/vecs",
3
- "version": "1.0.12",
3
+ "version": "1.0.13",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
package/dist/query.d.ts CHANGED
@@ -1,16 +1,16 @@
1
- import { Component } from "./component.js";
1
+ import { type ComponentClass } from "./component.js";
2
2
  import type { Entity } from "./entity.js";
3
3
  import { type World } from "./world.js";
4
4
  import { type EntityTestFunc, type QueryDSL, type MaybeRequired } from "./dsl.js";
5
5
  export type { EntityTestFunc, QueryDSL, MaybeRequired };
6
6
  /** Component class, or `{ parent: ComponentClass }` to resolve from the entity's parent. */
7
- type ComponentOrParent = typeof Component | {
8
- parent: typeof Component;
7
+ type ComponentOrParent = ComponentClass | {
8
+ parent: ComponentClass;
9
9
  };
10
10
  /** Resolves the component instance type for one element of a `ComponentOrParent` tuple. */
11
11
  type ComponentInstance<T> = T extends {
12
- parent: typeof Component;
13
- } ? InstanceType<T["parent"]> : T extends typeof Component ? InstanceType<T> : never;
12
+ parent: ComponentClass;
13
+ } ? InstanceType<T["parent"]> : T extends ComponentClass ? InstanceType<T> : never;
14
14
  /**
15
15
  * A reactive, always-up-to-date set of entities matching a {@link QueryDSL}
16
16
  * predicate.
@@ -33,7 +33,7 @@ type ComponentInstance<T> = T extends {
33
33
  * Components in `R` appear as non-nullable in {@link sort}, {@link forEach},
34
34
  * and {@link update} callback tuples.
35
35
  */
36
- export declare class Query<R extends (typeof Component)[] = []> {
36
+ export declare class Query<R extends ComponentClass[] = []> {
37
37
  /** Unique display name; appears in logs and debug output. */
38
38
  readonly name: string;
39
39
  /** World that owns this query. */
@@ -89,7 +89,7 @@ export declare class Query<R extends (typeof Component)[] = []> {
89
89
  * @param callback - Receives the entity and a tuple of resolved component
90
90
  * instances.
91
91
  */
92
- forEach<J extends (typeof Component)[]>(components: readonly [...J], callback: (e: Entity, resolved: {
92
+ forEach<J extends ComponentClass[]>(components: readonly [...J], callback: (e: Entity, resolved: {
93
93
  [K in keyof J]: MaybeRequired<J[K], R>;
94
94
  }) => void): void;
95
95
  /**
@@ -155,50 +155,50 @@ export declare class Query<R extends (typeof Component)[] = []> {
155
155
  * predicate becomes a `HAS` of every watched type).
156
156
  *
157
157
  * @param ComponentClass - Component class to watch.
158
- * @param callback - Receives the modified component instance.
158
+ * @param callback - Receives the entity and modified component instance.
159
159
  * @returns This query, for chaining.
160
160
  *
161
161
  * @example
162
162
  * ```ts
163
163
  * world.system("RenderPosition")
164
- * .update(Position, (pos) => sprite.setPosition(pos.x, pos.y));
164
+ * .update(Position, (e, pos) => sprite.setPosition(pos.x, pos.y));
165
165
  * ```
166
166
  */
167
- update<C extends typeof Component>(ComponentClass: C, callback: (c: InstanceType<C>) => void): this;
167
+ update<C extends ComponentClass>(ComponentClass: C, callback: (e: Entity, c: InstanceType<C>) => void): this;
168
168
  /**
169
169
  * Like {@link update}, but with extra components injected from the same
170
170
  * entity.
171
171
  *
172
172
  * @param ComponentClass - Component class to watch.
173
173
  * @param inject - Additional component classes to resolve from the entity.
174
- * @param callback - Receives the modified component and the injected tuple.
174
+ * @param callback - Receives the entity, modified component, and injected tuple.
175
175
  * @returns This query, for chaining.
176
176
  */
177
- update<C extends typeof Component, J extends (typeof Component)[]>(ComponentClass: C, inject: readonly [...J], callback: (c: InstanceType<C>, injected: {
177
+ update<C extends ComponentClass, J extends ComponentClass[]>(ComponentClass: C, inject: readonly [...J], callback: (e: Entity, c: InstanceType<C>, injected: {
178
178
  [K in keyof J]: MaybeRequired<J[K], R>;
179
179
  }) => void): this;
180
180
  /**
181
181
  * Switch the tracked set to a sorted ordering: matched entities are stored
182
- * in the position determined by `compare`, which receives a tuple of
183
- * resolved component instances for each pair being ordered.
182
+ * in the position determined by `compare`, which receives each entity and a
183
+ * tuple of resolved component instances for each pair being ordered.
184
184
  *
185
185
  * Implies {@link track}.
186
186
  *
187
187
  * @param components - Component classes to resolve and pass to `compare`.
188
- * @param compare - Negative when `a` should sort before `b`, zero for
189
- * equality, positive when `a` should sort after `b`.
188
+ * @param compare - Negative when `entityA` should sort before `entityB`, zero
189
+ * for equality, positive when `entityA` should sort after `entityB`.
190
190
  * @returns This query, for chaining.
191
191
  *
192
192
  * @example
193
193
  * ```ts
194
194
  * world.system("Render")
195
195
  * .requires(Position, Sprite)
196
- * .sort([Position], ([posA], [posB]) => posA.z - posB.z);
196
+ * .sort([Position], (_entityA, [posA], _entityB, [posB]) => posA.z - posB.z);
197
197
  * ```
198
198
  */
199
- sort<J extends (typeof Component)[]>(components: readonly [...J], compare: (a: {
199
+ sort<J extends ComponentClass[]>(components: readonly [...J], compare: (entityA: Entity, a: {
200
200
  [K in keyof J]: MaybeRequired<J[K], R>;
201
- }, b: {
201
+ }, entityB: Entity, b: {
202
202
  [K in keyof J]: MaybeRequired<J[K], R>;
203
203
  }) => number): this;
204
204
  /**
@@ -224,7 +224,7 @@ export declare class Query<R extends (typeof Component)[] = []> {
224
224
  * });
225
225
  * ```
226
226
  */
227
- query<T extends (typeof Component)[] = []>(q: QueryDSL, _guaranteed?: readonly [...T]): Query<T>;
227
+ query<T extends ComponentClass[] = []>(q: QueryDSL, _guaranteed?: readonly [...T]): Query<T>;
228
228
  /**
229
229
  * Shorthand for `query([...components])`: track entities that have **all**
230
230
  * of the listed component types.
@@ -236,7 +236,7 @@ export declare class Query<R extends (typeof Component)[] = []> {
236
236
  * @param components - Component classes to require.
237
237
  * @returns This query, retyped with the required tuple as its `R`.
238
238
  */
239
- requires<T extends (typeof Component)[]>(...components: [...T]): Query<T>;
239
+ requires<T extends ComponentClass[]>(...components: [...T]): Query<T>;
240
240
  /**
241
241
  * Permanently remove this query from the world.
242
242
  *
package/dist/query.js CHANGED
@@ -120,9 +120,10 @@ export class Query {
120
120
  this._entities?.add(e);
121
121
  e._addQueryMembership(this);
122
122
  this._enterCallback?.(e);
123
- e.components.forEach((c) => {
124
- if (this._watchlistBitmask.hasBit(c.bitPtr)) {
125
- this._notifyModified(c);
123
+ e.components.forEach((c, type) => {
124
+ const meta = this.world.getComponentMeta(type);
125
+ if (this._watchlistBitmask.hasBit(meta.bitPtr)) {
126
+ this._notifyModified(e, meta, c);
126
127
  }
127
128
  });
128
129
  }
@@ -141,13 +142,13 @@ export class Query {
141
142
  * `update` callback for the component type. `System` overrides this to push
142
143
  * an inbox event instead of firing immediately.
143
144
  */
144
- _notifyModified(c) {
145
- if (!this._watchlistBitmask.hasBit(c.bitPtr)) {
145
+ _notifyModified(e, meta, c) {
146
+ if (!this._watchlistBitmask.hasBit(meta.bitPtr)) {
146
147
  return;
147
148
  }
148
- const callback = this._componentUpdateCallbacks.get(c.type);
149
+ const callback = this._componentUpdateCallbacks.get(meta.type);
149
150
  if (callback) {
150
- callback(c);
151
+ callback(e, c);
151
152
  }
152
153
  }
153
154
  /**
@@ -239,13 +240,13 @@ export class Query {
239
240
  else {
240
241
  const inject = injectOrCallback;
241
242
  const injectedComponentTypes = inject.map((C) => this.world.getComponentType(C));
242
- const cb = (c) => {
243
+ const cb = (e, c) => {
243
244
  const injected = [];
244
245
  injectedComponentTypes.forEach((InjectedComponentType) => {
245
- injected.push(c.entity.get(InjectedComponentType));
246
+ injected.push(e.get(InjectedComponentType));
246
247
  });
247
248
  if (callback) {
248
- callback(c, injected);
249
+ callback(e, c, injected);
249
250
  }
250
251
  };
251
252
  this._componentUpdateCallbacks.set(type, cb);
@@ -263,26 +264,26 @@ export class Query {
263
264
  }
264
265
  /**
265
266
  * Switch the tracked set to a sorted ordering: matched entities are stored
266
- * in the position determined by `compare`, which receives a tuple of
267
- * resolved component instances for each pair being ordered.
267
+ * in the position determined by `compare`, which receives each entity and a
268
+ * tuple of resolved component instances for each pair being ordered.
268
269
  *
269
270
  * Implies {@link track}.
270
271
  *
271
272
  * @param components - Component classes to resolve and pass to `compare`.
272
- * @param compare - Negative when `a` should sort before `b`, zero for
273
- * equality, positive when `a` should sort after `b`.
273
+ * @param compare - Negative when `entityA` should sort before `entityB`, zero
274
+ * for equality, positive when `entityA` should sort after `entityB`.
274
275
  * @returns This query, for chaining.
275
276
  *
276
277
  * @example
277
278
  * ```ts
278
279
  * world.system("Render")
279
280
  * .requires(Position, Sprite)
280
- * .sort([Position], ([posA], [posB]) => posA.z - posB.z);
281
+ * .sort([Position], (_entityA, [posA], _entityB, [posB]) => posA.z - posB.z);
281
282
  * ```
282
283
  */
283
284
  sort(components, compare) {
284
285
  const types = components.map((C) => this.world.getComponentType(C));
285
- this._entities = new OrderedSet((a, b) => compare(types.map((t) => a.get(t)), types.map((t) => b.get(t))));
286
+ this._entities = new OrderedSet((a, b) => compare(a, types.map((t) => a.get(t)), b, types.map((t) => b.get(t))));
286
287
  this._backfill();
287
288
  return this;
288
289
  }
package/dist/query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI1C,OAAO,EACL,IAAI,EACJ,gBAAgB,GAIjB,MAAM,UAAU,CAAC;AAoBlB,MAAM,cAAc,GAAwB,IAAI,GAAG,EAAE,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,KAAK;IAoBhB;IACE,6DAA6D;IAC7C,IAAY;IAC5B,kCAAkC;IAClB,KAAY,EAC5B,QAAiB,IAAI;QAHL,SAAI,GAAJ,IAAI,CAAQ;QAEZ,UAAK,GAAL,KAAK,CAAO;QArB9B,oFAAoF;QAC1E,aAAQ,GAAmB,CAAC,EAAU,EAAE,EAAE,CAAC,KAAK,CAAC;QAC3D,6FAA6F;QACnF,cAAS,GAAY,KAAK,CAAC;QAErC,sEAAsE;QAC5D,mBAAc,GAA+B,SAAS,CAAC;QACjE,qEAAqE;QAC3D,kBAAa,GAA+B,SAAS,CAAC;QAChE,uFAAuF;QAC7E,uBAAkB,GAAyB,SAAS,CAAC;QAE/D,uDAAuD;QAC7C,8BAAyB,GAAG,IAAI,QAAQ,EAAqB,CAAC;QACxE,8EAA8E;QACpE,sBAAiB,GAAW,IAAI,MAAM,EAAE,CAAC;QASjD,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;IACH,CAAC;IAED;;;;OAIG;IACK,SAAS;QACf,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAChC,OAAO;SACR;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE;YACpB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAChC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;oBAC1C,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBAChB;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,aAAa,CACnB,CAAS,EACT,CAAwB,EACxB,YAAqC;QAErC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;YACzB,OAAO,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACzC;aAAM;YACL,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;SAChC;IACH,CAAC;IAED;;;OAGG;IACK,YAAY,CAClB,CAAS,EACT,MAA+B,EAC/B,YAAqC;QAErC,MAAM,QAAQ,GAAgB,EAAE,CAAC;QACjC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACnB,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;YACjD,IAAI,CAAC,CAAC,EAAE;gBACN,MAAM,kCAAkC,CAAC;aAC1C;YACD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACK,wBAAwB,CAC9B,MAAuB;QAEvB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACtB,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE;gBAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;aACvC;YACD,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,CAAS;QACrB,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACzB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;gBAC3C,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;aACzB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,CAAS;QACpB,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACI,eAAe,CAAC,CAAY;QACjC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;YAC5C,OAAO;SACR;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,CAAC,CAAC,CAAC;SACb;IACH,CAAC;IAED;;;;;;;OAOG;IACH,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,SAAS,IAAI,cAAc,CAAC;IAC1C,CAAC;IAED,8BAA8B;IACvB,QAAQ;QACb,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK;QACV,IAAI,CAAC,SAAS,KAAd,IAAI,CAAC,SAAS,GAAK,IAAI,GAAG,EAAU,EAAC;QACrC,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gEAAgE;IACzD,OAAO,CAAC,CAAS;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IA+BM,OAAO,CACZ,oBAA6D,EAC7D,QAAoF;QAEpF,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACxB,IAAI;YACF,IAAI,OAAO,oBAAoB,KAAK,UAAU,EAAE;gBAC9C,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;aAC/C;iBAAM;gBACL,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;oBAClC,OAAO;iBACR;gBACD,MAAM,KAAK,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9E,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5C,QAAS,CAAC,CAAC,EAAE,QAAe,CAAC,CAAC;gBAChC,CAAC,CAAC,CAAC;aACJ;SACF;gBAAS;YACR,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;SACvB;IACH,CAAC;IAgCM,KAAK,CACV,gBAAyD,EACzD,QAAqF;QAErF,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE;YAC1C,IAAI,CAAC,cAAc,GAAG,gBAAgB,CAAC;SACxC;aAAM;YACL,MAAM,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;YAC/D,IAAI,CAAC,cAAc,GAAG,CAAC,CAAS,EAAE,EAAE;gBAClC,QAAS,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAQ,CAAC,CAAC;YACpD,CAAC,CAAC;SACH;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IA2BM,IAAI,CACT,gBAAyD,EACzD,QAAqF;QAErF,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE;YAC1C,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC;YACtC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;SACrC;aAAM;YACL,MAAM,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;YAC/D,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;YACnF,IAAI,CAAC,aAAa,GAAG,CAAC,CAAS,EAAE,YAAqC,EAAE,EAAE;gBACxE,QAAS,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,CAAQ,CAAC,CAAC;YAClE,CAAC,CAAC;SACH;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IA6CM,MAAM,CACX,cAAiB,EACjB,gBAAkE,EAClE,QAA6F;QAE7F,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE;YAC1C,QAAQ,GAAG,gBAAgB,CAAC;YAC5B,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,IAAI,EAAE,QAAe,CAAC,CAAC;SAC3D;aAAM;YACL,MAAM,MAAM,GAAG,gBAAgB,CAAC;YAChC,MAAM,sBAAsB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;YACjF,MAAM,EAAE,GAAG,CAAC,CAAY,EAAE,EAAE;gBAC1B,MAAM,QAAQ,GAAU,EAAE,CAAC;gBAC3B,sBAAsB,CAAC,OAAO,CAAC,CAAC,qBAAqB,EAAE,EAAE;oBACvD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBACrD,CAAC,CAAC,CAAC;gBAEH,IAAI,QAAQ,EAAE;oBACZ,QAAQ,CAAC,CAAoB,EAAE,QAAe,CAAC,CAAC;iBACjD;YACH,CAAC,CAAC;YAEF,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;SAC9C;QAED,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEjC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,wEAAwE;YACxE,sEAAsE;YACtE,0DAA0D;YAC1D,MAAM,SAAS,GAAa,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;YAC7D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,SAAS,CAAC,CAAC;YAC/C,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACI,IAAI,CACT,UAA2B,EAC3B,OAGW;QAEX,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,SAAS,GAAG,IAAI,UAAU,CAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC/C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAQ,CAAC,CAC9E,CAAC;QACF,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACI,KAAK,CACV,CAAW,EACX,WAA6B;QAE7B,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,OAAO,IAA2B,CAAC;IACrC,CAAC;IAED;;;;;;;;;;OAUG;IACI,QAAQ,CAAiC,GAAG,UAAkB;QACnE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACvB,OAAO,IAA2B,CAAC;IACrC,CAAC;IAED;;;;;;;;;OASG;IACI,OAAO;QACZ,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,KAAK,CAAC;QACrC,IAAY,CAAC,KAAK,GAAG,SAAS,CAAC;IAClC,CAAC;CACF"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}