iris-ecs 0.0.8 → 0.0.10

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 (51) hide show
  1. package/README.md +250 -61
  2. package/dist/archetype.d.ts +18 -1
  3. package/dist/archetype.d.ts.map +1 -1
  4. package/dist/archetype.js +60 -15
  5. package/dist/archetype.js.map +1 -1
  6. package/dist/component.d.ts +106 -7
  7. package/dist/component.d.ts.map +1 -1
  8. package/dist/component.js +88 -6
  9. package/dist/component.js.map +1 -1
  10. package/dist/directed-acyclic-graph.d.ts +123 -0
  11. package/dist/directed-acyclic-graph.d.ts.map +1 -0
  12. package/dist/directed-acyclic-graph.js +235 -0
  13. package/dist/directed-acyclic-graph.js.map +1 -0
  14. package/dist/entity.d.ts +18 -0
  15. package/dist/entity.d.ts.map +1 -1
  16. package/dist/entity.js +5 -15
  17. package/dist/entity.js.map +1 -1
  18. package/dist/error.d.ts +2 -2
  19. package/dist/error.js +2 -2
  20. package/dist/index.d.ts +10 -8
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +9 -5
  23. package/dist/index.js.map +1 -1
  24. package/dist/name.d.ts +2 -2
  25. package/dist/name.d.ts.map +1 -1
  26. package/dist/name.js +3 -3
  27. package/dist/name.js.map +1 -1
  28. package/dist/observer.d.ts +5 -0
  29. package/dist/observer.d.ts.map +1 -1
  30. package/dist/observer.js.map +1 -1
  31. package/dist/query.d.ts +65 -5
  32. package/dist/query.d.ts.map +1 -1
  33. package/dist/query.js +34 -3
  34. package/dist/query.js.map +1 -1
  35. package/dist/resource.d.ts +62 -4
  36. package/dist/resource.d.ts.map +1 -1
  37. package/dist/resource.js +10 -1
  38. package/dist/resource.js.map +1 -1
  39. package/dist/scheduler.d.ts +119 -11
  40. package/dist/scheduler.d.ts.map +1 -1
  41. package/dist/scheduler.js +175 -68
  42. package/dist/scheduler.js.map +1 -1
  43. package/dist/schema.d.ts +97 -40
  44. package/dist/schema.d.ts.map +1 -1
  45. package/dist/schema.js +31 -69
  46. package/dist/schema.js.map +1 -1
  47. package/dist/world.d.ts +10 -1
  48. package/dist/world.d.ts.map +1 -1
  49. package/dist/world.js +7 -0
  50. package/dist/world.js.map +1 -1
  51. package/package.json +1 -1
package/dist/schema.js CHANGED
@@ -1,83 +1,45 @@
1
- // ============================================================================
2
- // Type Definitions
3
- // ============================================================================
4
- // ============================================================================
5
- // Schema Factories
6
- // ============================================================================
1
+ import { assert, InvalidArgument } from "./error.js";
2
+ /** @internal */
3
+ function numericFactory(ArrayCtor) {
4
+ return ((size) => {
5
+ if (size === undefined) {
6
+ return { kind: "typed", arrayConstructor: ArrayCtor, typeName: "number" };
7
+ }
8
+ assert(size >= 2 && size <= 16, InvalidArgument, {
9
+ expected: "vector size between 2 and 16",
10
+ actual: String(size),
11
+ });
12
+ return { kind: "vector", arrayConstructor: ArrayCtor, typeName: "number", stride: size };
13
+ });
14
+ }
7
15
  /**
8
16
  * Schema factory namespace for defining component storage types.
9
17
  *
10
18
  * Provides constructors for typed arrays (i8, f32, etc.), primitives (bool, string),
11
- * and generic objects. Use these to define component schemas.
19
+ * and generic objects. Numeric factories accept an optional size parameter for
20
+ * interleaved vector storage.
12
21
  *
13
22
  * @example
14
23
  * ```typescript
15
- * const Position = { x: Type.f32(), y: Type.f32() };
16
- * const Health = { hp: Type.i32() };
24
+ * const Position = { value: Type.f32(2) }; // vec2
25
+ * const Color = { value: Type.u32(4) }; // vec4
26
+ * const Health = { hp: Type.i32() }; // scalar
17
27
  * const Name = { value: Type.string() };
18
28
  * ```
19
29
  */
20
30
  export const Type = {
21
- /**
22
- * 8-bit signed integer schema (Int8Array).
23
- *
24
- * @returns Schema for Int8Array storage
25
- */
26
- i8: () => ({
27
- kind: "typed",
28
- arrayConstructor: Int8Array,
29
- typeName: "number",
30
- }),
31
- /**
32
- * 16-bit signed integer schema (Int16Array).
33
- *
34
- * @returns Schema for Int16Array storage
35
- */
36
- i16: () => ({
37
- kind: "typed",
38
- arrayConstructor: Int16Array,
39
- typeName: "number",
40
- }),
41
- /**
42
- * 32-bit signed integer schema (Int32Array).
43
- *
44
- * @returns Schema for Int32Array storage
45
- */
46
- i32: () => ({
47
- kind: "typed",
48
- arrayConstructor: Int32Array,
49
- typeName: "number",
50
- }),
51
- /**
52
- * 32-bit unsigned integer schema (Uint32Array).
53
- *
54
- * @returns Schema for Uint32Array storage
55
- */
56
- u32: () => ({
57
- kind: "typed",
58
- arrayConstructor: Uint32Array,
59
- typeName: "number",
60
- }),
61
- /**
62
- * 32-bit floating point schema (Float32Array).
63
- *
64
- * @returns Schema for Float32Array storage
65
- */
66
- f32: () => ({
67
- kind: "typed",
68
- arrayConstructor: Float32Array,
69
- typeName: "number",
70
- }),
71
- /**
72
- * 64-bit floating point schema (Float64Array).
73
- *
74
- * @returns Schema for Float64Array storage
75
- */
76
- f64: () => ({
77
- kind: "typed",
78
- arrayConstructor: Float64Array,
79
- typeName: "number",
80
- }),
31
+ /** 8-bit signed integer schema (Int8Array). Accepts optional vector size (2-16). */
32
+ i8: numericFactory(Int8Array),
33
+ /** 16-bit signed integer schema (Int16Array). Accepts optional vector size (2-16). */
34
+ i16: numericFactory(Int16Array),
35
+ /** 32-bit signed integer schema (Int32Array). Accepts optional vector size (2-16). */
36
+ i32: numericFactory(Int32Array),
37
+ /** 32-bit unsigned integer schema (Uint32Array). Accepts optional vector size (2-16). */
38
+ u32: numericFactory(Uint32Array),
39
+ /** 32-bit floating point schema (Float32Array). Accepts optional vector size (2-16). */
40
+ f32: numericFactory(Float32Array),
41
+ /** 64-bit floating point schema (Float64Array). Accepts optional vector size (2-16). */
42
+ f64: numericFactory(Float64Array),
81
43
  /**
82
44
  * Boolean schema (Array<boolean>).
83
45
  *
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAoC/E,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB;;;;OAIG;IACH,EAAE,EAAE,GAAmB,EAAE,CAAC,CAAC;QACzB,IAAI,EAAE,OAAO;QACb,gBAAgB,EAAE,SAAS;QAC3B,QAAQ,EAAE,QAAQ;KACnB,CAAC;IAEF;;;;OAIG;IACH,GAAG,EAAE,GAAmB,EAAE,CAAC,CAAC;QAC1B,IAAI,EAAE,OAAO;QACb,gBAAgB,EAAE,UAAU;QAC5B,QAAQ,EAAE,QAAQ;KACnB,CAAC;IAEF;;;;OAIG;IACH,GAAG,EAAE,GAAmB,EAAE,CAAC,CAAC;QAC1B,IAAI,EAAE,OAAO;QACb,gBAAgB,EAAE,UAAU;QAC5B,QAAQ,EAAE,QAAQ;KACnB,CAAC;IAEF;;;;OAIG;IACH,GAAG,EAAE,GAAmB,EAAE,CAAC,CAAC;QAC1B,IAAI,EAAE,OAAO;QACb,gBAAgB,EAAE,WAAW;QAC7B,QAAQ,EAAE,QAAQ;KACnB,CAAC;IAEF;;;;OAIG;IACH,GAAG,EAAE,GAAmB,EAAE,CAAC,CAAC;QAC1B,IAAI,EAAE,OAAO;QACb,gBAAgB,EAAE,YAAY;QAC9B,QAAQ,EAAE,QAAQ;KACnB,CAAC;IAEF;;;;OAIG;IACH,GAAG,EAAE,GAAmB,EAAE,CAAC,CAAC;QAC1B,IAAI,EAAE,OAAO;QACb,gBAAgB,EAAE,YAAY;QAC9B,QAAQ,EAAE,QAAQ;KACnB,CAAC;IAEF;;;;OAIG;IACH,IAAI,EAAE,GAAoB,EAAE,CAAC,CAAC;QAC5B,IAAI,EAAE,WAAW;QACjB,gBAAgB,EAAE,KAAK;QACvB,QAAQ,EAAE,SAAS;KACpB,CAAC;IAEF;;;;OAIG;IACH,MAAM,EAAE,GAAmB,EAAE,CAAC,CAAC;QAC7B,IAAI,EAAE,WAAW;QACjB,gBAAgB,EAAE,KAAK;QACvB,QAAQ,EAAE,QAAQ;KACnB,CAAC;IAEF;;;;;OAKG;IACH,MAAM,EAAE,GAAiB,EAAE,CAAC,CAAC;QAC3B,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,KAAK;QACvB,QAAQ,EAAE,SAAS;KACpB,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAuHrD,gBAAgB;AAChB,SAAS,cAAc,CAAC,SAAgC;IACtD,OAAO,CAAC,CAAC,IAAa,EAAE,EAAE;QACxB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QAC5E,CAAC;QAED,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,EAAE,eAAe,EAAE;YAC/C,QAAQ,EAAE,8BAA8B;YACxC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;SACrB,CAAC,CAAC;QAEH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC3F,CAAC,CAAmB,CAAC;AACvB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,oFAAoF;IACpF,EAAE,EAAE,cAAc,CAAC,SAAS,CAAC;IAE7B,sFAAsF;IACtF,GAAG,EAAE,cAAc,CAAC,UAAU,CAAC;IAE/B,sFAAsF;IACtF,GAAG,EAAE,cAAc,CAAC,UAAU,CAAC;IAE/B,yFAAyF;IACzF,GAAG,EAAE,cAAc,CAAC,WAAW,CAAC;IAEhC,wFAAwF;IACxF,GAAG,EAAE,cAAc,CAAC,YAAY,CAAC;IAEjC,wFAAwF;IACxF,GAAG,EAAE,cAAc,CAAC,YAAY,CAAC;IAEjC;;;;OAIG;IACH,IAAI,EAAE,GAAoB,EAAE,CAAC,CAAC;QAC5B,IAAI,EAAE,WAAW;QACjB,gBAAgB,EAAE,KAAK;QACvB,QAAQ,EAAE,SAAS;KACpB,CAAC;IAEF;;;;OAIG;IACH,MAAM,EAAE,GAAmB,EAAE,CAAC,CAAC;QAC7B,IAAI,EAAE,WAAW;QACjB,gBAAgB,EAAE,KAAK;QACvB,QAAQ,EAAE,QAAQ;KACnB,CAAC;IAEF;;;;;OAKG;IACH,MAAM,EAAE,GAAiB,EAAE,CAAC,CAAC;QAC3B,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,KAAK;QACvB,QAAQ,EAAE,SAAS;KACpB,CAAC;CACH,CAAC"}
package/dist/world.d.ts CHANGED
@@ -7,7 +7,7 @@ import type { FilterMeta } from "./filters.js";
7
7
  import type { EventType, ObserverMeta } from "./observer.js";
8
8
  import type { QueryMeta } from "./query.js";
9
9
  import type { ComponentMeta } from "./registry.js";
10
- import type { ScheduleLabel, SystemMeta } from "./scheduler.js";
10
+ import type { ScheduleLabel, SystemMeta, SystemSetLabel, SystemSetMeta } from "./scheduler.js";
11
11
  /**
12
12
  * World instance.
13
13
  *
@@ -99,6 +99,15 @@ export type World = {
99
99
  */
100
100
  nextIndex: number;
101
101
  };
102
+ /**
103
+ * System set registry.
104
+ */
105
+ systemSets: {
106
+ /**
107
+ * System set metadata by label.
108
+ */
109
+ byId: Map<SystemSetLabel, SystemSetMeta>;
110
+ };
102
111
  /**
103
112
  * Schedule registry and pipeline configuration.
104
113
  */
@@ -1 +1 @@
1
- {"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../src/world.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAOhE;;;;;GAKG;AACH,MAAM,MAAM,KAAK,GAAG;IAClB;;OAEG;IACH,QAAQ,EAAE;QACR;;WAEG;QACH,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAEhC;;WAEG;QACH,OAAO,EAAE,MAAM,EAAE,CAAC;QAElB;;WAEG;QACH,MAAM,EAAE,MAAM,CAAC;QAEf;;WAEG;QACH,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,CAAC;IAEF;;OAEG;IACH,UAAU,EAAE;QACV;;WAEG;QACH,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,SAAS,GAAG,QAAQ,EAAE,aAAa,CAAC,CAAC;KACtD,CAAC;IAEF;;OAEG;IACH,UAAU,EAAE;QACV;;WAEG;QACH,IAAI,EAAE,SAAS,CAAC;QAEhB;;WAEG;QACH,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;KAC9B,CAAC;IAEF;;OAEG;IACH,OAAO,EAAE;QACP;;WAEG;QACH,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAE9B;;WAEG;QACH,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;KACrC,CAAC;IAEF;;OAEG;IACH,OAAO,EAAE;QACP;;WAEG;QACH,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;KAC9B,CAAC;IAEF;;OAEG;IACH,SAAS,EAAE;SACR,CAAC,IAAI,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC;KAClC,CAAC;IAEF;;OAEG;IACH,OAAO,EAAE;QACP;;WAEG;QACH,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAE9B;;WAEG;QACH,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF;;OAEG;IACH,SAAS,EAAE;QACT;;WAEG;QACH,IAAI,EAAE,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;QAEnC;;WAEG;QACH,QAAQ,EAAE,aAAa,EAAE,CAAC;QAE1B;;WAEG;QACH,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;IAEF;;OAEG;IACH,SAAS,EAAE;QACT;;WAEG;QACH,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;QAEpC;;WAEG;QACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QAExB;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;QAEb;;WAEG;QACH,OAAO,EAAE,OAAO,CAAC;QAEjB;;WAEG;QACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAEzB;;WAEG;QACH,UAAU,EAAE,OAAO,CAAC;QAEpB;;WAEG;QACH,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;IAEF;;OAEG;IACH,MAAM,EAAE;QACN;;WAEG;QACH,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;KACpC,CAAC;IAEF;;OAEG;IACH,OAAO,EAAE;QACP;;WAEG;QACH,aAAa,EAAE,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;KACzD,CAAC;CACH,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,IAAI,KAAK,CAoEnC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CA4C7C"}
1
+ {"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../src/world.ts"],"names":[],"mappings":"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"}
package/dist/world.js CHANGED
@@ -43,6 +43,9 @@ export function createWorld() {
43
43
  byId: new Map(),
44
44
  nextIndex: 0,
45
45
  },
46
+ systemSets: {
47
+ byId: new Map(),
48
+ },
46
49
  schedules: {
47
50
  byId: new Map(),
48
51
  pipeline: [First, PreUpdate, Update, PostUpdate, Last],
@@ -73,6 +76,10 @@ export function createWorld() {
73
76
  componentRemoved: { callbacks: [] },
74
77
  componentChanged: { callbacks: [] },
75
78
  worldReset: { callbacks: [] },
79
+ scheduleStarted: { callbacks: [] },
80
+ scheduleFinished: { callbacks: [] },
81
+ systemStarted: { callbacks: [] },
82
+ systemFinished: { callbacks: [] },
76
83
  },
77
84
  };
78
85
  initFilterDispatch(world);
package/dist/world.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"world.js","sourceRoot":"","sources":["../src/world.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAKpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AA+L5E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,IAAI,GAAG,eAAe,CAAC,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IAE5C,MAAM,KAAK,GAAU;QACnB,QAAQ,EAAE;YACR,IAAI,EAAE,IAAI,GAAG,EAAE;YACf,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,CAAC;YACT,WAAW,EAAE,IAAI,GAAG,EAAE;SACvB;QACD,UAAU,EAAE;YACV,IAAI,EAAE,kBAAkB,CAAC,IAAI;SAC9B;QACD,UAAU,EAAE;YACV,IAAI;YACJ,IAAI,EAAE,IAAI,GAAG,EAAE;SAChB;QACD,OAAO,EAAE;YACP,IAAI,EAAE,IAAI,GAAG,EAAE;YACf,MAAM,EAAE,IAAI,GAAG,EAAE;SAClB;QACD,OAAO,EAAE;YACP,IAAI,EAAE,IAAI,GAAG,EAAE;SAChB;QACD,OAAO,EAAE;YACP,IAAI,EAAE,IAAI,GAAG,EAAE;YACf,SAAS,EAAE,CAAC;SACb;QACD,SAAS,EAAE;YACT,IAAI,EAAE,IAAI,GAAG,EAAE;YACf,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC;YACtD,KAAK,EAAE,IAAI;SACZ;QACD,SAAS,EAAE;YACT,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,KAAK;YACjB,WAAW,EAAE,KAAK;SACnB;QACD,MAAM,EAAE;YACN,IAAI,EAAE,IAAI,GAAG,EAAE;SAChB;QACD,OAAO,EAAE;YACP,aAAa,EAAE,IAAI,GAAG,EAAE;SACzB;QACD,SAAS,EAAE;YACT,gBAAgB,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;YACnC,kBAAkB,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;YACrC,aAAa,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;YAChC,aAAa,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;YAChC,eAAe,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;YAClC,cAAc,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;YACjC,gBAAgB,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;YACnC,gBAAgB,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;YACnC,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;SAC9B;KACF,CAAC;IAEF,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC1B,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAE/B,cAAc,CAAC,KAAK,CAAC,CAAC;IACtB,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAEzB,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,UAAU,CAAC,KAAY;IACrC,qCAAqC;IACrC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAE7B,mBAAmB;IACnB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAE3B,sDAAsD;IACtD,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QACvD,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAE9B,kCAAkC;IAClC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC5B,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAClC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1B,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAEnC,+BAA+B;IAC/B,MAAM,OAAO,GAAG,eAAe,CAAC,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IAC/C,KAAK,CAAC,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC;IAChC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAElC,2BAA2B;IAC3B,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;IACzB,KAAK,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;IACrC,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;IAChC,KAAK,CAAC,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;IAChC,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;IACjC,KAAK,CAAC,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC;IACnC,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC;IAEpC,4DAA4D;IAC5D,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC7B,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC;IAE7B,kBAAkB;IAClB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC1B,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAEpC,iFAAiF;IACjF,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"world.js","sourceRoot":"","sources":["../src/world.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iris-ecs",
3
- "version": "0.0.8",
3
+ "version": "0.0.10",
4
4
  "type": "module",
5
5
  "description": "Entity Component System implementation for TypeScript",
6
6
  "author": "Yury Tomilin (https://github.com/r04423)",