@vworlds/vecs 1.0.20 → 1.0.21
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/README.md +51 -48
- package/dist/component.d.ts +5 -2
- package/dist/component.js +4 -57
- package/dist/component.js.map +1 -1
- package/dist/component_meta.d.ts +15 -8
- package/dist/component_meta.js +6 -4
- package/dist/component_meta.js.map +1 -1
- package/dist/dsl.d.ts +56 -11
- package/dist/dsl.js +21 -31
- package/dist/dsl.js.map +1 -1
- package/dist/entity/entity.base.d.ts +4 -3
- package/dist/entity/entity.base.js +4 -4
- package/dist/entity/entity.base.js.map +1 -1
- package/dist/entity/entity.components.d.ts +16 -7
- package/dist/entity/entity.components.js +48 -23
- package/dist/entity/entity.components.js.map +1 -1
- package/dist/entity/entity.d.ts +5 -1
- package/dist/entity/entity.js +5 -0
- package/dist/entity/entity.js.map +1 -1
- package/dist/entity/entity.lifecycle.js +25 -25
- package/dist/entity/entity.lifecycle.js.map +1 -1
- package/dist/entity/entity.queries.js +0 -6
- package/dist/entity/entity.queries.js.map +1 -1
- package/dist/entity/entity.relationships.d.ts +1 -1
- package/dist/entity/entity.relationships.js +7 -5
- package/dist/entity/entity.relationships.js.map +1 -1
- package/dist/entity/index.d.ts +1 -1
- package/dist/entity/index.js.map +1 -1
- package/dist/filter.d.ts +6 -6
- package/dist/filter.js +2 -1
- package/dist/filter.js.map +1 -1
- package/dist/index.d.ts +8 -4
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/inject.d.ts +18 -17
- package/dist/inject.js +34 -34
- package/dist/inject.js.map +1 -1
- package/dist/module.d.ts +0 -2
- package/dist/module.js +0 -3
- package/dist/module.js.map +1 -1
- package/dist/modules/relationship_types.d.ts +34 -0
- package/dist/modules/relationship_types.js +36 -0
- package/dist/modules/relationship_types.js.map +1 -0
- package/dist/modules/relationships.d.ts +24 -0
- package/dist/modules/relationships.js +82 -0
- package/dist/modules/relationships.js.map +1 -0
- package/dist/modules/singleton.js +1 -2
- package/dist/modules/singleton.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/query/callbacks.d.ts +17 -0
- package/dist/query/callbacks.js +113 -0
- package/dist/query/callbacks.js.map +1 -0
- package/dist/query/constants.d.ts +1 -0
- package/dist/query/constants.js +2 -0
- package/dist/query/constants.js.map +1 -0
- package/dist/query/{query.03.tracking.d.ts → group.d.ts} +11 -9
- package/dist/query/group.js +31 -0
- package/dist/query/group.js.map +1 -0
- package/dist/query/grouped_query.d.ts +26 -0
- package/dist/query/grouped_query.js +121 -0
- package/dist/query/grouped_query.js.map +1 -0
- package/dist/query/grouped_query_registry.d.ts +4 -0
- package/dist/query/grouped_query_registry.js +11 -0
- package/dist/query/grouped_query_registry.js.map +1 -0
- package/dist/query/grouping.d.ts +24 -0
- package/dist/query/{query.07.groups.js → grouping.js} +29 -60
- package/dist/query/grouping.js.map +1 -0
- package/dist/query/index.d.ts +6 -6
- package/dist/query/index.js +6 -4
- package/dist/query/index.js.map +1 -1
- package/dist/query/query.d.ts +58 -28
- package/dist/query/query.js +327 -88
- package/dist/query/query.js.map +1 -1
- package/dist/system.d.ts +18 -34
- package/dist/system.js +33 -49
- package/dist/system.js.map +1 -1
- package/dist/terms/all_term.d.ts +2 -6
- package/dist/terms/all_term.js +2 -7
- package/dist/terms/all_term.js.map +1 -1
- package/dist/terms/any_term.d.ts +2 -6
- package/dist/terms/any_term.js +2 -7
- package/dist/terms/any_term.js.map +1 -1
- package/dist/terms/build.d.ts +9 -6
- package/dist/terms/build.js +17 -14
- package/dist/terms/build.js.map +1 -1
- package/dist/terms/component_term.d.ts +3 -3
- package/dist/terms/component_term.js.map +1 -1
- package/dist/terms/composite_build.d.ts +32 -0
- package/dist/terms/composite_build.js +28 -0
- package/dist/terms/composite_build.js.map +1 -0
- package/dist/terms/only_term.d.ts +3 -3
- package/dist/terms/only_term.js.map +1 -1
- package/dist/terms/predicate_term.d.ts +3 -3
- package/dist/terms/predicate_term.js +3 -3
- package/dist/terms/predicate_term.js.map +1 -1
- package/dist/terms/target_term.d.ts +3 -2
- package/dist/terms/target_term.js +11 -17
- package/dist/terms/target_term.js.map +1 -1
- package/dist/util/dense_set.js +1 -1
- package/dist/util/id_pool.d.ts +2 -0
- package/dist/util/id_pool.js +10 -0
- package/dist/util/id_pool.js.map +1 -1
- package/dist/util/ordered_set.js +15 -10
- package/dist/util/ordered_set.js.map +1 -1
- package/dist/world/world.components.d.ts +5 -4
- package/dist/world/world.components.js +16 -16
- package/dist/world/world.components.js.map +1 -1
- package/dist/world/world.entities.d.ts +2 -2
- package/dist/world/world.entities.js.map +1 -1
- package/dist/world/world.js +2 -4
- package/dist/world/world.js.map +1 -1
- package/dist/world/world.modules.d.ts +2 -2
- package/dist/world/world.modules.js +6 -1
- package/dist/world/world.modules.js.map +1 -1
- package/dist/world/world.pools.d.ts +2 -1
- package/dist/world/world.pools.js.map +1 -1
- package/dist/world/world.queries.d.ts +3 -5
- package/dist/world/world.queries.js +11 -8
- package/dist/world/world.queries.js.map +1 -1
- package/package.json +1 -1
- package/dist/query/query.00.base.d.ts +0 -23
- package/dist/query/query.00.base.js +0 -77
- package/dist/query/query.00.base.js.map +0 -1
- package/dist/query/query.01.reactive.d.ts +0 -7
- package/dist/query/query.01.reactive.js +0 -58
- package/dist/query/query.01.reactive.js.map +0 -1
- package/dist/query/query.02.lifecycle.d.ts +0 -6
- package/dist/query/query.02.lifecycle.js +0 -63
- package/dist/query/query.02.lifecycle.js.map +0 -1
- package/dist/query/query.03.tracking.js +0 -31
- package/dist/query/query.03.tracking.js.map +0 -1
- package/dist/query/query.04.callbacks.d.ts +0 -14
- package/dist/query/query.04.callbacks.js +0 -65
- package/dist/query/query.04.callbacks.js.map +0 -1
- package/dist/query/query.05.updates.d.ts +0 -14
- package/dist/query/query.05.updates.js +0 -81
- package/dist/query/query.05.updates.js.map +0 -1
- package/dist/query/query.06.predicate.d.ts +0 -13
- package/dist/query/query.06.predicate.js +0 -40
- package/dist/query/query.06.predicate.js.map +0 -1
- package/dist/query/query.07.groups.d.ts +0 -41
- package/dist/query/query.07.groups.js.map +0 -1
- package/dist/relationship.d.ts +0 -19
- package/dist/relationship.js +0 -18
- package/dist/relationship.js.map +0 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isQueryConfig } from "../dsl.js";
|
|
1
2
|
import { Filter } from "../filter.js";
|
|
2
3
|
import { Query } from "../query/index.js";
|
|
3
4
|
import { getCachedTerm, getTerm, notifyComponentAdded, notifyComponentChanged, notifyComponentRemoved, notifyEntityCreated, notifyEntityDestroyed, } from "../terms/build.js";
|
|
@@ -48,8 +49,10 @@ export class Queries extends Storage {
|
|
|
48
49
|
_removeUnbuiltQuery(q) {
|
|
49
50
|
this._unbuiltQueries.delete(q);
|
|
50
51
|
}
|
|
51
|
-
|
|
52
|
-
|
|
52
|
+
/** Create a non-reactive {@link Filter} that matches entities satisfying `spec`. */
|
|
53
|
+
filter(spec) {
|
|
54
|
+
const dsl = isQueryConfig(spec) ? spec.with : spec;
|
|
55
|
+
return new Filter(this, dsl);
|
|
53
56
|
}
|
|
54
57
|
/** Create and return a standalone {@link Query}, ready for fluent configuration. */
|
|
55
58
|
query(name) {
|
|
@@ -64,16 +67,16 @@ export class Queries extends Storage {
|
|
|
64
67
|
return getCachedTerm(this, q);
|
|
65
68
|
}
|
|
66
69
|
/** @internal Drive the component leaf for a newly attached component. */
|
|
67
|
-
_notifyComponentAdded(
|
|
68
|
-
notifyComponentAdded(this,
|
|
70
|
+
_notifyComponentAdded(ceid, entity) {
|
|
71
|
+
notifyComponentAdded(this, ceid, entity);
|
|
69
72
|
}
|
|
70
73
|
/** @internal Drive predicate/target refresh for changed component data. */
|
|
71
|
-
_notifyComponentChanged(
|
|
72
|
-
notifyComponentChanged(this,
|
|
74
|
+
_notifyComponentChanged(ceid, entity) {
|
|
75
|
+
notifyComponentChanged(this, ceid, entity);
|
|
73
76
|
}
|
|
74
77
|
/** @internal Drive the component leaf for a detached component. */
|
|
75
|
-
_notifyComponentRemoved(
|
|
76
|
-
notifyComponentRemoved(this,
|
|
78
|
+
_notifyComponentRemoved(ceid, entity) {
|
|
79
|
+
notifyComponentRemoved(this, ceid, entity);
|
|
77
80
|
}
|
|
78
81
|
/** @internal Drive the world leaf for a created entity. */
|
|
79
82
|
_notifyEntityCreated(entity) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world.queries.js","sourceRoot":"","sources":["../../src/world/world.queries.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"world.queries.js","sourceRoot":"","sources":["../../src/world/world.queries.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { type ComponentType } from "../component.js";
|
|
2
|
-
import { Entity } from "../entity/index.js";
|
|
3
|
-
import { type World } from "../world/index.js";
|
|
4
|
-
import { type Term } from "../terms/term.js";
|
|
5
|
-
export declare const SOURCE_TRACKED_QUERY_ERROR = "source/children is not supported in a tracked query; use world.filter(...)";
|
|
6
|
-
export declare const EMPTY_ENTITIES: ReadonlySet<Entity>;
|
|
7
|
-
export declare function _setGroupedQueryCtor(ctor: new (...args: any[]) => any): void;
|
|
8
|
-
export declare function _getGroupedQueryCtor(): new (...args: any[]) => any;
|
|
9
|
-
export declare class Base<R extends ComponentType[] = []> {
|
|
10
|
-
/** Entity that stores this query as a component and carries query traits. */
|
|
11
|
-
readonly entity: Entity;
|
|
12
|
-
/** Materialized root term that owns membership for this query. */
|
|
13
|
-
rootTerm: Term | undefined;
|
|
14
|
-
constructor(name: string, world: World, componentClass: ComponentType, track?: boolean);
|
|
15
|
-
/** `true` once this query has been registered with its world. */
|
|
16
|
-
get built(): boolean;
|
|
17
|
-
/** Unique display name; forwards to the backing entity identity. */
|
|
18
|
-
get name(): string | undefined;
|
|
19
|
-
/** World that owns this query; forwards to the backing entity. */
|
|
20
|
-
get world(): World;
|
|
21
|
-
/** Returns the query name. */
|
|
22
|
-
toString(): string;
|
|
23
|
-
}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { ArrayMap } from "../util/array_map.js";
|
|
2
|
-
import { Bitset } from "../util/bitset.js";
|
|
3
|
-
export const SOURCE_TRACKED_QUERY_ERROR = "source/children is not supported in a tracked query; use world.filter(...)";
|
|
4
|
-
export const EMPTY_ENTITIES = new Set();
|
|
5
|
-
let _GroupedQueryCtor;
|
|
6
|
-
export function _setGroupedQueryCtor(ctor) {
|
|
7
|
-
_GroupedQueryCtor = ctor;
|
|
8
|
-
}
|
|
9
|
-
export function _getGroupedQueryCtor() {
|
|
10
|
-
return _GroupedQueryCtor;
|
|
11
|
-
}
|
|
12
|
-
export class Base {
|
|
13
|
-
constructor(name, world, componentClass, track = true) {
|
|
14
|
-
/** @internal `true` once `query` or `requires` has set an explicit predicate. */
|
|
15
|
-
this._hasExplicitQuery = false;
|
|
16
|
-
/** @internal DSL predicate used to build the root membership term. */
|
|
17
|
-
this._dsl = undefined;
|
|
18
|
-
/** @internal `true` once this query has been registered with its world. */
|
|
19
|
-
this._built = false;
|
|
20
|
-
/** @internal Guards destroy hooks against recursive removal. */
|
|
21
|
-
this._destroyed = false;
|
|
22
|
-
/** @internal Whether membership APIs are enabled for this query. */
|
|
23
|
-
this._tracking = false;
|
|
24
|
-
/** @internal `enter` callback (already wraps any injection logic). */
|
|
25
|
-
this._enterCallback = undefined;
|
|
26
|
-
/** @internal `exit` callback (already wraps any injection logic). */
|
|
27
|
-
this._exitCallback = undefined;
|
|
28
|
-
/** @internal Component eids the exit callback needs snapshotted before component removal. */
|
|
29
|
-
this._exitSnapshotTypes = undefined;
|
|
30
|
-
/** @internal Per-component-eid `update` callbacks. */
|
|
31
|
-
this._componentUpdateCallbacks = new ArrayMap();
|
|
32
|
-
/** @internal Bitmask of component eids this query reacts to via `update`. */
|
|
33
|
-
this._watchlistBitmask = new Bitset();
|
|
34
|
-
this._queryComponentClass = componentClass;
|
|
35
|
-
this.entity = world.entity();
|
|
36
|
-
this.entity.name = name;
|
|
37
|
-
this.entity.attach(componentClass, this);
|
|
38
|
-
world._addUnbuiltQuery(this);
|
|
39
|
-
if (track) {
|
|
40
|
-
this.track();
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
/** @internal Throw when a builder method is called after registration. */
|
|
44
|
-
_assertConfigurable() {
|
|
45
|
-
if (this.built) {
|
|
46
|
-
throw new Error(`query '${this.name}' has already been built`);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
/** @internal Whether this object has enough configuration to enter the world. */
|
|
50
|
-
_isBuildable() {
|
|
51
|
-
return this._dsl !== undefined;
|
|
52
|
-
}
|
|
53
|
-
/** `true` once this query has been registered with its world. */
|
|
54
|
-
get built() {
|
|
55
|
-
return this._built;
|
|
56
|
-
}
|
|
57
|
-
/** Unique display name; forwards to the backing entity identity. */
|
|
58
|
-
get name() {
|
|
59
|
-
return this.entity.name;
|
|
60
|
-
}
|
|
61
|
-
/** World that owns this query; forwards to the backing entity. */
|
|
62
|
-
get world() {
|
|
63
|
-
return this.entity.world;
|
|
64
|
-
}
|
|
65
|
-
/** Returns the query name. */
|
|
66
|
-
toString() {
|
|
67
|
-
return this.name ?? "";
|
|
68
|
-
}
|
|
69
|
-
/** @internal */
|
|
70
|
-
_matchedEntities() {
|
|
71
|
-
if (!this._tracking) {
|
|
72
|
-
return EMPTY_ENTITIES;
|
|
73
|
-
}
|
|
74
|
-
return this._entities ?? this.rootTerm ?? EMPTY_ENTITIES;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
//# sourceMappingURL=query.00.base.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query.00.base.js","sourceRoot":"","sources":["../../src/query/query.00.base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAO3C,MAAM,CAAC,MAAM,0BAA0B,GACrC,4EAA4E,CAAC;AAE/E,MAAM,CAAC,MAAM,cAAc,GAAwB,IAAI,GAAG,EAAE,CAAC;AAK7D,IAAI,iBAA8C,CAAC;AACnD,MAAM,UAAU,oBAAoB,CAAC,IAAiC;IACpE,iBAAiB,GAAG,IAAI,CAAC;AAC3B,CAAC;AACD,MAAM,UAAU,oBAAoB;IAClC,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,MAAM,OAAO,IAAI;IAmCf,YAAY,IAAY,EAAE,KAAY,EAAE,cAA6B,EAAE,QAAiB,IAAI;QAhC5F,iFAAiF;QACvE,sBAAiB,GAAY,KAAK,CAAC;QAC7C,sEAAsE;QAC/D,SAAI,GAAyB,SAAS,CAAC;QAG9C,2EAA2E;QACjE,WAAM,GAAG,KAAK,CAAC;QACzB,gEAAgE;QACtD,eAAU,GAAG,KAAK,CAAC;QAC7B,oEAAoE;QAC7D,cAAS,GAAG,KAAK,CAAC;QAMzB,sEAAsE;QAC/D,mBAAc,GAA+B,SAAS,CAAC;QAC9D,qEAAqE;QAC9D,kBAAa,GAA+B,SAAS,CAAC;QAC7D,6FAA6F;QACtF,uBAAkB,GAAyB,SAAS,CAAC;QAC5D,sDAAsD;QAC5C,8BAAyB,GAAG,IAAI,QAAQ,EAAqB,CAAC;QACxE,6EAA6E;QACtE,sBAAiB,GAAW,IAAI,MAAM,EAAE,CAAC;QAO9C,IAAI,CAAC,oBAAoB,GAAG,cAAc,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QACzC,KAAK,CAAC,gBAAgB,CAAC,IAAW,CAAC,CAAC;QACpC,IAAI,KAAK,EAAE,CAAC;YACT,IAAY,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED,0EAA0E;IAChE,mBAAmB;QAC3B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,0BAA0B,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,iFAAiF;IACvE,YAAY;QACpB,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;IACjC,CAAC;IAED,iEAAiE;IACjE,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,oEAAoE;IACpE,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,kEAAkE;IAClE,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED,8BAA8B;IACvB,QAAQ;QACb,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,gBAAgB;IACN,gBAAgB;QACxB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,cAAc,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,IAAI,cAAc,CAAC;IAC3D,CAAC;CACF"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { type ComponentType } from "../component.js";
|
|
2
|
-
import { Entity } from "../entity/index.js";
|
|
3
|
-
import { TermConsumer, TermEventKind } from "../terms/term.js";
|
|
4
|
-
import { Base } from "./query.00.base.js";
|
|
5
|
-
export declare class Reactive<R extends ComponentType[] = []> extends Base<R> implements TermConsumer {
|
|
6
|
-
onTermEvent(kind: TermEventKind, entity: Entity): void;
|
|
7
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { Base } from "./query.00.base.js";
|
|
2
|
-
export class Reactive extends Base {
|
|
3
|
-
/** @internal */
|
|
4
|
-
_enter(e) {
|
|
5
|
-
this._entities?.add(e);
|
|
6
|
-
e._addQueryMembership(this);
|
|
7
|
-
this._enterCallback?.(e);
|
|
8
|
-
e.components.forEach((c, eid) => {
|
|
9
|
-
const meta = this.world.entity(eid).ownMeta;
|
|
10
|
-
if (this._watchlistBitmask.hasBit(meta.bitPtr)) {
|
|
11
|
-
this._notifyModified(e, meta, c);
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
/** @internal */
|
|
16
|
-
_exit(e) {
|
|
17
|
-
this._exitCallback?.(e);
|
|
18
|
-
this._entities?.delete(e);
|
|
19
|
-
e._removeQueryMembership(this);
|
|
20
|
-
}
|
|
21
|
-
/** @internal */
|
|
22
|
-
_notifyModified(e, meta, c) {
|
|
23
|
-
if (!this._watchlistBitmask.hasBit(meta.bitPtr)) {
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
if (this._isSourceSilenced()) {
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
const callback = this._componentUpdateCallbacks.get(meta.eid);
|
|
30
|
-
if (callback) {
|
|
31
|
-
callback(e, c);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
/** @internal */
|
|
35
|
-
_isSourceSilenced() {
|
|
36
|
-
const source = this.entity.world._routingSource;
|
|
37
|
-
return source !== undefined && this._silenceQuery?.has(source) === true;
|
|
38
|
-
}
|
|
39
|
-
onTermEvent(kind, entity) {
|
|
40
|
-
if (kind === 0 /* TermEventKind.Enter */) {
|
|
41
|
-
this._enter(entity);
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
this._exit(entity);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
/** @internal */
|
|
48
|
-
_watchesUpdates() {
|
|
49
|
-
return this._componentUpdateCallbacks.size > 0;
|
|
50
|
-
}
|
|
51
|
-
/** @internal */
|
|
52
|
-
_unsubscribeRootTerm() {
|
|
53
|
-
this._unsubscribeTerm?.();
|
|
54
|
-
this._unsubscribeTerm = undefined;
|
|
55
|
-
this.rootTerm = undefined;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=query.01.reactive.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query.01.reactive.js","sourceRoot":"","sources":["../../src/query/query.01.reactive.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C,MAAM,OAAO,QAAyC,SAAQ,IAAO;IACnE,gBAAgB;IACT,MAAM,CAAC,CAAS;QACrB,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC,CAAC,mBAAmB,CAAC,IAAW,CAAC,CAAC;QACnC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;YAC5C,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9C,IAAY,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB;IACT,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,IAAW,CAAC,CAAC;IACxC,CAAC;IAED,gBAAgB;IACT,eAAe,CAAC,CAAS,EAAE,IAAmB,EAAE,CAAoB;QACzE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAChD,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,gBAAgB;IACN,iBAAiB;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC;QAChD,OAAO,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC1E,CAAC;IAEM,WAAW,CAAC,IAAmB,EAAE,MAAc;QACpD,IAAI,IAAI,gCAAwB,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,gBAAgB;IACT,eAAe;QACpB,OAAO,IAAI,CAAC,yBAAyB,CAAC,IAAI,GAAG,CAAC,CAAC;IACjD,CAAC;IAED,gBAAgB;IACT,oBAAoB;QACzB,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC5B,CAAC;CACF"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { containsDownTerm } from "../dsl.js";
|
|
2
|
-
import { SOURCE_TRACKED_QUERY_ERROR, EMPTY_ENTITIES } from "./query.00.base.js";
|
|
3
|
-
import { Reactive } from "./query.01.reactive.js";
|
|
4
|
-
export class Lifecycle extends Reactive {
|
|
5
|
-
/** @internal */
|
|
6
|
-
_backfill() {
|
|
7
|
-
if (!this._tracking || !this.rootTerm) {
|
|
8
|
-
return;
|
|
9
|
-
}
|
|
10
|
-
this.world.defer(() => {
|
|
11
|
-
for (const e of this.rootTerm ?? EMPTY_ENTITIES) {
|
|
12
|
-
this._enter(e);
|
|
13
|
-
}
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
build() {
|
|
17
|
-
if (this.built) {
|
|
18
|
-
return this;
|
|
19
|
-
}
|
|
20
|
-
if (this.world.deferred) {
|
|
21
|
-
this.world._addUnbuiltQuery(this);
|
|
22
|
-
return this;
|
|
23
|
-
}
|
|
24
|
-
return this._build();
|
|
25
|
-
}
|
|
26
|
-
/** @internal */
|
|
27
|
-
_build() {
|
|
28
|
-
if (this.built) {
|
|
29
|
-
return this;
|
|
30
|
-
}
|
|
31
|
-
if (!this._isBuildable()) {
|
|
32
|
-
this.destroy();
|
|
33
|
-
return this;
|
|
34
|
-
}
|
|
35
|
-
this.world._removeUnbuiltQuery(this);
|
|
36
|
-
if (this._dsl !== undefined) {
|
|
37
|
-
if (this._tracking && containsDownTerm(this._dsl)) {
|
|
38
|
-
this.destroy();
|
|
39
|
-
throw new Error(SOURCE_TRACKED_QUERY_ERROR);
|
|
40
|
-
}
|
|
41
|
-
this.rootTerm = this.world.getTerm(this._dsl);
|
|
42
|
-
this._unsubscribeTerm = this.rootTerm.subscribe(this);
|
|
43
|
-
}
|
|
44
|
-
this.world._addQuery(this);
|
|
45
|
-
this._built = true;
|
|
46
|
-
this._backfill();
|
|
47
|
-
return this;
|
|
48
|
-
}
|
|
49
|
-
destroy() {
|
|
50
|
-
if (this._destroyed) {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
this._destroyed = true;
|
|
54
|
-
this.world._removeQuery(this);
|
|
55
|
-
this._entities?.clear();
|
|
56
|
-
this._entities = undefined;
|
|
57
|
-
this._tracking = false;
|
|
58
|
-
if (!this.entity._destroyed && this.entity.get(this._queryComponentClass) !== undefined) {
|
|
59
|
-
this.entity.destroy();
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=query.02.lifecycle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query.02.lifecycle.js","sourceRoot":"","sources":["../../src/query/query.02.lifecycle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,MAAM,OAAO,SAA0C,SAAQ,QAAW;IACxE,gBAAgB;IACN,SAAS;QACjB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE;YACpB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,cAAc,EAAE,CAAC;gBAC/C,IAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK;QACV,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAW,CAAC,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAQ,IAAY,CAAC,MAAM,EAAE,CAAC;IAChC,CAAC;IAED,gBAAgB;IACT,MAAM;QACX,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAW,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,SAAS,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAW,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,OAAO;QACZ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAW,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,SAAS,EAAE,CAAC;YACxF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { forEachInjected, } from "../inject.js";
|
|
2
|
-
import { Lifecycle } from "./query.02.lifecycle.js";
|
|
3
|
-
export class Tracking extends Lifecycle {
|
|
4
|
-
get count() {
|
|
5
|
-
if (!this._tracking) {
|
|
6
|
-
return 0;
|
|
7
|
-
}
|
|
8
|
-
return this._entities?.size ?? this.rootTerm?.count ?? 0;
|
|
9
|
-
}
|
|
10
|
-
has(e) {
|
|
11
|
-
if (!this._tracking) {
|
|
12
|
-
return false;
|
|
13
|
-
}
|
|
14
|
-
return this._entities?.has(e) ?? this.rootTerm?.has(e) ?? false;
|
|
15
|
-
}
|
|
16
|
-
[Symbol.iterator]() {
|
|
17
|
-
return this._matchedEntities()[Symbol.iterator]();
|
|
18
|
-
}
|
|
19
|
-
track() {
|
|
20
|
-
this._assertConfigurable();
|
|
21
|
-
this._tracking = true;
|
|
22
|
-
return this;
|
|
23
|
-
}
|
|
24
|
-
belongs(e) {
|
|
25
|
-
return this.rootTerm?.has(e) ?? false;
|
|
26
|
-
}
|
|
27
|
-
forEach(arg0, arg1, arg2) {
|
|
28
|
-
forEachInjected(this.world, this._matchedEntities(), arg0, arg1, arg2);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=query.03.tracking.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query.03.tracking.js","sourceRoot":"","sources":["../../src/query/query.03.tracking.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,GAIhB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,MAAM,OAAO,QAAyC,SAAQ,SAAY;IACxE,IAAW,KAAK;QACd,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,CAAC;IAC3D,CAAC;IAEM,GAAG,CAAC,CAAS;QAClB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;IAClE,CAAC;IAEM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtB,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACpD,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,OAAO,CAAC,CAAS;QACtB,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;IACxC,CAAC;IAiBM,OAAO,CAAC,IAAa,EAAE,IAAc,EAAE,IAAc;QAC1D,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC;CACF"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { type ComponentType } from "../component.js";
|
|
2
|
-
import { Entity } from "../entity/index.js";
|
|
3
|
-
import { Iter, type InjectTuple, type RequiredResolvedInjectTuple } from "../inject.js";
|
|
4
|
-
import { Tracking } from "./query.03.tracking.js";
|
|
5
|
-
export declare class Callbacks<R extends ComponentType[] = []> extends Tracking<R> {
|
|
6
|
-
enter<J extends InjectTuple>(inject: readonly [...J], callback: (e: Entity, injected: RequiredResolvedInjectTuple<J>) => void): this;
|
|
7
|
-
enter<J extends InjectTuple>(cursor: typeof Entity, inject: readonly [...J], callback: (e: Entity, injected: RequiredResolvedInjectTuple<J>) => void): this;
|
|
8
|
-
enter<J extends InjectTuple>(cursor: typeof Iter, inject: readonly [...J], callback: (it: Iter, injected: RequiredResolvedInjectTuple<J>) => void): this;
|
|
9
|
-
enter(callback: (e: Entity) => void): this;
|
|
10
|
-
exit<J extends InjectTuple>(inject: readonly [...J], callback: (e: Entity, injected: RequiredResolvedInjectTuple<J>) => void): this;
|
|
11
|
-
exit<J extends InjectTuple>(cursor: typeof Entity, inject: readonly [...J], callback: (e: Entity, injected: RequiredResolvedInjectTuple<J>) => void): this;
|
|
12
|
-
exit<J extends InjectTuple>(cursor: typeof Iter, inject: readonly [...J], callback: (it: Iter, injected: RequiredResolvedInjectTuple<J>) => void): this;
|
|
13
|
-
exit(callback: (e: Entity) => void): this;
|
|
14
|
-
}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { directInjectEids, getInjected, getInjectedWithSrc, injectArity, isCursorMarker, Iter, mapInject, wantsIter, } from "../inject.js";
|
|
2
|
-
import { Tracking } from "./query.03.tracking.js";
|
|
3
|
-
export class Callbacks extends Tracking {
|
|
4
|
-
enter(arg0, arg1, arg2) {
|
|
5
|
-
this._assertConfigurable();
|
|
6
|
-
if (typeof arg0 === "function" && !isCursorMarker(arg0)) {
|
|
7
|
-
this._enterCallback = arg0;
|
|
8
|
-
return this;
|
|
9
|
-
}
|
|
10
|
-
const useIter = wantsIter(arg0);
|
|
11
|
-
const components = (isCursorMarker(arg0) ? arg1 : arg0);
|
|
12
|
-
const cb = (isCursorMarker(arg0) ? arg2 : arg1);
|
|
13
|
-
const inject = mapInject(this.world, components);
|
|
14
|
-
const arity = injectArity(inject);
|
|
15
|
-
if (useIter) {
|
|
16
|
-
this._enterCallback = (e) => {
|
|
17
|
-
const injected = new Array(arity);
|
|
18
|
-
const it = new Iter(arity);
|
|
19
|
-
it.entity = e;
|
|
20
|
-
getInjectedWithSrc(e, inject, injected, it.src, true);
|
|
21
|
-
cb(it, injected);
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
this._enterCallback = (e) => {
|
|
26
|
-
const injected = new Array(arity);
|
|
27
|
-
getInjected(e, inject, true, injected);
|
|
28
|
-
cb(e, injected);
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
return this;
|
|
32
|
-
}
|
|
33
|
-
exit(arg0, arg1, arg2) {
|
|
34
|
-
this._assertConfigurable();
|
|
35
|
-
if (typeof arg0 === "function" && !isCursorMarker(arg0)) {
|
|
36
|
-
this._exitCallback = arg0;
|
|
37
|
-
this._exitSnapshotTypes = undefined;
|
|
38
|
-
return this;
|
|
39
|
-
}
|
|
40
|
-
const useIter = wantsIter(arg0);
|
|
41
|
-
const components = (isCursorMarker(arg0) ? arg1 : arg0);
|
|
42
|
-
const cb = (isCursorMarker(arg0) ? arg2 : arg1);
|
|
43
|
-
const inject = mapInject(this.world, components);
|
|
44
|
-
this._exitSnapshotTypes = directInjectEids(inject);
|
|
45
|
-
const arity = injectArity(inject);
|
|
46
|
-
if (useIter) {
|
|
47
|
-
this._exitCallback = (e, exitSnapshot) => {
|
|
48
|
-
const injected = new Array(arity);
|
|
49
|
-
const it = new Iter(arity);
|
|
50
|
-
it.entity = e;
|
|
51
|
-
getInjectedWithSrc(e, inject, injected, it.src, true, exitSnapshot);
|
|
52
|
-
cb(it, injected);
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
this._exitCallback = (e, exitSnapshot) => {
|
|
57
|
-
const injected = new Array(arity);
|
|
58
|
-
getInjected(e, inject, true, injected, exitSnapshot);
|
|
59
|
-
cb(e, injected);
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
return this;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
//# sourceMappingURL=query.04.callbacks.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query.04.callbacks.js","sourceRoot":"","sources":["../../src/query/query.04.callbacks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { type ComponentType } from "../component.js";
|
|
2
|
-
import { Entity } from "../entity/index.js";
|
|
3
|
-
import { Iter, type InjectTuple, type MaybeResolvedInjectTuple } from "../inject.js";
|
|
4
|
-
import { Callbacks } from "./query.04.callbacks.js";
|
|
5
|
-
export declare class Updates<R extends ComponentType[] = []> extends Callbacks<R> {
|
|
6
|
-
update<C extends ComponentType>(ComponentClass: C, callback: (e: Entity, c: InstanceType<C>) => void): this;
|
|
7
|
-
update<C extends ComponentType, J extends InjectTuple>(ComponentClass: C, inject: readonly [...J], callback: (e: Entity, c: InstanceType<C>, injected: MaybeResolvedInjectTuple<J, R>) => void): this;
|
|
8
|
-
update<C extends ComponentType, J extends InjectTuple>(cursor: typeof Entity, ComponentClass: C, inject: readonly [...J], callback: (e: Entity, c: InstanceType<C>, injected: MaybeResolvedInjectTuple<J, R>) => void): this;
|
|
9
|
-
update<C extends ComponentType>(cursor: typeof Entity, ComponentClass: C, callback: (e: Entity, c: InstanceType<C>) => void): this;
|
|
10
|
-
update<C extends ComponentType, J extends InjectTuple>(cursor: typeof Iter, ComponentClass: C, inject: readonly [...J], callback: (it: Iter, c: InstanceType<C>, injected: MaybeResolvedInjectTuple<J, R>) => void): this;
|
|
11
|
-
sort<J extends InjectTuple>(components: readonly [...J], compare: (entityA: Entity, a: MaybeResolvedInjectTuple<J, R>, entityB: Entity, b: MaybeResolvedInjectTuple<J, R>) => number): this;
|
|
12
|
-
sort<J extends InjectTuple>(cursor: typeof Entity, components: readonly [...J], compare: (entityA: Entity, a: MaybeResolvedInjectTuple<J, R>, entityB: Entity, b: MaybeResolvedInjectTuple<J, R>) => number): this;
|
|
13
|
-
sort<J extends InjectTuple>(cursor: typeof Iter, components: readonly [...J], compare: (a: Iter, aResolved: MaybeResolvedInjectTuple<J, R>, b: Iter, bResolved: MaybeResolvedInjectTuple<J, R>) => number): this;
|
|
14
|
-
}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { OrderedSet } from "../util/ordered_set.js";
|
|
2
|
-
import { getInjected, getInjectedWithSrc, injectArity, isCursorMarker, Iter, mapInject, wantsIter, } from "../inject.js";
|
|
3
|
-
import { Callbacks } from "./query.04.callbacks.js";
|
|
4
|
-
export class Updates extends Callbacks {
|
|
5
|
-
update(arg0, arg1, arg2, arg3) {
|
|
6
|
-
this._assertConfigurable();
|
|
7
|
-
const useIter = wantsIter(arg0);
|
|
8
|
-
if (isCursorMarker(arg0)) {
|
|
9
|
-
arg0 = arg1;
|
|
10
|
-
arg1 = arg2;
|
|
11
|
-
arg2 = arg3;
|
|
12
|
-
}
|
|
13
|
-
const ComponentClass = arg0;
|
|
14
|
-
const componentEid = this.world.entity(ComponentClass).eid;
|
|
15
|
-
if (typeof arg1 === "function") {
|
|
16
|
-
const callback = arg1;
|
|
17
|
-
this._componentUpdateCallbacks.set(componentEid, callback);
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
const components = arg1;
|
|
21
|
-
const callback = arg2;
|
|
22
|
-
const inject = mapInject(this.world, components);
|
|
23
|
-
const arity = injectArity(inject);
|
|
24
|
-
const injected = new Array(arity);
|
|
25
|
-
if (useIter) {
|
|
26
|
-
const it = new Iter(arity);
|
|
27
|
-
const cb = (e, c) => {
|
|
28
|
-
it.entity = e;
|
|
29
|
-
getInjectedWithSrc(e, inject, injected, it.src);
|
|
30
|
-
callback(it, c, injected);
|
|
31
|
-
};
|
|
32
|
-
this._componentUpdateCallbacks.set(componentEid, cb);
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
const cb = (e, c) => {
|
|
36
|
-
getInjected(e, inject, false, injected);
|
|
37
|
-
callback(e, c, injected);
|
|
38
|
-
};
|
|
39
|
-
this._componentUpdateCallbacks.set(componentEid, cb);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
this._watchlistBitmask.add(componentEid);
|
|
43
|
-
if (!this._hasExplicitQuery) {
|
|
44
|
-
this._dsl = this._watchlistBitmask.indices();
|
|
45
|
-
}
|
|
46
|
-
return this;
|
|
47
|
-
}
|
|
48
|
-
sort(arg0, arg1, arg2) {
|
|
49
|
-
this._assertConfigurable();
|
|
50
|
-
const useIter = wantsIter(arg0);
|
|
51
|
-
const components = (isCursorMarker(arg0) ? arg1 : arg0);
|
|
52
|
-
const cb = (isCursorMarker(arg0) ? arg2 : arg1);
|
|
53
|
-
const inject = mapInject(this.world, components);
|
|
54
|
-
const arity = injectArity(inject);
|
|
55
|
-
this._tracking = true;
|
|
56
|
-
if (useIter) {
|
|
57
|
-
const itA = new Iter(arity);
|
|
58
|
-
const itB = new Iter(arity);
|
|
59
|
-
const resolvedA = new Array(arity);
|
|
60
|
-
const resolvedB = new Array(arity);
|
|
61
|
-
this._entities = new OrderedSet((a, b) => {
|
|
62
|
-
itA.entity = a;
|
|
63
|
-
itB.entity = b;
|
|
64
|
-
getInjectedWithSrc(a, inject, resolvedA, itA.src);
|
|
65
|
-
getInjectedWithSrc(b, inject, resolvedB, itB.src);
|
|
66
|
-
return cb(itA, resolvedA, itB, resolvedB);
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
const resolvedA = new Array(arity);
|
|
71
|
-
const resolvedB = new Array(arity);
|
|
72
|
-
this._entities = new OrderedSet((a, b) => {
|
|
73
|
-
getInjected(a, inject, false, resolvedA);
|
|
74
|
-
getInjected(b, inject, false, resolvedB);
|
|
75
|
-
return cb(a, resolvedA, b, resolvedB);
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
return this;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
//# sourceMappingURL=query.05.updates.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query.05.updates.js","sourceRoot":"","sources":["../../src/query/query.05.updates.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { type ComponentType } from "../component.js";
|
|
2
|
-
import { type QueryDSL } from "../dsl.js";
|
|
3
|
-
import { Entity } from "../entity/index.js";
|
|
4
|
-
import { type FanInjectTuple, type MaybeResolvedInjectTuple } from "../inject.js";
|
|
5
|
-
import { Updates } from "./query.05.updates.js";
|
|
6
|
-
export declare class Predicate<R extends ComponentType[] = []> extends Updates<R> {
|
|
7
|
-
query<T extends ComponentType[] = []>(q: QueryDSL, _guaranteed?: readonly [...T]): any;
|
|
8
|
-
requires<T extends ComponentType[]>(...components: [...T]): any;
|
|
9
|
-
ignoreSource(source: QueryDSL | any): this;
|
|
10
|
-
private _buildSilenceQuery;
|
|
11
|
-
groupBy<K, J extends FanInjectTuple>(components: readonly [...J], key: (e: Entity, resolved: MaybeResolvedInjectTuple<J, R>) => K): any;
|
|
12
|
-
groupBy(relationship: import("../component.js").ComponentRef): any;
|
|
13
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { ChildOf, SilenceSource } from "../relationship.js";
|
|
2
|
-
import { _getGroupedQueryCtor } from "./query.00.base.js";
|
|
3
|
-
import { Updates } from "./query.05.updates.js";
|
|
4
|
-
export class Predicate extends Updates {
|
|
5
|
-
query(q, _guaranteed) {
|
|
6
|
-
this._assertConfigurable();
|
|
7
|
-
this._dsl = q;
|
|
8
|
-
this._hasExplicitQuery = true;
|
|
9
|
-
return this;
|
|
10
|
-
}
|
|
11
|
-
requires(...components) {
|
|
12
|
-
this.query(components);
|
|
13
|
-
return this;
|
|
14
|
-
}
|
|
15
|
-
ignoreSource(source) {
|
|
16
|
-
this._assertConfigurable();
|
|
17
|
-
const query = typeof source === "object" && !Array.isArray(source) && "entity" in source
|
|
18
|
-
? source
|
|
19
|
-
: this._buildSilenceQuery(source);
|
|
20
|
-
this.entity.set(SilenceSource, { target: query.entity });
|
|
21
|
-
this._silenceQuery = query;
|
|
22
|
-
return this;
|
|
23
|
-
}
|
|
24
|
-
_buildSilenceQuery(dsl) {
|
|
25
|
-
const q = this.world.query(`${this.name}:silence`).query(dsl);
|
|
26
|
-
q.entity.set(ChildOf, { target: this.entity });
|
|
27
|
-
return q;
|
|
28
|
-
}
|
|
29
|
-
/** @internal */
|
|
30
|
-
_clearSilence() {
|
|
31
|
-
this._silenceQuery = undefined;
|
|
32
|
-
}
|
|
33
|
-
groupBy(arg0, arg1) {
|
|
34
|
-
this._assertConfigurable();
|
|
35
|
-
const ctor = _getGroupedQueryCtor();
|
|
36
|
-
Object.setPrototypeOf(this, ctor.prototype);
|
|
37
|
-
return this._initialize(arg0, arg1);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=query.06.predicate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query.06.predicate.js","sourceRoot":"","sources":["../../src/query/query.06.predicate.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,MAAM,OAAO,SAA0C,SAAQ,OAAU;IAChE,KAAK,CAAiC,CAAW,EAAE,WAA6B;QACrF,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,QAAQ,CAA4B,GAAG,UAAkB;QAC9D,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,YAAY,CAAC,MAAsB;QACxC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,MAAM,KAAK,GACT,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,QAAQ,IAAI,MAAM;YACxE,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,kBAAkB,CAAC,GAAa;QACtC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9D,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC;IACX,CAAC;IAED,gBAAgB;IACT,aAAa;QAClB,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;IACjC,CAAC;IAOM,OAAO,CACZ,IAA0E,EAC1E,IAAwC;QAExC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,oBAAoB,EAAE,CAAC;QACpC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAQ,IAAY,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;CACF"}
|