@vworlds/vecs 1.0.45 → 1.0.47

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.
Files changed (136) hide show
  1. package/README.md +7 -1
  2. package/dist/component.d.ts +57 -60
  3. package/dist/component.js +24 -17
  4. package/dist/component.js.map +1 -1
  5. package/dist/component_meta.d.ts +67 -79
  6. package/dist/component_meta.js +331 -37
  7. package/dist/component_meta.js.map +1 -1
  8. package/dist/dsl.js +1 -1
  9. package/dist/dsl.js.map +1 -1
  10. package/dist/entity/entity.base.js +4 -0
  11. package/dist/entity/entity.base.js.map +1 -1
  12. package/dist/entity/entity.components.d.ts +39 -41
  13. package/dist/entity/entity.components.js +249 -82
  14. package/dist/entity/entity.components.js.map +1 -1
  15. package/dist/entity/entity.d.ts +1 -2
  16. package/dist/entity/entity.js +2 -3
  17. package/dist/entity/entity.js.map +1 -1
  18. package/dist/entity/entity.lifecycle.d.ts +7 -1
  19. package/dist/entity/entity.lifecycle.js +40 -50
  20. package/dist/entity/entity.lifecycle.js.map +1 -1
  21. package/dist/entity/entity.queries.js +30 -0
  22. package/dist/entity/entity.queries.js.map +1 -1
  23. package/dist/entity/entity.relationships.d.ts +4 -0
  24. package/dist/entity/entity.relationships.js +18 -10
  25. package/dist/entity/entity.relationships.js.map +1 -1
  26. package/dist/index.d.ts +7 -4
  27. package/dist/index.js +4 -2
  28. package/dist/index.js.map +1 -1
  29. package/dist/inject.d.ts +63 -14
  30. package/dist/inject.js +165 -89
  31. package/dist/inject.js.map +1 -1
  32. package/dist/modules/identity.js +2 -2
  33. package/dist/modules/identity.js.map +1 -1
  34. package/dist/modules/implements.js +2 -2
  35. package/dist/modules/implements.js.map +1 -1
  36. package/dist/modules/pipeline.js +5 -5
  37. package/dist/modules/pipeline.js.map +1 -1
  38. package/dist/modules/relationship_types.d.ts +70 -6
  39. package/dist/modules/relationship_types.js +70 -6
  40. package/dist/modules/relationship_types.js.map +1 -1
  41. package/dist/modules/relationships.d.ts +31 -9
  42. package/dist/modules/relationships.js +120 -44
  43. package/dist/modules/relationships.js.map +1 -1
  44. package/dist/modules/singleton.js +2 -2
  45. package/dist/modules/singleton.js.map +1 -1
  46. package/dist/modules/snapshot.d.ts +26 -0
  47. package/dist/modules/snapshot.js +45 -0
  48. package/dist/modules/snapshot.js.map +1 -0
  49. package/dist/modules/snapshot_types.d.ts +85 -0
  50. package/dist/modules/snapshot_types.js +130 -0
  51. package/dist/modules/snapshot_types.js.map +1 -0
  52. package/dist/package.json +2 -2
  53. package/dist/query/callbacks.d.ts +9 -7
  54. package/dist/query/callbacks.js +27 -41
  55. package/dist/query/callbacks.js.map +1 -1
  56. package/dist/query/grouped_query.js +7 -7
  57. package/dist/query/grouped_query.js.map +1 -1
  58. package/dist/query/grouping.d.ts +6 -2
  59. package/dist/query/grouping.js +84 -15
  60. package/dist/query/grouping.js.map +1 -1
  61. package/dist/query/query.d.ts +4 -4
  62. package/dist/query/query.js +37 -14
  63. package/dist/query/query.js.map +1 -1
  64. package/dist/snapshot/capture.d.ts +1 -0
  65. package/dist/snapshot/capture.js +212 -0
  66. package/dist/snapshot/capture.js.map +1 -0
  67. package/dist/snapshot/clone.d.ts +1 -0
  68. package/dist/snapshot/clone.js +107 -0
  69. package/dist/snapshot/clone.js.map +1 -0
  70. package/dist/snapshot/index.d.ts +5 -0
  71. package/dist/snapshot/index.js +21 -0
  72. package/dist/snapshot/index.js.map +1 -0
  73. package/dist/snapshot/preflight.d.ts +1 -0
  74. package/dist/snapshot/preflight.js +40 -0
  75. package/dist/snapshot/preflight.js.map +1 -0
  76. package/dist/snapshot/restore.d.ts +1 -0
  77. package/dist/snapshot/restore.js +111 -0
  78. package/dist/snapshot/restore.js.map +1 -0
  79. package/dist/snapshot/types.d.ts +135 -0
  80. package/dist/snapshot/types.js +26 -0
  81. package/dist/snapshot/types.js.map +1 -0
  82. package/dist/system.d.ts +3 -1
  83. package/dist/system.js +33 -23
  84. package/dist/system.js.map +1 -1
  85. package/dist/terms/all_term.js +19 -0
  86. package/dist/terms/all_term.js.map +1 -1
  87. package/dist/terms/any_term.js +19 -0
  88. package/dist/terms/any_term.js.map +1 -1
  89. package/dist/terms/not_term.js +4 -0
  90. package/dist/terms/not_term.js.map +1 -1
  91. package/dist/terms/target_term.d.ts +1 -2
  92. package/dist/terms/target_term.js +2 -4
  93. package/dist/terms/target_term.js.map +1 -1
  94. package/dist/terms/term.d.ts +2 -0
  95. package/dist/terms/term.js +59 -10
  96. package/dist/terms/term.js.map +1 -1
  97. package/dist/util/array_map.d.ts +43 -12
  98. package/dist/util/array_map.js +90 -41
  99. package/dist/util/array_map.js.map +1 -1
  100. package/dist/util/dense_set.js +26 -0
  101. package/dist/util/dense_set.js.map +1 -1
  102. package/dist/world/world.base.js +12 -0
  103. package/dist/world/world.base.js.map +1 -1
  104. package/dist/world/world.d.ts +7 -0
  105. package/dist/world/world.deferred.js +17 -0
  106. package/dist/world/world.deferred.js.map +1 -1
  107. package/dist/world/world.entities.d.ts +13 -2
  108. package/dist/world/world.entities.js +16 -2
  109. package/dist/world/world.entities.js.map +1 -1
  110. package/dist/world/world.js +15 -3
  111. package/dist/world/world.js.map +1 -1
  112. package/dist/world/world.pipeline.d.ts +2 -2
  113. package/dist/world/world.pipeline.js +4 -2
  114. package/dist/world/world.pipeline.js.map +1 -1
  115. package/dist/world/world.queries.d.ts +7 -0
  116. package/dist/world/world.queries.js +52 -0
  117. package/dist/world/world.queries.js.map +1 -1
  118. package/dist/world/world.transfers.d.ts +137 -0
  119. package/dist/world/world.transfers.js +188 -0
  120. package/dist/world/world.transfers.js.map +1 -0
  121. package/docs/README.md +18 -6
  122. package/docs/components.md +90 -53
  123. package/docs/concepts.md +21 -17
  124. package/docs/design-guide.md +125 -94
  125. package/docs/entities.md +62 -76
  126. package/docs/execution-model.md +26 -10
  127. package/docs/getting-started.md +6 -6
  128. package/docs/glossary.md +19 -10
  129. package/docs/modules.md +8 -8
  130. package/docs/queries-and-filters.md +15 -10
  131. package/docs/relationships.md +245 -124
  132. package/docs/snapshots.md +181 -0
  133. package/docs/systems.md +64 -21
  134. package/docs/utilities.md +10 -6
  135. package/package.json +2 -2
  136. package/skills/vecs/SKILL.md +5 -4
package/dist/inject.js CHANGED
@@ -1,17 +1,51 @@
1
+ import { Entity } from "./entity/index.js";
1
2
  import { _resolveRelationship } from "./dsl.js";
3
+ // EID 0 is reserved, keeping target projection arrays numeric and SMI-friendly.
4
+ const TARGET_ENTITY = 0;
2
5
  function _isTargetInject(value) {
3
6
  return typeof value === "object" && value !== null && "target" in value;
4
7
  }
8
+ function _isTargetsInject(value) {
9
+ return typeof value === "object" && value !== null && "targets" in value;
10
+ }
5
11
  function _isDownInject(value) {
6
12
  return typeof value === "object" && value !== null && "down" in value;
7
13
  }
14
+ function _isTargetProjectionArray(value) {
15
+ return Array.isArray(value);
16
+ }
17
+ function _resolveTargetProjection(target, projection) {
18
+ if (projection === TARGET_ENTITY) {
19
+ return target;
20
+ }
21
+ return target?.has(projection) ? target._get(projection) : undefined;
22
+ }
23
+ function _resolveTargetsProjection(targets, projections) {
24
+ return targets.map((target) => projections.map((projection) => _resolveTargetProjection(target, projection)));
25
+ }
8
26
  export function mapInject(world, inject) {
9
27
  return inject.map((term) => {
10
28
  if (_isTargetInject(term)) {
29
+ const projection = term.target[1];
30
+ const projections = _isTargetProjectionArray(projection)
31
+ ? projection
32
+ : [projection];
11
33
  return {
12
34
  target: [
13
35
  _resolveRelationship(term.target[0], world),
14
- term.target[1].map((C) => world.entity(C).eid),
36
+ projections.map((C) => (C === Entity ? TARGET_ENTITY : world.entity(C).eid)),
37
+ ],
38
+ };
39
+ }
40
+ if (_isTargetsInject(term)) {
41
+ const projection = term.targets[1];
42
+ const projections = _isTargetProjectionArray(projection)
43
+ ? projection
44
+ : [projection];
45
+ return {
46
+ targets: [
47
+ _resolveRelationship(term.targets[0], world),
48
+ projections.map((C) => (C === Entity ? TARGET_ENTITY : world.entity(C).eid)),
15
49
  ],
16
50
  };
17
51
  }
@@ -30,73 +64,99 @@ export function injectArity(inject) {
30
64
  let arity = 0;
31
65
  inject.forEach((term) => {
32
66
  arity +=
33
- typeof term === "number" ? 1 : "target" in term ? term.target[1].length : term.down[1].length;
67
+ typeof term === "number"
68
+ ? 1
69
+ : "target" in term
70
+ ? term.target[1].length
71
+ : "targets" in term
72
+ ? 1
73
+ : term.down[1].length;
34
74
  });
35
75
  return arity;
36
76
  }
37
- export function getInjected(e, inject, requireDirectComponents, out, snapshot) {
38
- let outIndex = 0;
39
- inject.forEach((term, termIndex) => {
40
- if (typeof term === "number") {
41
- const c = snapshot?.[termIndex] ?? e._get(term);
42
- if (requireDirectComponents && !c) {
43
- throw new Error("query does not contain component");
44
- }
45
- out[outIndex++] = c;
46
- return;
47
- }
48
- if ("down" in term) {
49
- throw new Error("down injection is only supported in each/forEach");
50
- }
51
- const targetEntity = e.has(term.target[0])
52
- ? e._get(term.target[0])?.target
53
- : undefined;
54
- term.target[1].forEach((componentEid) => {
55
- out[outIndex++] = targetEntity?.has(componentEid)
56
- ? targetEntity._get(componentEid)
57
- : undefined;
58
- });
59
- });
77
+ export function getInjected(e, inject, requireDirectComponents, out) {
78
+ _resolveInjected(e, inject, out, undefined, requireDirectComponents, false);
79
+ }
80
+ export function getInjectedWithSrc(e, inject, out, src, requireDirectComponents = false) {
81
+ _resolveInjected(e, inject, out, src, requireDirectComponents, false);
60
82
  }
61
- export function getInjectedWithSrc(e, inject, out, src, requireDirectComponents = false, exitSnapshot) {
83
+ /**
84
+ * Core live-injection resolver shared by every resolution path.
85
+ *
86
+ * Writes one resolved value per tuple slot into `out` and, when `src` is
87
+ * given, the entity (or target array) each value was read from. `down` terms
88
+ * throw unless `skipDown` is set, in which case their slots are skipped for
89
+ * `fillDownInject` to populate per child.
90
+ */
91
+ function _resolveInjected(e, inject, out, src, requireDirectComponents, skipDown) {
62
92
  let outIndex = 0;
63
- inject.forEach((term, termIndex) => {
93
+ for (const term of inject) {
64
94
  if (typeof term === "number") {
65
- const c = exitSnapshot?.[termIndex] ?? e._get(term);
95
+ const c = e._get(term);
66
96
  if (requireDirectComponents && !c) {
67
97
  throw new Error("query does not contain component");
68
98
  }
69
99
  out[outIndex] = c;
70
- src[outIndex] = e;
100
+ if (src !== undefined) {
101
+ src[outIndex] = e;
102
+ }
71
103
  outIndex++;
72
- return;
104
+ continue;
73
105
  }
74
106
  if ("down" in term) {
75
- throw new Error("down injection is only supported in each/forEach");
107
+ if (!skipDown) {
108
+ throw new Error("down injection is only supported in each/forEach");
109
+ }
110
+ outIndex += term.down[1].length;
111
+ continue;
76
112
  }
77
- const targetEntity = e.has(term.target[0])
78
- ? e._get(term.target[0])?.target
79
- : undefined;
80
- term.target[1].forEach((componentEid) => {
81
- out[outIndex] = targetEntity?.has(componentEid) ? targetEntity._get(componentEid) : undefined;
82
- src[outIndex] = targetEntity;
113
+ if ("targets" in term) {
114
+ const targets = e.targets(term.targets[0]);
115
+ out[outIndex] = _resolveTargetsProjection(targets, term.targets[1]);
116
+ if (src !== undefined) {
117
+ src[outIndex] = targets;
118
+ }
83
119
  outIndex++;
84
- });
85
- });
120
+ continue;
121
+ }
122
+ const targetEntity = e.target(term.target[0]);
123
+ for (const projection of term.target[1]) {
124
+ out[outIndex] = _resolveTargetProjection(targetEntity, projection);
125
+ if (src !== undefined) {
126
+ src[outIndex] = targetEntity;
127
+ }
128
+ outIndex++;
129
+ }
130
+ }
86
131
  }
87
- export function directInjectEids(inject) {
88
- return inject.filter((term) => typeof term === "number");
132
+ /** Capture a detached injection tuple and its source tuple for deferred callback replay. */
133
+ export function snapshotInjected(e, inject, arity) {
134
+ const values = new Array(arity);
135
+ const src = new Array(arity);
136
+ _snapshotInjectedRaw(e, inject, values, src);
137
+ return { values, src };
89
138
  }
90
- export function directInjectSnapshotTypes(inject) {
91
- let hasDirectInject = false;
92
- const snapshotTypes = inject.map((term) => {
93
- if (typeof term === "number") {
94
- hasDirectInject = true;
95
- return term;
96
- }
97
- return undefined;
98
- });
99
- return hasDirectInject ? snapshotTypes : undefined;
139
+ export function replayInjectedSnapshot(inject, snapshot, requireDirectComponents, out) {
140
+ _validateRequiredDirectInjects(inject, snapshot.values, requireDirectComponents);
141
+ _copySnapshot(snapshot.values, out);
142
+ }
143
+ export function replayInjectedSnapshotWithSrc(inject, snapshot, requireDirectComponents, out, src) {
144
+ replayInjectedSnapshot(inject, snapshot, requireDirectComponents, out);
145
+ _copySnapshot(snapshot.src, src);
146
+ }
147
+ /**
148
+ * Component eids whose changes can alter a resolved tuple: directly injected
149
+ * component eids plus the relationship eid of every `target` / `targets` term.
150
+ * Callers watch these to re-sort or re-key when a tuple input changes.
151
+ */
152
+ export function injectWatchEids(inject) {
153
+ return inject.flatMap((term) => typeof term === "number"
154
+ ? [term]
155
+ : "target" in term
156
+ ? [term.target[0]]
157
+ : "targets" in term
158
+ ? [term.targets[0]]
159
+ : []);
100
160
  }
101
161
  /**
102
162
  * Per-iteration cursor passed to `each` / `forEach` / `enter` / `exit` /
@@ -177,7 +237,7 @@ export function makeInjectedInvoker(world, components, useIter, callback) {
177
237
  return;
178
238
  }
179
239
  it.entity = e;
180
- getInjectedWithSrcSkippingDown(e, inject, resolved, it.src);
240
+ _resolveInjected(e, inject, resolved, it.src, false, true);
181
241
  children.forEach((child) => {
182
242
  fillDownInject(child, down.componentEids, down.slot, resolved, it.src);
183
243
  callback(it, resolved);
@@ -189,7 +249,7 @@ export function makeInjectedInvoker(world, components, useIter, callback) {
189
249
  if (children === undefined) {
190
250
  return;
191
251
  }
192
- getInjectedSkippingDown(e, inject, resolved);
252
+ _resolveInjected(e, inject, resolved, undefined, false, true);
193
253
  children.forEach((child) => {
194
254
  fillDownInject(child, down.componentEids, down.slot, resolved);
195
255
  callback(e, resolved);
@@ -221,6 +281,10 @@ function _findSingleDownInject(inject) {
221
281
  slot += term.target[1].length;
222
282
  return;
223
283
  }
284
+ if ("targets" in term) {
285
+ slot++;
286
+ return;
287
+ }
224
288
  if (found !== undefined) {
225
289
  throw new Error("Only one down injection is supported per tuple");
226
290
  }
@@ -238,48 +302,60 @@ function fillDownInject(child, componentEids, slot, out, src) {
238
302
  }
239
303
  });
240
304
  }
241
- function getInjectedSkippingDown(e, inject, out) {
242
- let outIndex = 0;
243
- inject.forEach((term) => {
305
+ function _copySnapshot(snapshot, out) {
306
+ for (let index = 0; index < snapshot.length; index++) {
307
+ out[index] = snapshot[index];
308
+ }
309
+ }
310
+ function _validateRequiredDirectInjects(inject, values, required) {
311
+ if (!required) {
312
+ return;
313
+ }
314
+ let valueIndex = 0;
315
+ for (const term of inject) {
244
316
  if (typeof term === "number") {
245
- out[outIndex++] = e._get(term);
246
- return;
317
+ if (!values[valueIndex]) {
318
+ throw new Error("query does not contain component");
319
+ }
320
+ valueIndex++;
247
321
  }
248
- if ("down" in term) {
249
- outIndex += term.down[1].length;
250
- return;
322
+ else if ("target" in term) {
323
+ valueIndex += term.target[1].length;
251
324
  }
252
- const targetEntity = e.has(term.target[0])
253
- ? e._get(term.target[0])?.target
254
- : undefined;
255
- term.target[1].forEach((componentEid) => {
256
- out[outIndex++] = targetEntity?.has(componentEid)
257
- ? targetEntity._get(componentEid)
258
- : undefined;
259
- });
260
- });
325
+ else if ("targets" in term) {
326
+ valueIndex++;
327
+ }
328
+ else {
329
+ valueIndex += term.down[1].length;
330
+ }
331
+ }
261
332
  }
262
- function getInjectedWithSrcSkippingDown(e, inject, out, src) {
263
- let outIndex = 0;
264
- inject.forEach((term) => {
333
+ function _snapshotInjectedRaw(e, inject, values, src) {
334
+ let valueIndex = 0;
335
+ for (const term of inject) {
265
336
  if (typeof term === "number") {
266
- out[outIndex] = e._get(term);
267
- src[outIndex] = e;
268
- outIndex++;
269
- return;
337
+ values[valueIndex] = e._get(term);
338
+ src[valueIndex] = e;
339
+ valueIndex++;
340
+ continue;
270
341
  }
271
- if ("down" in term) {
272
- outIndex += term.down[1].length;
273
- return;
342
+ if ("target" in term) {
343
+ const target = e._get(term.target[0])?._target();
344
+ for (const projection of term.target[1]) {
345
+ values[valueIndex] = projection === TARGET_ENTITY ? target : target?._get(projection);
346
+ src[valueIndex] = target;
347
+ valueIndex++;
348
+ }
349
+ continue;
274
350
  }
275
- const targetEntity = e.has(term.target[0])
276
- ? e._get(term.target[0])?.target
277
- : undefined;
278
- term.target[1].forEach((componentEid) => {
279
- out[outIndex] = targetEntity?.has(componentEid) ? targetEntity._get(componentEid) : undefined;
280
- src[outIndex] = targetEntity;
281
- outIndex++;
282
- });
283
- });
351
+ if ("targets" in term) {
352
+ const targets = e._get(term.targets[0])?._targetArray() ?? [];
353
+ values[valueIndex] = targets.map((target) => term.targets[1].map((projection) => projection === TARGET_ENTITY ? target : target._get(projection)));
354
+ src[valueIndex] = targets;
355
+ valueIndex++;
356
+ continue;
357
+ }
358
+ throw new Error("down injection is only supported in each/forEach");
359
+ }
284
360
  }
285
361
  //# sourceMappingURL=inject.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inject.js","sourceRoot":"","sources":["../src/inject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inject.js","sourceRoot":"","sources":["../src/inject.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAY,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,oBAAoB,EAAsB,MAAM,UAAU,CAAC;AAEpE,gFAAgF;AAChF,MAAM,aAAa,GAAG,CAAC,CAAC;AAiHxB,SAAS,eAAe,CAAC,KAAuB;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,QAAQ,IAAI,KAAK,CAAC;AAC1E,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAuB;IAC/C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,SAAS,IAAI,KAAK,CAAC;AAC3E,CAAC;AAED,SAAS,aAAa,CAAC,KAAuB;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,CAAC;AACxE,CAAC;AAED,SAAS,wBAAwB,CAC/B,KAAiE;IAEjE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,wBAAwB,CAC/B,MAA0B,EAC1B,UAAe;IAEf,IAAI,UAAU,KAAK,aAAa,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACvE,CAAC;AAED,SAAS,yBAAyB,CAAC,OAA0B,EAAE,WAA2B;IACxF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC5B,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,wBAAwB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAC9E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAY,EAAE,MAAmC;IACzE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACzB,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,WAAW,GAAsC,wBAAwB,CAAC,UAAU,CAAC;gBACzF,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACjB,OAAO;gBACL,MAAM,EAAE;oBACN,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;oBAC3C,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;iBAC7E;aACF,CAAC;QACJ,CAAC;QACD,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,WAAW,GAAsC,wBAAwB,CAAC,UAAU,CAAC;gBACzF,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACjB,OAAO;gBACL,OAAO,EAAE;oBACP,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;oBAC5C,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;iBAC7E;aACF,CAAC;QACJ,CAAC;QACD,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO;gBACL,IAAI,EAAE;oBACJ,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;oBACzC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;iBAC7C;aACF,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAqC;IAC/D,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACtB,KAAK;YACH,OAAO,IAAI,KAAK,QAAQ;gBACtB,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,QAAQ,IAAI,IAAI;oBAChB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM;oBACvB,CAAC,CAAC,SAAS,IAAI,IAAI;wBACjB,CAAC,CAAC,CAAC;wBACH,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,CAAS,EACT,MAAqC,EACrC,uBAAgC,EAChC,GAAoB;IAEpB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,CAAS,EACT,MAAqC,EACrC,GAAoB,EACpB,GAAmB,EACnB,uBAAuB,GAAG,KAAK;IAE/B,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAC;AACxE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,gBAAgB,CACvB,CAAS,EACT,MAAqC,EACrC,GAAoB,EACpB,GAA+B,EAC/B,uBAAgC,EAChC,QAAiB;IAEjB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,IAAI,uBAAuB,IAAI,CAAC,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACtD,CAAC;YACD,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAClB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;YACD,QAAQ,EAAE,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACtE,CAAC;YACD,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAChC,SAAS;QACX,CAAC;QACD,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,GAAG,CAAC,QAAQ,CAAC,GAAG,yBAAyB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACpE,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,GAAG,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;YAC1B,CAAC;YACD,QAAQ,EAAE,CAAC;YACX,SAAS;QACX,CAAC;QACD,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,GAAG,CAAC,QAAQ,CAAC,GAAG,wBAAwB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YACnE,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,GAAG,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;YAC/B,CAAC;YACD,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC;AACH,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,gBAAgB,CAC9B,CAAS,EACT,MAAqC,EACrC,KAAa;IAEb,MAAM,MAAM,GAAG,IAAI,KAAK,CAAgB,KAAK,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,IAAI,KAAK,CAAe,KAAK,CAAC,CAAC;IAC3C,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7C,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,MAAqC,EACrC,QAAwB,EACxB,uBAAgC,EAChC,GAAoB;IAEpB,8BAA8B,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IACjF,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,MAAqC,EACrC,QAAwB,EACxB,uBAAgC,EAChC,GAAoB,EACpB,GAAmB;IAEnB,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,uBAAuB,EAAE,GAAG,CAAC,CAAC;IACvE,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,MAAqC;IACnE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAC7B,OAAO,IAAI,KAAK,QAAQ;QACtB,CAAC,CAAC,CAAC,IAAI,CAAC;QACR,CAAC,CAAC,QAAQ,IAAI,IAAI;YAChB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,SAAS,IAAI,IAAI;gBACjB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACnB,CAAC,CAAC,EAAE,CACX,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,IAAI;IAcf,YAAY,KAAa;QACvB,IAAI,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,UAAU,SAAS,CAAC,CAAU;IAClC,OAAO,CAAC,KAAK,IAAI,CAAC;AACpB,CAAC;AAYD;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAY,EACZ,QAA0B,EAC1B,gBAA8D,EAC9D,gBAAmC;IAEnC,KAAK,CAAC,UAAU,EAAE,CAAC;IACnB,IAAI,CAAC;QACH,oEAAoE;QACpE,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE,CAAC;YAC3C,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;gBAC9B,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC3B,CAAC;YACD,OAAO;QACT,CAAC;QACD,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,8BAA8B,CAAC,gBAAgB,CAAC,CAAC;QACjF,MAAM,QAAQ,GAAG,gBAAoC,CAAC;QACtD,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QACzE,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,KAAK,CAAC,QAAQ,EAAE,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,gBAAsC;IAInF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,QAAQ,IAAI,gBAAgB,EAAE,CAAC;QACrE,OAAO;YACL,UAAU,EAAE,gBAAgB,CAAC,MAAM;YACnC,OAAO,EAAE,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC;SAC5C,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,KAAY,EACZ,UAAuC,EACvC,OAAgB,EAChB,QAA0B;IAE1B,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,OAAO,CAAC,CAAS,EAAE,EAAE;gBACnB,MAAM,QAAQ,GAAG,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC/C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,OAAO;gBACT,CAAC;gBACD,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;gBACd,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC3D,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBACzB,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;oBACvE,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;gBACzB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,CAAS,EAAE,EAAE;YACnB,MAAM,QAAQ,GAAG,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,OAAO;YACT,CAAC;YACD,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC9D,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACzB,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC/D,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,CAAC,CAAS,EAAE,EAAE;YACnB,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;YACd,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;YAChD,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACzB,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,CAAS,EAAE,EAAE;QACnB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACxC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAAqC;IAErC,IAAI,KAA+E,CAAC;IACpF,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACtB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QACD,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,IAAI,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QACD,KAAK,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACpE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CACrB,KAAa,EACb,aAA6B,EAC7B,IAAY,EACZ,GAAoB,EACpB,GAAoB;IAEpB,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE;QAC7C,MAAM,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC;QAC/B,GAAG,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/E,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QACxB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAI,QAAsB,EAAE,GAAQ;IACxD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACrD,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,SAAS,8BAA8B,CACrC,MAAqC,EACrC,MAAgC,EAChC,QAAiB;IAEjB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IACD,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACtD,CAAC;YACD,UAAU,EAAE,CAAC;QACf,CAAC;aAAM,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YAC5B,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACtC,CAAC;aAAM,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YAC7B,UAAU,EAAE,CAAC;QACf,CAAC;aAAM,CAAC;YACN,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACpC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,CAAS,EACT,MAAqC,EACrC,MAAuB,EACvB,GAAmB;IAEnB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACpB,UAAU,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QACD,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,MAAM,GAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAA8B,EAAE,OAAO,EAAE,CAAC;YAC/E,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxC,MAAM,CAAC,UAAU,CAAC,GAAG,UAAU,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBACtF,GAAG,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;gBACzB,UAAU,EAAE,CAAC;YACf,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,MAAM,OAAO,GAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAA8B,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;YAC5F,MAAM,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC1C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CACjC,UAAU,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAChE,CACF,CAAC;YACF,GAAG,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;YAC1B,UAAU,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;AACH,CAAC"}
@@ -16,7 +16,7 @@ export class IdentityModule extends Module {
16
16
  const index = this.world._identityNameIndex;
17
17
  const indexed = this.world._identityIndexedNames;
18
18
  const component = this.world.component(Identity);
19
- component.onSet((entity, identity) => {
19
+ component.on("set", (entity, identity) => {
20
20
  const prev = indexed.get(entity);
21
21
  if (prev !== undefined && index.get(prev) === entity) {
22
22
  index.delete(prev);
@@ -29,7 +29,7 @@ export class IdentityModule extends Module {
29
29
  indexed.delete(entity);
30
30
  }
31
31
  });
32
- component.onRemove((entity) => {
32
+ component.on("remove", (entity) => {
33
33
  const prev = indexed.get(entity);
34
34
  if (prev !== undefined && index.get(prev) === entity) {
35
35
  index.delete(prev);
@@ -1 +1 @@
1
- {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/modules/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;;;;;;;;GAUG;AACH,MAAM,OAAO,cAAe,SAAQ,MAAM;IACjC,IAAI;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAEjD,SAAS,CAAC,KAAK,CAAC,CAAC,MAAc,EAAE,QAAkB,EAAE,EAAE;YACrD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAEjC,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;gBACrD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;YAED,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAc,EAAE,EAAE;YACpC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAEjC,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;gBACrD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;YAED,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/modules/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;;;;;;;;GAUG;AACH,MAAM,OAAO,cAAe,SAAQ,MAAM;IACjC,IAAI;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAEjD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,MAAc,EAAE,QAAkB,EAAE,EAAE;YACzD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAEjC,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;gBACrD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;YAED,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAc,EAAE,EAAE;YACxC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAEjC,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;gBACrD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;YAED,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -11,11 +11,11 @@ export class ImplementsModule extends Module {
11
11
  }
12
12
  init() {
13
13
  const component = this.world.component(Implements);
14
- component.onSet((entity) => {
14
+ component.on("set", (entity) => {
15
15
  this._declaring.add(entity);
16
16
  this._recompute();
17
17
  });
18
- component.onRemove((entity) => {
18
+ component.on("remove", (entity) => {
19
19
  this._declaring.delete(entity);
20
20
  this._recompute();
21
21
  });
@@ -1 +1 @@
1
- {"version":3,"file":"implements.js","sourceRoot":"","sources":["../../src/modules/implements.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"implements.js","sourceRoot":"","sources":["../../src/modules/implements.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { System } from "../system.js";
2
2
  import { Module } from "../module.js";
3
- import { DependsOn, Traversable } from "./relationships.js";
3
+ import { DependsOn } from "./relationships.js";
4
4
  /** Marker component tagging an entity as a pipeline phase anchor. */
5
5
  export class Phase {
6
6
  }
@@ -27,9 +27,9 @@ export function insertPhaseAfter(phase, anchor) {
27
27
  assertPhase(phase, "phase");
28
28
  assertPhase(anchor, "anchor");
29
29
  const downstream = [...anchor.children(DependsOn)].filter((child) => child !== phase && child.has(Phase) && child.has(DependsOn));
30
- phase.set(DependsOn, { target: anchor });
30
+ phase.add(DependsOn, anchor);
31
31
  for (const child of downstream) {
32
- child.set(DependsOn, { target: phase });
32
+ child.add(DependsOn, phase);
33
33
  }
34
34
  return phase;
35
35
  }
@@ -43,10 +43,10 @@ export class PipelineModule extends Module {
43
43
  init() {
44
44
  const world = this.world;
45
45
  world.component(Phase);
46
- world.component(DependsOn).add(Traversable);
46
+ world.component(DependsOn);
47
47
  const phases = BUILTIN_PIPELINE_PHASES.map((name) => world.entity(name).add(Phase));
48
48
  for (let i = 1; i < phases.length; i++) {
49
- phases[i].set(DependsOn, { target: phases[i - 1] });
49
+ phases[i].add(DependsOn, phases[i - 1]);
50
50
  }
51
51
  world.setPipeline({
52
52
  with: { all: [System, { target: [DependsOn, Phase] }] },
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/modules/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/modules/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,qEAAqE;AACrE,MAAM,OAAO,KAAK;CAAG;AAErB,MAAM,CAAC,MAAM,OAAO,GAAG,cAAc,CAAC;AACtC,MAAM,CAAC,MAAM,SAAS,GAAG,gBAAgB,CAAC;AAC1C,MAAM,CAAC,MAAM,UAAU,GAAG,iBAAiB,CAAC;AAC5C,MAAM,CAAC,MAAM,SAAS,GAAG,gBAAgB,CAAC;AAC1C,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,CAAC;AAC9C,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,CAAC;AAC9C,MAAM,CAAC,MAAM,SAAS,GAAG,gBAAgB,CAAC;AAC1C,MAAM,CAAC,MAAM,QAAQ,GAAG,eAAe,CAAC;AAExC,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,OAAO;IACP,SAAS;IACT,UAAU;IACV,SAAS;IACT,WAAW;IACX,WAAW;IACX,SAAS;IACT,QAAQ;CACA,CAAC;AAEX,8EAA8E;AAC9E,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,MAAc;IAC5D,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC5B,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE9B,MAAM,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CACvD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CACvE,CAAC;IAEF,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAE7B,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,MAAc,EAAE,KAAa;IAChD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,kBAAkB,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,6EAA6E;AAC7E,MAAM,OAAO,cAAe,SAAQ,MAAM;IACjC,IAAI;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACvB,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAE3B,MAAM,MAAM,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QACpF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC;QAED,KAAK,CAAC,WAAW,CAAC;YAChB,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;YACvD,OAAO,EAAE,SAAS;SACnB,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -18,20 +18,84 @@ export declare class DependsOn extends Relationship {
18
18
  export declare class SilenceSource extends Relationship {
19
19
  }
20
20
  /**
21
- * Marker component that makes every target of a relationship a `ChildOf` child
21
+ * Pair-form trait: attaching `(With, Y)` to a component `X` makes adding `X`
22
+ * to an entity automatically add `Y` as well.
23
+ *
24
+ * Plain form — `X` and `Y` are both non-relationship components:
25
+ *
26
+ * ```ts
27
+ * world.component(Armor);
28
+ * world.component(Helmet).add(With, world.component(Armor));
29
+ * const e = world.entity().add(Helmet); // e also has Armor
30
+ * ```
31
+ *
32
+ * Relationship form — `X` and `Y` are both relationships; the same target is
33
+ * propagated:
34
+ *
35
+ * ```ts
36
+ * world.component(OwnedBy);
37
+ * world.component(WornBy).add(With, world.component(OwnedBy));
38
+ * const wearer = world.entity();
39
+ * const e = world.entity().add(WornBy, wearer); // e also has (OwnedBy, wearer)
40
+ * ```
41
+ *
42
+ * `With` is irrevocable and rejects attach while `X` is already in use, so
43
+ * configure it during world setup before any entity carries `X`.
44
+ */
45
+ export declare class With extends Relationship {
46
+ }
47
+ /**
48
+ * Pair-form trait constraining the targets of a relationship to direct
49
+ * children (via {@link ChildOf}) of a specified parent entity.
50
+ *
51
+ * Self/enum form — the relationship's own entity is the parent. A faction
52
+ * diplomacy alignment enum is a natural fit: every `Alignment` target must be
53
+ * a declared alignment value.
54
+ *
55
+ * ```ts
56
+ * class Alignment extends Relationship {}
57
+ * const alignment = world.component(Alignment).add(OneOf, world.component(Alignment));
58
+ * const good = world.entity().childOf(alignment);
59
+ * const evil = world.entity().childOf(alignment);
60
+ * const weather = world.entity();
61
+ * world.entity().add(Alignment, good); // ok: good is a child of Alignment
62
+ * world.entity().add(Alignment, weather); // throws: weather is not a child of Alignment
63
+ * ```
64
+ *
65
+ * Other-parent form — a different entity is the parent:
66
+ *
67
+ * ```ts
68
+ * class ResidesIn extends Relationship {}
69
+ * class Region extends Relationship {}
70
+ * world.component(ResidesIn).add(OneOf, world.component(Region));
71
+ * const forest = world.entity().childOf(world.component(Region));
72
+ * const weather = world.entity();
73
+ * world.entity().add(ResidesIn, forest); // ok: forest is a child of Region
74
+ * world.entity().add(ResidesIn, weather); // throws: weather is not a child of Region
75
+ * ```
76
+ *
77
+ * `OneOf` is irrevocable and rejects attach while the relationship is already
78
+ * in use, so configure it during world setup before any entity carries an
79
+ * edge through the relationship.
80
+ */
81
+ export declare class OneOf extends Relationship {
82
+ }
83
+ /** Marker trait restricting a relationship to one target. */
84
+ export declare class Exclusive {
85
+ }
86
+ /**
87
+ * Marker component that makes every explicit target of a relationship a `ChildOf` child
22
88
  * of the relationship source.
23
89
  *
24
90
  * Add during world setup, before creating relationship instances:
25
91
  *
26
92
  * ```ts
27
93
  * world.component(Inventory).add(OwnedTarget);
28
- * player.add(Inventory); // creates an owned target
94
+ * player.add(Inventory, inventory);
29
95
  * ```
30
96
  *
31
- * Adding the relationship creates a target when none was supplied. Retargeting
32
- * destroys the displaced target, and removing the relationship destroys its
33
- * current target. Configure owner lifecycle hooks before attaching this trait;
34
- * the trait wraps them and runs ownership behavior first.
97
+ * The relationship must also carry {@link Exclusive}. Removing or replacing an
98
+ * edge destroys its target.
35
99
  */
36
100
  export declare class OwnedTarget {
37
101
  }