@oasys/oecs 0.2.1 → 0.3.0

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 (46) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +169 -182
  3. package/dist/archetype.d.ts +12 -9
  4. package/dist/archetype.d.ts.map +1 -1
  5. package/dist/component.d.ts +10 -0
  6. package/dist/component.d.ts.map +1 -1
  7. package/dist/ecs.d.ts +14 -14
  8. package/dist/ecs.d.ts.map +1 -1
  9. package/dist/entity.d.ts.map +1 -1
  10. package/dist/event.d.ts +6 -0
  11. package/dist/event.d.ts.map +1 -1
  12. package/dist/index.cjs +1 -1
  13. package/dist/index.d.ts +8 -6
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +621 -459
  16. package/dist/query.d.ts +36 -16
  17. package/dist/query.d.ts.map +1 -1
  18. package/dist/ref.d.ts +4 -0
  19. package/dist/ref.d.ts.map +1 -1
  20. package/dist/resource.d.ts +21 -21
  21. package/dist/resource.d.ts.map +1 -1
  22. package/dist/schedule.d.ts +8 -6
  23. package/dist/schedule.d.ts.map +1 -1
  24. package/dist/store.d.ts +13 -6
  25. package/dist/store.d.ts.map +1 -1
  26. package/dist/system.d.ts.map +1 -1
  27. package/dist/type_primitives/assertions.d.ts +1 -0
  28. package/dist/type_primitives/assertions.d.ts.map +1 -1
  29. package/dist/type_primitives/binary_heap/binary_heap.d.ts +33 -0
  30. package/dist/type_primitives/binary_heap/binary_heap.d.ts.map +1 -0
  31. package/dist/type_primitives/bitset/bitset.d.ts +5 -0
  32. package/dist/type_primitives/bitset/bitset.d.ts.map +1 -1
  33. package/dist/type_primitives/error.d.ts +2 -1
  34. package/dist/type_primitives/error.d.ts.map +1 -1
  35. package/dist/type_primitives/index.d.ts +2 -0
  36. package/dist/type_primitives/index.d.ts.map +1 -1
  37. package/dist/type_primitives/topological_sort/topological_sort.d.ts +25 -0
  38. package/dist/type_primitives/topological_sort/topological_sort.d.ts.map +1 -0
  39. package/dist/type_primitives/typed_arrays/typed_arrays.d.ts +2 -0
  40. package/dist/type_primitives/typed_arrays/typed_arrays.d.ts.map +1 -1
  41. package/dist/utils/arrays.d.ts.map +1 -1
  42. package/dist/utils/constants.d.ts +0 -8
  43. package/dist/utils/constants.d.ts.map +1 -1
  44. package/dist/utils/error.d.ts +4 -1
  45. package/dist/utils/error.d.ts.map +1 -1
  46. package/package.json +1 -1
package/dist/query.d.ts CHANGED
@@ -2,9 +2,9 @@ import { Store } from './store';
2
2
  import { Archetype } from './archetype';
3
3
  import { EntityID } from './entity';
4
4
  import { ComponentDef, ComponentSchema, ComponentFields, FieldValues } from './component';
5
- import { ComponentRef } from './ref';
6
- import { EventDef, EventReader } from './event';
7
- import { ResourceDef, ResourceReader } from './resource';
5
+ import { ComponentRef, ReadonlyComponentRef } from './ref';
6
+ import { EventKey, EventReader } from './event';
7
+ import { ResourceKey } from './resource';
8
8
  import { BitSet } from './type_primitives';
9
9
  export interface QueryCacheEntry {
10
10
  include_mask: BitSet;
@@ -14,28 +14,38 @@ export interface QueryCacheEntry {
14
14
  }
15
15
  export interface QueryResolver {
16
16
  _resolve_query(include: BitSet, exclude: BitSet | null, any_of: BitSet | null, defs: readonly ComponentDef[]): Query<any>;
17
+ _get_last_run_tick(): number;
17
18
  }
18
19
  export declare class Query<Defs extends readonly ComponentDef[]> {
19
20
  private readonly _archetypes;
20
21
  private readonly _defs;
21
22
  private readonly _resolver;
22
- private readonly _include;
23
+ readonly _include: BitSet;
23
24
  private readonly _exclude;
24
25
  private readonly _any_of;
26
+ private _non_empty_archetypes;
27
+ private _non_empty_dirty;
25
28
  constructor(archetypes: Archetype[], defs: Defs, resolver: QueryResolver, include: BitSet, exclude: BitSet | null, any_of: BitSet | null);
26
29
  /** Number of matching archetypes (including empty ones). */
27
30
  get archetype_count(): number;
28
31
  /** Total entity count across all matching archetypes. */
29
32
  count(): number;
30
33
  get archetypes(): readonly Archetype[];
31
- /** Iterate non-empty archetypes. Skips archetypes with zero entities. */
32
- [Symbol.iterator](): Iterator<Archetype>;
33
34
  /** Extend required component set. Returns a new (cached) Query. */
34
35
  and<D extends ComponentDef[]>(...comps: D): Query<[...Defs, ...D]>;
35
36
  /** Exclude archetypes that have any of these components. */
36
37
  not(...comps: ComponentDef[]): Query<Defs>;
38
+ for_each(cb: (arch: Archetype) => void): void;
39
+ /** @internal — called by Store after flush and archetype push. */
40
+ mark_non_empty_dirty(): void;
41
+ /** @internal — used by ChangedQuery. Rebuild non-empty archetype list if dirty, return cached result. */
42
+ _non_empty(): Archetype[];
37
43
  /** Require at least one of these components. */
38
44
  any_of(...comps: ComponentDef[]): Query<Defs>;
45
+ /** Create a ChangedQuery that filters archetypes by change tick. */
46
+ changed(...defs: ComponentDef[]): ChangedQuery<Defs>;
47
+ /** @internal — reads last_run_tick from the resolver (ECS). */
48
+ _ctx_last_run_tick(): number;
39
49
  }
40
50
  export declare class QueryBuilder {
41
51
  private readonly _resolver;
@@ -43,13 +53,18 @@ export declare class QueryBuilder {
43
53
  every<T extends ComponentDef[]>(...defs: T): Query<T>;
44
54
  }
45
55
  export declare class SystemContext {
46
- private readonly store;
56
+ readonly store: Store;
57
+ last_run_tick: number;
58
+ /** Current world tick. Use this for write ticks in get_column_mut. */
59
+ get world_tick(): number;
47
60
  constructor(store: Store);
48
61
  create_entity(): EntityID;
49
62
  get_field<S extends ComponentSchema>(entity_id: EntityID, def: ComponentDef<S>, field: string & keyof S): number;
50
63
  set_field<S extends ComponentSchema>(entity_id: EntityID, def: ComponentDef<S>, field: string & keyof S, value: number): void;
51
- /** Create a cached component reference for a single entity. See ref.ts. */
52
- ref<S extends ComponentSchema>(def: ComponentDef<S>, entity_id: EntityID): ComponentRef<S>;
64
+ /** Create a cached read-only component reference for a single entity. See ref.ts. */
65
+ ref<S extends ComponentSchema>(def: ComponentDef<S>, entity_id: EntityID): ReadonlyComponentRef<S>;
66
+ /** Create a cached mutable component reference. Marks the component as changed. */
67
+ ref_mut<S extends ComponentSchema>(def: ComponentDef<S>, entity_id: EntityID): ComponentRef<S>;
53
68
  /** Buffer an entity for deferred destruction (applied at phase flush). */
54
69
  destroy_entity(id: EntityID): this;
55
70
  add_component(entity_id: EntityID, def: ComponentDef<Record<string, never>>): this;
@@ -57,14 +72,19 @@ export declare class SystemContext {
57
72
  remove_component(entity_id: EntityID, def: ComponentDef): this;
58
73
  /** Flush all deferred changes: structural (add/remove) first, then destructions. */
59
74
  flush(): void;
60
- emit(def: EventDef<readonly []>): void;
61
- emit<F extends ComponentFields>(def: EventDef<F>, values: {
62
- readonly [K in F[number]]: number;
63
- }): void;
64
- read<F extends ComponentFields>(def: EventDef<F>): EventReader<F>;
65
- resource<F extends ComponentFields>(def: ResourceDef<F>): ResourceReader<F>;
66
- set_resource<F extends ComponentFields>(def: ResourceDef<F>, values: {
75
+ emit(key: EventKey<readonly []>): void;
76
+ emit<F extends ComponentFields>(key: EventKey<F>, values: {
67
77
  readonly [K in F[number]]: number;
68
78
  }): void;
79
+ read<F extends ComponentFields>(key: EventKey<F>): EventReader<F>;
80
+ resource<T>(key: ResourceKey<T>): T;
81
+ set_resource<T>(key: ResourceKey<T>, value: T): void;
82
+ has_resource<T>(key: ResourceKey<T>): boolean;
83
+ }
84
+ export declare class ChangedQuery<Defs extends readonly ComponentDef[]> {
85
+ private readonly _query;
86
+ private readonly _changed_ids;
87
+ constructor(query: Query<Defs>, changed_ids: number[]);
88
+ for_each(cb: (arch: Archetype) => void): void;
69
89
  }
70
90
  //# sourceMappingURL=query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
package/dist/ref.d.ts CHANGED
@@ -5,6 +5,10 @@ import { GrowableTypedArray, AnyTypedArray } from './type_primitives';
5
5
  export type ComponentRef<S extends ComponentSchema> = {
6
6
  -readonly [K in keyof S]: number;
7
7
  };
8
+ /** Read-only view of a component reference. Prevents field writes at compile time. */
9
+ export type ReadonlyComponentRef<S extends ComponentSchema> = {
10
+ readonly [K in keyof S]: number;
11
+ };
8
12
  /** Minimal column group shape needed by create_ref. */
9
13
  export interface RefColumnGroup {
10
14
  readonly layout: ArchetypeColumnLayout;
package/dist/ref.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ref.d.ts","sourceRoot":"","sources":["../src/ref.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;KAsBK;AAEL,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEzE,oFAAoF;AACpF,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,eAAe,IAAI;IACpD,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM;CACjC,CAAC;AAOF,uDAAuD;AACvD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,aAAa,CAAC,EAAE,CAAC;CACvD;AAOD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,eAAe,EAClD,KAAK,EAAE,cAAc,EACrB,GAAG,EAAE,MAAM,GACV,YAAY,CAAC,CAAC,CAAC,CA4BjB"}
1
+ {"version":3,"file":"ref.d.ts","sourceRoot":"","sources":["../src/ref.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;KAsBK;AAEL,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE3E,oFAAoF;AACpF,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,eAAe,IAAI;IACpD,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM;CACjC,CAAC;AAEF,sFAAsF;AACtF,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,eAAe,IAAI;IAC5D,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM;CAChC,CAAC;AAOF,uDAAuD;AACvD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,aAAa,CAAC,EAAE,CAAC;CACvD;AAOD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,eAAe,EAClD,KAAK,EAAE,cAAc,EACrB,GAAG,EAAE,MAAM,GACV,YAAY,CAAC,CAAC,CAAC,CA4BjB"}
@@ -1,23 +1,23 @@
1
- import { Brand } from './type_primitives';
2
- import { ComponentFields } from './component';
3
- export type ResourceID = Brand<number, "resource_id">;
4
- export declare const as_resource_id: (value: number) => ResourceID;
5
- declare const __resource_schema: unique symbol;
6
- export type ResourceDef<F extends ComponentFields = ComponentFields> = ResourceID & {
7
- readonly [__resource_schema]: F;
1
+ /***
2
+ * Resource Typed singleton key-value storage.
3
+ *
4
+ * Resources are global singletons that don't belong to any entity.
5
+ * Think: time, input state, camera config, game settings.
6
+ *
7
+ * Each resource is identified by a unique symbol (ResourceKey<T>) and
8
+ * stores an arbitrary typed value. The key carries the value type as a
9
+ * phantom type parameter, so reads are type-safe at compile time.
10
+ *
11
+ * Usage:
12
+ *
13
+ * const TimeRes = resource_key<{ delta: number; elapsed: number }>("Time");
14
+ * world.register_resource(TimeRes, { delta: 0, elapsed: 0 });
15
+ * const time = world.resource(TimeRes);
16
+ * // time.delta → number, time.elapsed → number
17
+ *
18
+ ***/
19
+ export type ResourceKey<T> = symbol & {
20
+ readonly __phantom: T;
8
21
  };
9
- export type ResourceReader<F extends ComponentFields> = {
10
- readonly [K in F[number]]: number;
11
- };
12
- export declare class ResourceChannel {
13
- readonly field_names: string[];
14
- readonly field_index: Record<string, number>;
15
- readonly columns: number[][];
16
- readonly reader: ResourceReader<any>;
17
- constructor(field_names: string[], initial: Record<string, number>);
18
- write(values: Record<string, number>): void;
19
- read_field(field_index: number): number;
20
- write_field(field_index: number, value: number): void;
21
- }
22
- export {};
22
+ export declare function resource_key<T>(name: string): ResourceKey<T>;
23
23
  //# sourceMappingURL=resource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;KAkBK;AAEL,OAAO,EACL,KAAK,EAGN,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AACtD,eAAO,MAAM,cAAc,UAAW,MAAM,eAKzC,CAAC;AAEJ,OAAO,CAAC,MAAM,iBAAiB,EAAE,OAAO,MAAM,CAAC;AAE/C,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,IACjE,UAAU,GAAG;IAAE,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAA;CAAE,CAAC;AAEnD,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,eAAe,IAAI;IACtD,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;CAClC,CAAC;AAEF,qBAAa,eAAe;IAC1B,SAAgB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtC,SAAgB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpD,SAAgB,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;IAEpC,SAAgB,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;gBAEhC,WAAW,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAwB3D,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAQ3C,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAIvC,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CAG7D"}
1
+ {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;KAiBK;AAIL,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,MAAM,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAA;CAAE,CAAC;AAEhE,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAE5D"}
@@ -21,13 +21,14 @@ export declare class Schedule {
21
21
  private readonly label_systems;
22
22
  private readonly sorted_cache;
23
23
  private readonly system_index;
24
+ private readonly system_last_run;
24
25
  private next_insertion_order;
25
26
  constructor();
26
27
  add_systems(label: SCHEDULE, ...entries: (SystemDescriptor | SystemEntry)[]): void;
27
28
  remove_system(system: SystemDescriptor): void;
28
- run_startup(ctx: SystemContext): void;
29
- run_update(ctx: SystemContext, delta_time: number): void;
30
- run_fixed_update(ctx: SystemContext, fixed_dt: number): void;
29
+ run_startup(ctx: SystemContext, tick: number): void;
30
+ run_update(ctx: SystemContext, delta_time: number, tick: number): void;
31
+ run_fixed_update(ctx: SystemContext, fixed_dt: number, tick: number): void;
31
32
  has_fixed_systems(): boolean;
32
33
  get_all_systems(): SystemDescriptor[];
33
34
  has_system(system: SystemDescriptor): boolean;
@@ -35,9 +36,10 @@ export declare class Schedule {
35
36
  private run_label;
36
37
  private get_sorted;
37
38
  /**
38
- * Kahn's algorithm: BFS-based topological sort.
39
- * Uses insertion_order as a stable tiebreaker (lower insertion order runs first).
39
+ * Delegates to the shared topological_sort utility.
40
+ * Builds the dependency edge map from before/after constraints, then
41
+ * catches any cycle TypeError and re-throws as ECSError.
40
42
  */
41
- private topological_sort;
43
+ private sort_systems;
42
44
  }
43
45
  //# sourceMappingURL=schedule.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../src/schedule.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;KAyBK;AAEL,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAIjD,oBAAY,QAAQ;IAClB,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,WAAW,gBAAgB;CAC5B;AAcD,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AASD,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0C;IACxE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgD;IAC7E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA8C;IAC3E,OAAO,CAAC,oBAAoB,CAAK;;IAY1B,WAAW,CAChB,KAAK,EAAE,QAAQ,EACf,GAAG,OAAO,EAAE,CAAC,gBAAgB,GAAG,WAAW,CAAC,EAAE,GAC7C,IAAI;IA4BA,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IA0B7C,WAAW,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IAMrC,UAAU,CAAC,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAMxD,gBAAgB,CAAC,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI5D,iBAAiB,IAAI,OAAO;IAK5B,eAAe,IAAI,gBAAgB,EAAE;IAUrC,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO;IAI7C,KAAK,IAAI,IAAI;IAQpB,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,UAAU;IAWlB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAyEzB"}
1
+ {"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../src/schedule.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;KAyBK;AAGL,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAIjD,oBAAY,QAAQ;IAClB,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,WAAW,gBAAgB;CAC5B;AAMD,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AASD,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0C;IACxE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgD;IAC7E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA8C;IAC3E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4C;IAC5E,OAAO,CAAC,oBAAoB,CAAK;;IAY1B,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC,gBAAgB,GAAG,WAAW,CAAC,EAAE,GAAG,IAAI;IA6BlF,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IA2B7C,WAAW,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAMnD,UAAU,CAAC,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAMtE,gBAAgB,CAAC,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI1E,iBAAiB,IAAI,OAAO;IAK5B,eAAe,IAAI,gBAAgB,EAAE;IAUrC,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO;IAI7C,KAAK,IAAI,IAAI;IASpB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,UAAU;IAWlB;;;;OAIG;IACH,OAAO,CAAC,YAAY;CAqDrB"}
package/dist/store.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { EntityID } from './entity';
2
2
  import { ComponentDef, ComponentSchema, ComponentFields, FieldValues } from './component';
3
3
  import { EventDef, EventReader } from './event';
4
- import { ResourceChannel, ResourceDef, ResourceReader } from './resource';
5
4
  import { BitSet, TypedArrayTag } from './type_primitives';
6
5
  import { Archetype } from './archetype';
6
+ import { Query } from './query';
7
7
  export declare class Store {
8
8
  private readonly entity_generations;
9
9
  private entity_high_water;
@@ -13,8 +13,6 @@ export declare class Store {
13
13
  private component_count;
14
14
  private readonly event_channels;
15
15
  private event_count;
16
- private readonly resource_channels;
17
- private resource_count;
18
16
  private readonly archetypes;
19
17
  private readonly archetype_map;
20
18
  private next_archetype_id;
@@ -29,6 +27,7 @@ export declare class Store {
29
27
  private readonly pending_add_values;
30
28
  private readonly pending_remove_ids;
31
29
  private readonly pending_remove_defs;
30
+ _tick: number;
32
31
  private readonly initial_capacity;
33
32
  constructor(initial_capacity?: number);
34
33
  private arch_get;
@@ -48,6 +47,7 @@ export declare class Store {
48
47
  destroy_entity(id: EntityID): void;
49
48
  is_alive(id: EntityID): boolean;
50
49
  get entity_count(): number;
50
+ private _mark_queries_dirty;
51
51
  destroy_entity_deferred(id: EntityID): void;
52
52
  /** Flush all buffered entity destructions in batch. */
53
53
  flush_destroyed(): void;
@@ -98,14 +98,21 @@ export declare class Store {
98
98
  * push newly-created matching archetypes into, keeping the query always up-to-date.
99
99
  */
100
100
  register_query(include: BitSet, exclude?: BitSet, any_of?: BitSet): Archetype[];
101
+ update_query_ref(result: Archetype[], query: Query<any>): void;
101
102
  get archetype_count(): number;
102
103
  register_event<F extends readonly string[]>(fields: F): EventDef<F>;
103
104
  emit_event<F extends ComponentFields>(def: EventDef<F>, values: Record<string, number>): void;
104
105
  emit_signal(def: EventDef<readonly []>): void;
105
106
  get_event_reader<F extends ComponentFields>(def: EventDef<F>): EventReader<F>;
106
107
  clear_events(): void;
107
- register_resource<F extends readonly string[]>(fields: F, initial: Record<string, number>): ResourceDef<F>;
108
- get_resource_reader<F extends ComponentFields>(def: ResourceDef<F>): ResourceReader<F>;
109
- get_resource_channel(def: ResourceDef<ComponentFields>): ResourceChannel;
108
+ private readonly event_key_map;
109
+ register_event_by_key<F extends readonly string[]>(key: symbol, fields: F): EventDef<F>;
110
+ get_event_def_by_key(key: symbol): EventDef<any>;
111
+ has_event_key(key: symbol): boolean;
112
+ private readonly resource_key_map;
113
+ register_resource(key: symbol, value: unknown): void;
114
+ get_resource(key: symbol): unknown;
115
+ set_resource(key: symbol, value: unknown): void;
116
+ has_resource(key: symbol): boolean;
110
117
  }
111
118
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../src/system.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;KAcK;AAEL,OAAO,EACL,KAAK,EAGN,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAElD,eAAO,MAAM,YAAY,UAAW,MAAM,aAKvC,CAAC;AAEJ,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;AAExE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,QAAQ,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,gBAAiB,SAAQ,QAAQ,CAAC,YAAY,CAAC;IAC9D,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;CACvB"}
1
+ {"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../src/system.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;KAcK;AAEL,OAAO,EAAE,KAAK,EAA8C,MAAM,mBAAmB,CAAC;AACtF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAElD,eAAO,MAAM,YAAY,UAAW,MAAM,aAKvC,CAAC;AAEJ,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;AAExE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,QAAQ,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,gBAAiB,SAAQ,QAAQ,CAAC,YAAY,CAAC;IAC9D,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;CACvB"}
@@ -9,6 +9,7 @@
9
9
  ***/
10
10
  export declare const is_non_negative_integer: (v: number) => boolean;
11
11
  export declare const is_non_null: (v: unknown) => boolean;
12
+ export declare function assert_non_null<T>(value: T): asserts value is NonNullable<T>;
12
13
  export declare function assert<T, Result extends T = T>(value: T, condition: (v: T) => v is Result, err_message: string): asserts value is Result;
13
14
  export declare function validate_and_cast<T, Result extends T = T>(value: T, validator: (v: T) => boolean, err_message: string): Result;
14
15
  export declare function unsafe_cast<T>(value: unknown): T;
@@ -1 +1 @@
1
- {"version":3,"file":"assertions.d.ts","sourceRoot":"","sources":["../../src/type_primitives/assertions.ts"],"names":[],"mappings":"AAAA;;;;;;;;KAQK;AAIL,eAAO,MAAM,uBAAuB,MAAO,MAAM,KAAG,OACrB,CAAC;AAEhC,eAAO,MAAM,WAAW,MAAO,OAAO,KAAG,OAAqB,CAAC;AAE/D,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,SAAS,CAAC,GAAG,CAAC,EAC5C,KAAK,EAAE,CAAC,EACR,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,MAAM,EAChC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,KAAK,IAAI,MAAM,CAOzB;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,SAAS,CAAC,GAAG,CAAC,EACvD,KAAK,EAAE,CAAC,EACR,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,EAC5B,WAAW,EAAE,MAAM,GAClB,MAAM,CAQR;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAEhD"}
1
+ {"version":3,"file":"assertions.d.ts","sourceRoot":"","sources":["../../src/type_primitives/assertions.ts"],"names":[],"mappings":"AAAA;;;;;;;;KAQK;AAIL,eAAO,MAAM,uBAAuB,MAAO,MAAM,KAAG,OAAwC,CAAC;AAE7F,eAAO,MAAM,WAAW,MAAO,OAAO,KAAG,OAAqB,CAAC;AAE/D,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,CAU5E;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,SAAS,CAAC,GAAG,CAAC,EAC5C,KAAK,EAAE,CAAC,EACR,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,MAAM,EAChC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,KAAK,IAAI,MAAM,CAOzB;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,SAAS,CAAC,GAAG,CAAC,EACvD,KAAK,EAAE,CAAC,EACR,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,EAC5B,WAAW,EAAE,MAAM,GAClB,MAAM,CAQR;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAEhD"}
@@ -0,0 +1,33 @@
1
+ /***
2
+ * BinaryHeap — generic array-backed binary heap with configurable ordering.
3
+ *
4
+ * Array layout uses implicit indexing: root at index 0, children of node `i`
5
+ * at `2i + 1` and `2i + 2`, parent of node `i` at `(i - 1) >> 1`.
6
+ *
7
+ * The comparator determines ordering: when `compare(a, b) < 0`, `a` has
8
+ * higher priority and floats toward the root. A standard `(a, b) => a - b`
9
+ * comparator yields a min-heap; `(a, b) => b - a` yields a max-heap.
10
+ *
11
+ * push and pop are O(log n). peek and clear are O(1).
12
+ *
13
+ ***/
14
+ export type CompareFn<T> = (a: T, b: T) => number;
15
+ export declare class BinaryHeap<T> {
16
+ private readonly _compare;
17
+ private readonly _data;
18
+ constructor(compare: CompareFn<T>);
19
+ get size(): number;
20
+ /** Returns the highest-priority element without removing it, or undefined if empty. */
21
+ peek(): T | undefined;
22
+ /** Inserts a value and restores heap order by sifting up. O(log n). */
23
+ push(value: T): void;
24
+ /** Removes and returns the highest-priority element, or undefined if empty. O(log n). */
25
+ pop(): T | undefined;
26
+ /** Removes all elements. O(1). */
27
+ clear(): void;
28
+ /** Moves a node up toward the root until heap order is restored. */
29
+ private _sift_up;
30
+ /** Moves a node down away from the root until heap order is restored. */
31
+ private _sift_down;
32
+ }
33
+ //# sourceMappingURL=binary_heap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary_heap.d.ts","sourceRoot":"","sources":["../../../src/type_primitives/binary_heap/binary_heap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;KAYK;AAEL,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC;AAElD,qBAAa,UAAU,CAAC,CAAC;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;gBAErB,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAIjC,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,uFAAuF;IAChF,IAAI,IAAI,CAAC,GAAG,SAAS;IAI5B,uEAAuE;IAChE,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAK3B,yFAAyF;IAClF,GAAG,IAAI,CAAC,GAAG,SAAS;IAc3B,kCAAkC;IAC3B,KAAK,IAAI,IAAI;IAIpB,oEAAoE;IACpE,OAAO,CAAC,QAAQ;IAchB,yEAAyE;IACzE,OAAO,CAAC,UAAU;CAsBnB"}
@@ -14,6 +14,11 @@
14
14
  * clear: word &= ~(1 << offset)
15
15
  *
16
16
  ***/
17
+ export declare const BITS_PER_WORD = 32;
18
+ export declare const BITS_PER_WORD_SHIFT = 5;
19
+ export declare const BITS_PER_WORD_MASK = 31;
20
+ export declare const FNV_OFFSET_BASIS = 2166136261;
21
+ export declare const FNV_PRIME = 16777619;
17
22
  export declare class BitSet {
18
23
  _words: number[];
19
24
  constructor(words?: number[]);
@@ -1 +1 @@
1
- {"version":3,"file":"bitset.d.ts","sourceRoot":"","sources":["../../../src/type_primitives/bitset/bitset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;KAeK;AAWL,qBAAa,MAAM;IACV,MAAM,EAAE,MAAM,EAAE,CAAC;gBAEZ,KAAK,CAAC,EAAE,MAAM,EAAE;IAIrB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAMzB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMtB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAM/B,8EAA8E;IACvE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAUvC,+EAA+E;IACxE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAehC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAa9B,IAAI,IAAI,MAAM;IAId,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAUlC,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAS3C,0GAA0G;IACnG,IAAI,IAAI,MAAM;IAarB,0DAA0D;IACnD,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAmBhD,OAAO,CAAC,IAAI;CAOb"}
1
+ {"version":3,"file":"bitset.d.ts","sourceRoot":"","sources":["../../../src/type_primitives/bitset/bitset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;KAeK;AAGL,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAGrC,eAAO,MAAM,gBAAgB,aAAa,CAAC;AAC3C,eAAO,MAAM,SAAS,WAAa,CAAC;AAIpC,qBAAa,MAAM;IACV,MAAM,EAAE,MAAM,EAAE,CAAC;gBAEZ,KAAK,CAAC,EAAE,MAAM,EAAE;IAIrB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAMzB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMtB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAM/B,8EAA8E;IACvE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAUvC,+EAA+E;IACxE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAehC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAa9B,IAAI,IAAI,MAAM;IAId,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAUlC,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAS3C,0GAA0G;IACnG,IAAI,IAAI,MAAM;IAarB,0DAA0D;IACnD,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAmBhD,OAAO,CAAC,IAAI;CAOb"}
@@ -1,7 +1,8 @@
1
1
  import { AppError } from '../utils/error';
2
2
  export declare enum TYPE_ERROR {
3
3
  ASSERTION_FAIL_CONDITION = "ASSERTION_FAIL_CONDITION",
4
- VALIDATION_FAIL_CONDITION = "VALIDATION_FAIL_CONDITION"
4
+ VALIDATION_FAIL_CONDITION = "VALIDATION_FAIL_CONDITION",
5
+ ASSERTION_FAIL_NON_NULLABLE = "ASSERTION_FAIL_NON_NULLABLE"
5
6
  }
6
7
  export declare class TypeError extends AppError {
7
8
  readonly category: TYPE_ERROR;
@@ -1 +1 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/type_primitives/error.ts"],"names":[],"mappings":"AAAA;;;;;;KAMK;AAEL,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,oBAAY,UAAU;IACpB,wBAAwB,6BAA6B;IACrD,yBAAyB,8BAA8B;CACxD;AAED,qBAAa,SAAU,SAAQ,QAAQ;aAEnB,QAAQ,EAAE,UAAU;gBAApB,QAAQ,EAAE,UAAU,EACpC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAIpC"}
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/type_primitives/error.ts"],"names":[],"mappings":"AAAA;;;;;;KAMK;AAEL,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,oBAAY,UAAU;IACpB,wBAAwB,6BAA6B;IACrD,yBAAyB,8BAA8B;IACvD,2BAA2B,gCAAgC;CAC5D;AAED,qBAAa,SAAU,SAAQ,QAAQ;aAEnB,QAAQ,EAAE,UAAU;gBAApB,QAAQ,EAAE,UAAU,EACpC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAIpC"}
@@ -5,4 +5,6 @@ export * from './bitset/bitset';
5
5
  export * from './sparse_set/sparse_set';
6
6
  export * from './sparse_map/sparse_map';
7
7
  export * from './typed_arrays/typed_arrays';
8
+ export * from './binary_heap/binary_heap';
9
+ export * from './topological_sort/topological_sort';
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/type_primitives/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/type_primitives/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qCAAqC,CAAC"}
@@ -0,0 +1,25 @@
1
+ /***
2
+ * topological_sort — Kahn's algorithm with a BinaryHeap ready queue.
3
+ *
4
+ * Accepts an arbitrary node set, a dependency edge map, and a tiebreaker
5
+ * comparator used to order nodes that are simultaneously ready (zero in-degree).
6
+ * This makes the output deterministic and priority-driven rather than
7
+ * insertion-order dependent.
8
+ *
9
+ * Throws a built-in TypeError when a cycle is detected, listing the names of
10
+ * the nodes that could not be scheduled.
11
+ *
12
+ ***/
13
+ /**
14
+ * Topologically sorts `nodes` respecting the dependency edges, breaking ties
15
+ * with the supplied comparator.
16
+ *
17
+ * @param nodes - All items to sort.
18
+ * @param edges - Adjacency list: `edges.get(a)` = items that must come after `a`.
19
+ * @param tiebreaker - Comparator for the ready queue (min-heap semantics: lower = higher priority).
20
+ * @param node_name - Optional label function for cycle error messages. Defaults to `String(node)`.
21
+ * @returns Sorted array in topological order.
22
+ * @throws {TypeError} If a cycle is detected among the nodes.
23
+ */
24
+ export declare function topological_sort<T>(nodes: readonly T[], edges: Map<T, T[]>, tiebreaker: (a: T, b: T) => number, node_name?: (node: T) => string): T[];
25
+ //# sourceMappingURL=topological_sort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"topological_sort.d.ts","sourceRoot":"","sources":["../../../src/type_primitives/topological_sort/topological_sort.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;KAWK;AAIL;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,KAAK,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAClB,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,EAClC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAC9B,CAAC,EAAE,CA8DL"}
@@ -10,6 +10,8 @@
10
10
  * component columns can be allocated by tag.
11
11
  *
12
12
  ***/
13
+ export declare const DEFAULT_INITIAL_CAPACITY = 16;
14
+ export declare const GROWTH_FACTOR = 2;
13
15
  export type TypedArrayTag = "f32" | "f64" | "i8" | "i16" | "i32" | "u8" | "u16" | "u32";
14
16
  export type AnyTypedArray = Float32Array | Float64Array | Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array;
15
17
  export declare class GrowableTypedArray<T extends AnyTypedArray> {
@@ -1 +1 @@
1
- {"version":3,"file":"typed_arrays.d.ts","sourceRoot":"","sources":["../../../src/type_primitives/typed_arrays/typed_arrays.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;KAWK;AAOL,MAAM,MAAM,aAAa,GACrB,KAAK,GACL,KAAK,GACL,IAAI,GACJ,KAAK,GACL,KAAK,GACL,IAAI,GACJ,KAAK,GACL,KAAK,CAAC;AAEV,MAAM,MAAM,aAAa,GACrB,YAAY,GACZ,YAAY,GACZ,SAAS,GACT,UAAU,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,WAAW,CAAC;AAEhB,qBAAa,kBAAkB,CAAC,CAAC,SAAS,aAAa;IAKnD,OAAO,CAAC,QAAQ,CAAC,KAAK;IAJxB,OAAO,CAAC,IAAI,CAAI;IAChB,OAAO,CAAC,IAAI,CAAK;gBAGE,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC,EAC5C,gBAAgB,SAA2B;IAK7C,IAAW,MAAM,IAAI,MAAM,CAE1B;IAEM,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzB,GAAG,IAAI,MAAM;IAIb,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAItB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7C;;;OAGG;IACI,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAM9B,KAAK,IAAI,IAAI;IAIpB;;;;OAIG;IACH,IAAW,GAAG,IAAI,CAAC,CAElB;IAED;;;OAGG;IACI,IAAI,IAAI,CAAC;IAIhB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC;IAYrC,uFAAuF;IAChF,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAS9C;;;OAGG;IACI,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAMnE,8CAA8C;IACvC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM9C,OAAO,CAAC,KAAK;CAKd;AAED,qBAAa,oBAAqB,SAAQ,kBAAkB,CAAC,YAAY,CAAC;gBAC5D,gBAAgB,SAA2B;CAGxD;AAED,qBAAa,oBAAqB,SAAQ,kBAAkB,CAAC,YAAY,CAAC;gBAC5D,gBAAgB,SAA2B;CAGxD;AAED,qBAAa,iBAAkB,SAAQ,kBAAkB,CAAC,SAAS,CAAC;gBACtD,gBAAgB,SAA2B;CAGxD;AAED,qBAAa,kBAAmB,SAAQ,kBAAkB,CAAC,UAAU,CAAC;gBACxD,gBAAgB,SAA2B;CAGxD;AAED,qBAAa,kBAAmB,SAAQ,kBAAkB,CAAC,UAAU,CAAC;gBACxD,gBAAgB,SAA2B;CAGxD;AAED,qBAAa,kBAAmB,SAAQ,kBAAkB,CAAC,UAAU,CAAC;gBACxD,gBAAgB,SAA2B;CAGxD;AAED,qBAAa,mBAAoB,SAAQ,kBAAkB,CAAC,WAAW,CAAC;gBAC1D,gBAAgB,SAA2B;CAGxD;AAED,qBAAa,mBAAoB,SAAQ,kBAAkB,CAAC,WAAW,CAAC;gBAC1D,gBAAgB,SAA2B;CAGxD;AAED,eAAO,MAAM,aAAa;;;;;;;;;CAYzB,CAAC"}
1
+ {"version":3,"file":"typed_arrays.d.ts","sourceRoot":"","sources":["../../../src/type_primitives/typed_arrays/typed_arrays.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;KAWK;AAEL,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;AAExF,MAAM,MAAM,aAAa,GACrB,YAAY,GACZ,YAAY,GACZ,SAAS,GACT,UAAU,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,WAAW,CAAC;AAEhB,qBAAa,kBAAkB,CAAC,CAAC,SAAS,aAAa;IAKnD,OAAO,CAAC,QAAQ,CAAC,KAAK;IAJxB,OAAO,CAAC,IAAI,CAAI;IAChB,OAAO,CAAC,IAAI,CAAK;gBAGE,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC,EAC5C,gBAAgB,SAAK;IAKvB,IAAW,MAAM,IAAI,MAAM,CAE1B;IAEM,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzB,GAAG,IAAI,MAAM;IAIb,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAItB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7C;;;OAGG;IACI,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAM9B,KAAK,IAAI,IAAI;IAIpB;;;;OAIG;IACH,IAAW,GAAG,IAAI,CAAC,CAElB;IAED;;;OAGG;IACI,IAAI,IAAI,CAAC;IAIhB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC;IAYrC,uFAAuF;IAChF,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAS9C;;;OAGG;IACI,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAMnE,8CAA8C;IACvC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM9C,OAAO,CAAC,KAAK;CAKd;AAED,qBAAa,oBAAqB,SAAQ,kBAAkB,CAAC,YAAY,CAAC;gBAC5D,gBAAgB,SAA2B;CAGxD;AAED,qBAAa,oBAAqB,SAAQ,kBAAkB,CAAC,YAAY,CAAC;gBAC5D,gBAAgB,SAA2B;CAGxD;AAED,qBAAa,iBAAkB,SAAQ,kBAAkB,CAAC,SAAS,CAAC;gBACtD,gBAAgB,SAA2B;CAGxD;AAED,qBAAa,kBAAmB,SAAQ,kBAAkB,CAAC,UAAU,CAAC;gBACxD,gBAAgB,SAA2B;CAGxD;AAED,qBAAa,kBAAmB,SAAQ,kBAAkB,CAAC,UAAU,CAAC;gBACxD,gBAAgB,SAA2B;CAGxD;AAED,qBAAa,kBAAmB,SAAQ,kBAAkB,CAAC,UAAU,CAAC;gBACxD,gBAAgB,SAA2B;CAGxD;AAED,qBAAa,mBAAoB,SAAQ,kBAAkB,CAAC,WAAW,CAAC;gBAC1D,gBAAgB,SAA2B;CAGxD;AAED,qBAAa,mBAAoB,SAAQ,kBAAkB,CAAC,WAAW,CAAC;gBAC1D,gBAAgB,SAA2B;CAGxD;AAED,eAAO,MAAM,aAAa;;;;;;;;;CASyE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"arrays.d.ts","sourceRoot":"","sources":["../../src/utils/arrays.ts"],"names":[],"mappings":"AAAA;;KAEK;AAEL,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,CAAC,EAC3B,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EACrB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,CAAC,GACP,IAAI,CAON"}
1
+ {"version":3,"file":"arrays.d.ts","sourceRoot":"","sources":["../../src/utils/arrays.ts"],"names":[],"mappings":"AAAA;;KAEK;AAEL,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAOjF"}
@@ -1,17 +1,9 @@
1
1
  export declare const UNASSIGNED = -1;
2
2
  export declare const NO_SWAP = -1;
3
3
  export declare const EMPTY_VALUES: Record<string, number>;
4
- export declare const BITS_PER_WORD_SHIFT = 5;
5
- export declare const BITS_PER_WORD_MASK = 31;
6
- export declare const BITS_PER_WORD = 32;
7
- export declare const FNV_OFFSET_BASIS = 2166136261;
8
- export declare const FNV_PRIME = 16777619;
9
4
  export declare const HASH_GOLDEN_RATIO = 2654435769;
10
5
  export declare const HASH_SECONDARY_PRIME = 1367130551;
11
- export declare const DEFAULT_INITIAL_CAPACITY = 16;
12
- export declare const GROWTH_FACTOR = 2;
13
6
  export declare const DEFAULT_COLUMN_CAPACITY = 1024;
14
- export declare const RESOURCE_ROW = 0;
15
7
  export declare const INITIAL_GENERATION = 0;
16
8
  export declare const TOTAL_PACKED_BITS = 31;
17
9
  export declare const DEFAULT_FIXED_TIMESTEP: number;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,OAAO,KAAK,CAAC;AAC1B,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAsC,CAAC;AAGvF,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,aAAa,KAAK,CAAC;AAGhC,eAAO,MAAM,gBAAgB,aAAa,CAAC;AAC3C,eAAO,MAAM,SAAS,WAAa,CAAC;AAGpC,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAC5C,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAG/C,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,aAAa,IAAI,CAAC;AAG/B,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAG5C,eAAO,MAAM,YAAY,IAAI,CAAC;AAG9B,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAGpC,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAC7C,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAGzC,eAAO,MAAM,kBAAkB,IAAI,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,OAAO,KAAK,CAAC;AAC1B,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAsC,CAAC;AAGvF,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAC5C,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAG/C,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAG5C,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAGpC,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAC7C,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAGzC,eAAO,MAAM,kBAAkB,IAAI,CAAC"}
@@ -11,7 +11,10 @@ export declare enum ECS_ERROR {
11
11
  CIRCULAR_SYSTEM_DEPENDENCY = "CIRCULAR_SYSTEM_DEPENDENCY",
12
12
  DUPLICATE_SYSTEM = "DUPLICATE_SYSTEM",
13
13
  ARCHETYPE_NOT_FOUND = "ARCHETYPE_NOT_FOUND",
14
- RESOURCE_NOT_REGISTERED = "RESOURCE_NOT_REGISTERED"
14
+ RESOURCE_NOT_REGISTERED = "RESOURCE_NOT_REGISTERED",
15
+ RESOURCE_ALREADY_REGISTERED = "RESOURCE_ALREADY_REGISTERED",
16
+ EVENT_ALREADY_REGISTERED = "EVENT_ALREADY_REGISTERED",
17
+ EVENT_NOT_REGISTERED = "EVENT_NOT_REGISTERED"
15
18
  }
16
19
  export declare class ECSError extends AppError {
17
20
  readonly category: ECS_ERROR;
@@ -1 +1 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/utils/error.ts"],"names":[],"mappings":"AAAA,8BAAsB,QAAS,SAAQ,KAAK;aAGxB,cAAc,EAAE,OAAO;aACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAFjD,OAAO,EAAE,MAAM,EACC,cAAc,EAAE,OAAO,EACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAMpD;AAED,oBAAY,SAAS;IACnB,sBAAsB,2BAA2B;IACjD,oBAAoB,yBAAyB;IAC7C,wBAAwB,6BAA6B;IACrD,gBAAgB,qBAAqB;IACrC,0BAA0B,+BAA+B;IACzD,gBAAgB,qBAAqB;IACrC,mBAAmB,wBAAwB;IAC3C,uBAAuB,4BAA4B;CACpD;AAED,qBAAa,QAAS,SAAQ,QAAQ;aAElB,QAAQ,EAAE,SAAS;gBAAnB,QAAQ,EAAE,SAAS,EACnC,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAIpC;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAE9D"}
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/utils/error.ts"],"names":[],"mappings":"AAAA,8BAAsB,QAAS,SAAQ,KAAK;aAGxB,cAAc,EAAE,OAAO;aACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAFjD,OAAO,EAAE,MAAM,EACC,cAAc,EAAE,OAAO,EACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAMpD;AAED,oBAAY,SAAS;IACnB,sBAAsB,2BAA2B;IACjD,oBAAoB,yBAAyB;IAC7C,wBAAwB,6BAA6B;IACrD,gBAAgB,qBAAqB;IACrC,0BAA0B,+BAA+B;IACzD,gBAAgB,qBAAqB;IACrC,mBAAmB,wBAAwB;IAC3C,uBAAuB,4BAA4B;IACnD,2BAA2B,gCAAgC;IAC3D,wBAAwB,6BAA6B;IACrD,oBAAoB,yBAAyB;CAC9C;AAED,qBAAa,QAAS,SAAQ,QAAQ;aAElB,QAAQ,EAAE,SAAS;gBAAnB,QAAQ,EAAE,SAAS,EACnC,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAIpC;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAE9D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oasys/oecs",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "description": "Archetype-based Entity Component System",
5
5
  "type": "module",
6
6
  "exports": {