@oasys/oecs 0.3.1 → 0.5.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.
- package/CHANGELOG.md +553 -0
- package/README.md +207 -267
- package/dist/core/ecs/access_check.d.cts +77 -0
- package/dist/core/ecs/access_check.d.ts +77 -0
- package/dist/core/ecs/access_check.d.ts.map +1 -0
- package/dist/core/ecs/archetype.d.cts +486 -0
- package/dist/core/ecs/archetype.d.ts +486 -0
- package/dist/core/ecs/archetype.d.ts.map +1 -0
- package/dist/core/ecs/archetype_graph.d.cts +96 -0
- package/dist/core/ecs/archetype_graph.d.ts +96 -0
- package/dist/core/ecs/archetype_graph.d.ts.map +1 -0
- package/dist/core/ecs/builtin_relations.d.cts +43 -0
- package/dist/core/ecs/builtin_relations.d.ts +43 -0
- package/dist/core/ecs/builtin_relations.d.ts.map +1 -0
- package/dist/core/ecs/command_log.d.cts +116 -0
- package/dist/core/ecs/command_log.d.ts +116 -0
- package/dist/core/ecs/command_log.d.ts.map +1 -0
- package/dist/core/ecs/component.d.cts +176 -0
- package/dist/core/ecs/component.d.ts +176 -0
- package/dist/core/ecs/component.d.ts.map +1 -0
- package/dist/core/ecs/compute_backend.d.cts +37 -0
- package/dist/core/ecs/compute_backend.d.ts +37 -0
- package/dist/core/ecs/compute_backend.d.ts.map +1 -0
- package/dist/core/ecs/debug_names.d.cts +7 -0
- package/dist/core/ecs/debug_names.d.ts +7 -0
- package/dist/core/ecs/debug_names.d.ts.map +1 -0
- package/dist/core/ecs/deferred_commands.d.cts +55 -0
- package/dist/core/ecs/deferred_commands.d.ts +55 -0
- package/dist/core/ecs/deferred_commands.d.ts.map +1 -0
- package/dist/core/ecs/dispatch_trace.d.cts +93 -0
- package/dist/core/ecs/dispatch_trace.d.ts +93 -0
- package/dist/core/ecs/dispatch_trace.d.ts.map +1 -0
- package/dist/core/ecs/ecs.d.cts +562 -0
- package/dist/core/ecs/ecs.d.ts +562 -0
- package/dist/core/ecs/ecs.d.ts.map +1 -0
- package/dist/core/ecs/ecs_memory.d.cts +179 -0
- package/dist/core/ecs/ecs_memory.d.ts +179 -0
- package/dist/core/ecs/ecs_memory.d.ts.map +1 -0
- package/dist/core/ecs/entity.d.cts +34 -0
- package/dist/core/ecs/entity.d.ts +34 -0
- package/dist/core/ecs/entity.d.ts.map +1 -0
- package/dist/core/ecs/entity_allocator.d.cts +59 -0
- package/dist/core/ecs/entity_allocator.d.ts +59 -0
- package/dist/core/ecs/entity_allocator.d.ts.map +1 -0
- package/dist/core/ecs/event.d.cts +79 -0
- package/dist/core/ecs/event.d.ts +79 -0
- package/dist/core/ecs/event.d.ts.map +1 -0
- package/dist/core/ecs/event_registry.d.cts +22 -0
- package/dist/core/ecs/event_registry.d.ts +22 -0
- package/dist/core/ecs/event_registry.d.ts.map +1 -0
- package/dist/core/ecs/facades.d.cts +158 -0
- package/dist/core/ecs/facades.d.ts +158 -0
- package/dist/core/ecs/facades.d.ts.map +1 -0
- package/dist/core/ecs/frame_stepper.d.cts +58 -0
- package/dist/core/ecs/frame_stepper.d.ts +58 -0
- package/dist/core/ecs/frame_stepper.d.ts.map +1 -0
- package/dist/core/ecs/frame_trace.d.cts +133 -0
- package/dist/core/ecs/frame_trace.d.ts +133 -0
- package/dist/core/ecs/frame_trace.d.ts.map +1 -0
- package/dist/core/ecs/host_commands.d.cts +274 -0
- package/dist/core/ecs/host_commands.d.ts +274 -0
- package/dist/core/ecs/host_commands.d.ts.map +1 -0
- package/dist/core/ecs/index.d.cts +46 -0
- package/dist/core/ecs/index.d.ts +46 -0
- package/dist/core/ecs/index.d.ts.map +1 -0
- package/dist/core/ecs/observer.d.cts +173 -0
- package/dist/core/ecs/observer.d.ts +173 -0
- package/dist/core/ecs/observer.d.ts.map +1 -0
- package/dist/core/ecs/query.d.cts +718 -0
- package/dist/core/ecs/query.d.ts +718 -0
- package/dist/core/ecs/query.d.ts.map +1 -0
- package/dist/core/ecs/ref.d.cts +31 -0
- package/dist/core/ecs/ref.d.ts +31 -0
- package/dist/core/ecs/ref.d.ts.map +1 -0
- package/dist/core/ecs/relation.d.cts +243 -0
- package/dist/core/ecs/relation.d.ts +243 -0
- package/dist/core/ecs/relation.d.ts.map +1 -0
- package/dist/core/ecs/relation_service.d.cts +235 -0
- package/dist/core/ecs/relation_service.d.ts +235 -0
- package/dist/core/ecs/relation_service.d.ts.map +1 -0
- package/dist/core/ecs/resource.d.cts +53 -0
- package/dist/core/ecs/resource.d.ts +53 -0
- package/dist/core/ecs/resource.d.ts.map +1 -0
- package/dist/core/ecs/resource_registry.d.cts +20 -0
- package/dist/core/ecs/resource_registry.d.ts +20 -0
- package/dist/core/ecs/resource_registry.d.ts.map +1 -0
- package/dist/core/ecs/resume.d.cts +85 -0
- package/dist/core/ecs/resume.d.ts +85 -0
- package/dist/core/ecs/resume.d.ts.map +1 -0
- package/dist/core/ecs/run_condition.d.cts +81 -0
- package/dist/core/ecs/run_condition.d.ts +81 -0
- package/dist/core/ecs/run_condition.d.ts.map +1 -0
- package/dist/core/ecs/schedule.d.cts +142 -0
- package/dist/core/ecs/schedule.d.ts +142 -0
- package/dist/core/ecs/schedule.d.ts.map +1 -0
- package/dist/core/ecs/snapshot_service.d.cts +94 -0
- package/dist/core/ecs/snapshot_service.d.ts +94 -0
- package/dist/core/ecs/snapshot_service.d.ts.map +1 -0
- package/dist/core/ecs/sparse_store.d.cts +110 -0
- package/dist/core/ecs/sparse_store.d.ts +110 -0
- package/dist/core/ecs/sparse_store.d.ts.map +1 -0
- package/dist/core/ecs/store.d.cts +950 -0
- package/dist/core/ecs/store.d.ts +950 -0
- package/dist/core/ecs/store.d.ts.map +1 -0
- package/dist/core/ecs/store_layout_listener.d.cts +23 -0
- package/dist/core/ecs/store_layout_listener.d.ts +23 -0
- package/dist/core/ecs/store_layout_listener.d.ts.map +1 -0
- package/dist/core/ecs/system.d.cts +250 -0
- package/dist/core/ecs/system.d.ts +250 -0
- package/dist/core/ecs/system.d.ts.map +1 -0
- package/dist/core/ecs/utils/arrays.d.cts +7 -0
- package/dist/{utils → core/ecs/utils}/arrays.d.ts +2 -1
- package/dist/core/ecs/utils/arrays.d.ts.map +1 -0
- package/dist/core/ecs/utils/constants.d.ts +12 -0
- package/dist/core/ecs/utils/constants.d.ts.map +1 -0
- package/dist/core/ecs/utils/error.d.cts +61 -0
- package/dist/core/ecs/utils/error.d.ts +61 -0
- package/dist/core/ecs/utils/error.d.ts.map +1 -0
- package/dist/core/store/action_ring.d.cts +136 -0
- package/dist/core/store/action_ring.d.ts +136 -0
- package/dist/core/store/action_ring.d.ts.map +1 -0
- package/dist/core/store/allocator.d.cts +238 -0
- package/dist/core/store/allocator.d.ts +238 -0
- package/dist/core/store/allocator.d.ts.map +1 -0
- package/dist/core/store/buffer_backed_column.d.cts +69 -0
- package/dist/core/store/buffer_backed_column.d.ts +69 -0
- package/dist/core/store/buffer_backed_column.d.ts.map +1 -0
- package/dist/core/store/column_store.d.cts +273 -0
- package/dist/core/store/column_store.d.ts +273 -0
- package/dist/core/store/column_store.d.ts.map +1 -0
- package/dist/core/store/command_dispatch.d.cts +52 -0
- package/dist/core/store/command_dispatch.d.ts +52 -0
- package/dist/core/store/command_dispatch.d.ts.map +1 -0
- package/dist/core/store/command_ring.d.cts +107 -0
- package/dist/core/store/command_ring.d.ts +107 -0
- package/dist/core/store/command_ring.d.ts.map +1 -0
- package/dist/core/store/descriptor.d.cts +80 -0
- package/dist/core/store/descriptor.d.ts +80 -0
- package/dist/core/store/descriptor.d.ts.map +1 -0
- package/dist/core/store/entity_index.d.cts +108 -0
- package/dist/core/store/entity_index.d.ts +108 -0
- package/dist/core/store/entity_index.d.ts.map +1 -0
- package/dist/core/store/event_ring.d.cts +95 -0
- package/dist/core/store/event_ring.d.ts +95 -0
- package/dist/core/store/event_ring.d.ts.map +1 -0
- package/dist/core/store/extend.d.cts +39 -0
- package/dist/core/store/extend.d.ts +39 -0
- package/dist/core/store/extend.d.ts.map +1 -0
- package/dist/core/store/grow.d.cts +34 -0
- package/dist/core/store/grow.d.ts +34 -0
- package/dist/core/store/grow.d.ts.map +1 -0
- package/dist/core/store/header.d.cts +64 -0
- package/dist/core/store/header.d.ts +64 -0
- package/dist/core/store/header.d.ts.map +1 -0
- package/dist/core/store/index.d.cts +17 -0
- package/dist/core/store/index.d.ts +17 -0
- package/dist/core/store/index.d.ts.map +1 -0
- package/dist/core/store/layout_ops.d.cts +152 -0
- package/dist/core/store/layout_ops.d.ts +152 -0
- package/dist/core/store/layout_ops.d.ts.map +1 -0
- package/dist/core/store/region_table.d.cts +74 -0
- package/dist/core/store/region_table.d.ts +74 -0
- package/dist/core/store/region_table.d.ts.map +1 -0
- package/dist/core/store/snapshot.d.cts +43 -0
- package/dist/core/store/snapshot.d.ts +43 -0
- package/dist/core/store/snapshot.d.ts.map +1 -0
- package/dist/core/store/state_hash.d.cts +38 -0
- package/dist/core/store/state_hash.d.ts +38 -0
- package/dist/core/store/state_hash.d.ts.map +1 -0
- package/dist/core/store/store_regions.d.cts +38 -0
- package/dist/core/store/store_regions.d.ts +38 -0
- package/dist/core/store/store_regions.d.ts.map +1 -0
- package/dist/core/store/vendored_abi/abi.d.cts +43 -0
- package/dist/core/store/vendored_abi/abi.d.ts +43 -0
- package/dist/core/store/vendored_abi/abi.d.ts.map +1 -0
- package/dist/dev_flag.d.cts +17 -0
- package/dist/dev_flag.d.ts +17 -0
- package/dist/dev_flag.d.ts.map +1 -0
- package/dist/extensions/editor/editor.d.cts +170 -0
- package/dist/extensions/editor/editor.d.ts +170 -0
- package/dist/extensions/editor/editor.d.ts.map +1 -0
- package/dist/extensions/editor/field_handle.d.cts +40 -0
- package/dist/extensions/editor/field_handle.d.ts +40 -0
- package/dist/extensions/editor/field_handle.d.ts.map +1 -0
- package/dist/extensions/editor/index.cjs +1 -0
- package/dist/extensions/editor/index.d.cts +21 -0
- package/dist/extensions/editor/index.d.ts +21 -0
- package/dist/extensions/editor/index.d.ts.map +1 -0
- package/dist/extensions/editor/index.js +237 -0
- package/dist/extensions/reactive/ecs_sync.d.cts +214 -0
- package/dist/extensions/reactive/ecs_sync.d.ts +214 -0
- package/dist/extensions/reactive/ecs_sync.d.ts.map +1 -0
- package/dist/extensions/reactive/index.cjs +1 -0
- package/dist/extensions/reactive/index.d.cts +23 -0
- package/dist/extensions/reactive/index.d.ts +23 -0
- package/dist/extensions/reactive/index.d.ts.map +1 -0
- package/dist/extensions/reactive/index.js +215 -0
- package/dist/extensions/solid/index.cjs +1 -0
- package/dist/extensions/solid/index.d.cts +6 -0
- package/dist/extensions/solid/index.d.ts +6 -0
- package/dist/extensions/solid/index.d.ts.map +1 -0
- package/dist/extensions/solid/index.js +36 -0
- package/dist/extensions/solid/kernel_solid.d.cts +45 -0
- package/dist/extensions/solid/kernel_solid.d.ts +45 -0
- package/dist/extensions/solid/kernel_solid.d.ts.map +1 -0
- package/dist/host_commands-BF8QMi3c.cjs +1 -0
- package/dist/host_commands-i4cAeyL5.js +2318 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +66 -0
- package/dist/index.d.ts +65 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7080 -1289
- package/dist/internal.cjs +2 -0
- package/dist/internal.d.cts +20 -0
- package/dist/internal.d.ts +20 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +141 -0
- package/dist/interop-CT-REx0W.cjs +1 -0
- package/dist/interop-CcY6ASQc.js +18 -0
- package/dist/kernel-DgyrLFjW.js +227 -0
- package/dist/kernel-yWV3XnAb.cjs +1 -0
- package/dist/primitives.cjs +1 -0
- package/dist/primitives.d.cts +18 -0
- package/dist/primitives.d.ts +18 -0
- package/dist/primitives.d.ts.map +1 -0
- package/dist/primitives.js +45 -0
- package/dist/reactive/array.d.cts +24 -0
- package/dist/reactive/array.d.ts +24 -0
- package/dist/reactive/array.d.ts.map +1 -0
- package/dist/reactive/index.cjs +1 -0
- package/dist/reactive/index.d.cts +11 -0
- package/dist/reactive/index.d.ts +11 -0
- package/dist/reactive/index.d.ts.map +1 -0
- package/dist/reactive/index.js +18 -0
- package/dist/reactive/interop.d.cts +19 -0
- package/dist/reactive/interop.d.ts +19 -0
- package/dist/reactive/interop.d.ts.map +1 -0
- package/dist/reactive/kernel.d.cts +73 -0
- package/dist/reactive/kernel.d.ts +73 -0
- package/dist/reactive/kernel.d.ts.map +1 -0
- package/dist/reactive/map.d.cts +16 -0
- package/dist/reactive/map.d.ts +16 -0
- package/dist/reactive/map.d.ts.map +1 -0
- package/dist/reactive/shallow.d.cts +11 -0
- package/dist/reactive/shallow.d.ts +11 -0
- package/dist/reactive/shallow.d.ts.map +1 -0
- package/dist/reactive/struct.d.cts +10 -0
- package/dist/reactive/struct.d.ts +10 -0
- package/dist/reactive/struct.d.ts.map +1 -0
- package/dist/shallow-DQ8aG51_.cjs +1 -0
- package/dist/shallow-DfnAm9vG.js +150 -0
- package/dist/shared-BU1Cd40h.js +103 -0
- package/dist/shared-BymrGTyR.cjs +1 -0
- package/dist/shared.cjs +1 -0
- package/dist/shared.d.cts +22 -0
- package/dist/shared.d.ts +22 -0
- package/dist/shared.d.ts.map +1 -0
- package/dist/shared.js +7 -0
- package/dist/topological_sort-BDvEyb9W.cjs +1 -0
- package/dist/topological_sort-DK6EjpWa.js +135 -0
- package/dist/type_primitives/assertions.d.cts +32 -0
- package/dist/type_primitives/assertions.d.ts +25 -9
- package/dist/type_primitives/assertions.d.ts.map +1 -1
- package/dist/type_primitives/binary_heap/binary_heap.d.cts +37 -0
- package/dist/type_primitives/binary_heap/binary_heap.d.ts +6 -2
- package/dist/type_primitives/binary_heap/binary_heap.d.ts.map +1 -1
- package/dist/type_primitives/bitset/bitset.d.cts +54 -0
- package/dist/type_primitives/bitset/bitset.d.ts +16 -4
- package/dist/type_primitives/bitset/bitset.d.ts.map +1 -1
- package/dist/type_primitives/brand.d.cts +23 -0
- package/dist/type_primitives/brand.d.ts +6 -1
- package/dist/type_primitives/brand.d.ts.map +1 -1
- package/dist/type_primitives/error.d.cts +16 -0
- package/dist/type_primitives/error.d.ts +8 -3
- package/dist/type_primitives/error.d.ts.map +1 -1
- package/dist/type_primitives/index.d.cts +13 -0
- package/dist/type_primitives/index.d.ts +12 -9
- package/dist/type_primitives/index.d.ts.map +1 -1
- package/dist/type_primitives/sparse_map/sparse_map.d.cts +30 -0
- package/dist/type_primitives/sparse_map/sparse_map.d.ts +7 -3
- package/dist/type_primitives/sparse_map/sparse_map.d.ts.map +1 -1
- package/dist/type_primitives/sparse_set/sparse_set.d.cts +28 -0
- package/dist/type_primitives/sparse_set/sparse_set.d.ts +4 -0
- package/dist/type_primitives/sparse_set/sparse_set.d.ts.map +1 -1
- package/dist/type_primitives/topological_sort/topological_sort.d.cts +29 -0
- package/dist/type_primitives/topological_sort/topological_sort.d.ts +7 -3
- package/dist/type_primitives/topological_sort/topological_sort.d.ts.map +1 -1
- package/dist/type_primitives/typed_arrays/typed_arrays.d.cts +127 -0
- package/dist/type_primitives/typed_arrays/typed_arrays.d.ts +53 -16
- package/dist/type_primitives/typed_arrays/typed_arrays.d.ts.map +1 -1
- package/dist/typed_arrays-BcXcnzB4.js +258 -0
- package/dist/typed_arrays-D3NmwtCG.cjs +1 -0
- package/dist/utils/error.d.cts +6 -0
- package/dist/utils/error.d.ts +2 -20
- package/dist/utils/error.d.ts.map +1 -1
- package/dist/version.d.cts +10 -0
- package/dist/version.d.ts +10 -0
- package/dist/version.d.ts.map +1 -0
- package/package.json +115 -5
- package/dist/archetype.d.ts +0 -108
- package/dist/archetype.d.ts.map +0 -1
- package/dist/component.d.ts +0 -45
- package/dist/component.d.ts.map +0 -1
- package/dist/ecs.d.ts +0 -104
- package/dist/ecs.d.ts.map +0 -1
- package/dist/entity.d.ts +0 -11
- package/dist/entity.d.ts.map +0 -1
- package/dist/event.d.ts +0 -30
- package/dist/event.d.ts.map +0 -1
- package/dist/query.d.ts +0 -94
- package/dist/query.d.ts.map +0 -1
- package/dist/ref.d.ts +0 -23
- package/dist/ref.d.ts.map +0 -1
- package/dist/resource.d.ts +0 -23
- package/dist/resource.d.ts.map +0 -1
- package/dist/schedule.d.ts +0 -45
- package/dist/schedule.d.ts.map +0 -1
- package/dist/store.d.ts +0 -118
- package/dist/store.d.ts.map +0 -1
- package/dist/system.d.ts +0 -16
- package/dist/system.d.ts.map +0 -1
- package/dist/utils/arrays.d.ts.map +0 -1
- package/dist/utils/constants.d.ts.map +0 -1
- /package/dist/{utils/constants.d.ts → core/ecs/utils/constants.d.cts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* StoreLayoutListener — receives notifications when the engine publishes
|
|
3
|
+
* a new SAB layout. The engine calls `setLayout(headerOff)`:
|
|
4
|
+
*
|
|
5
|
+
* 1. immediately when the listener subscribes (seeds the initial
|
|
6
|
+
* layout), and
|
|
7
|
+
* 2. after every SAB grow / extend (the `view_stamp` republish
|
|
8
|
+
* protocol from #171 §6.1.4 / #224 PR 2B).
|
|
9
|
+
*
|
|
10
|
+
* Any consumer that caches column byte_offs off the layout descriptor
|
|
11
|
+
* MUST invalidate on this call.
|
|
12
|
+
*
|
|
13
|
+
* The interface deliberately has nothing consumer-specific. The engine
|
|
14
|
+
* publishes layouts to whoever subscribes; the consumer owns its own
|
|
15
|
+
* typed wrapper (a compute backend, a Worker proxy, a debug recorder) and
|
|
16
|
+
* drives it from its own code — none of that surface appears on the engine.
|
|
17
|
+
* A `ComputeBackend` (#622) extends this interface, so attaching a backend
|
|
18
|
+
* subscribes it to layout republishes for free; see `compute_backend.ts`.
|
|
19
|
+
*/
|
|
20
|
+
export interface StoreLayoutListener {
|
|
21
|
+
setLayout(headerOff: number): void;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=store_layout_listener.d.ts.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* StoreLayoutListener — receives notifications when the engine publishes
|
|
3
|
+
* a new SAB layout. The engine calls `setLayout(headerOff)`:
|
|
4
|
+
*
|
|
5
|
+
* 1. immediately when the listener subscribes (seeds the initial
|
|
6
|
+
* layout), and
|
|
7
|
+
* 2. after every SAB grow / extend (the `view_stamp` republish
|
|
8
|
+
* protocol from #171 §6.1.4 / #224 PR 2B).
|
|
9
|
+
*
|
|
10
|
+
* Any consumer that caches column byte_offs off the layout descriptor
|
|
11
|
+
* MUST invalidate on this call.
|
|
12
|
+
*
|
|
13
|
+
* The interface deliberately has nothing consumer-specific. The engine
|
|
14
|
+
* publishes layouts to whoever subscribes; the consumer owns its own
|
|
15
|
+
* typed wrapper (a compute backend, a Worker proxy, a debug recorder) and
|
|
16
|
+
* drives it from its own code — none of that surface appears on the engine.
|
|
17
|
+
* A `ComputeBackend` (#622) extends this interface, so attaching a backend
|
|
18
|
+
* subscribes it to layout republishes for free; see `compute_backend.ts`.
|
|
19
|
+
*/
|
|
20
|
+
export interface StoreLayoutListener {
|
|
21
|
+
setLayout(headerOff: number): void;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=store_layout_listener.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store_layout_listener.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/store_layout_listener.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,mBAAmB;IACnC,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC"}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import { Brand } from '../../type_primitives/index.cjs';
|
|
2
|
+
import { ComponentDef } from './component.cjs';
|
|
3
|
+
import { EntityID } from './entity.cjs';
|
|
4
|
+
import { SparseComponentDef } from './sparse_store.cjs';
|
|
5
|
+
import { RelationDef } from './relation.cjs';
|
|
6
|
+
import { ResourceKey } from './resource.cjs';
|
|
7
|
+
import { SystemContext } from './query.cjs';
|
|
8
|
+
import { BackendSystemHandle } from './compute_backend.cjs';
|
|
9
|
+
import { Template } from './store.cjs';
|
|
10
|
+
export type SystemID = Brand<number, "system_id">;
|
|
11
|
+
export declare const asSystemId: (value: number) => SystemID;
|
|
12
|
+
export type SystemFn = (ctx: SystemContext, deltaTime: number) => void;
|
|
13
|
+
/** A pair describing a mid-tick archetype transition.
|
|
14
|
+
* If an entity has every component in `whenHas`, the system may `add`
|
|
15
|
+
* and/or `remove` the listed components, transitioning the entity to a
|
|
16
|
+
* new archetype. Used by Phase C to pre-warm the archetype graph. */
|
|
17
|
+
export interface SystemTransition {
|
|
18
|
+
readonly whenHas: readonly ComponentDef[];
|
|
19
|
+
readonly add?: readonly ComponentDef[];
|
|
20
|
+
readonly remove?: readonly ComponentDef[];
|
|
21
|
+
}
|
|
22
|
+
/** The access declaration as AUTHORED on a `SystemConfig`. `reads` /
|
|
23
|
+
* `writes` are mandatory (empty arrays are explicit, not missing
|
|
24
|
+
* annotations); the rarer structural and resource fields are optional with
|
|
25
|
+
* absent = empty, mirroring the #496 sparse/relation precedent. `spawns`
|
|
26
|
+
* entries and `despawns` accept a `Template` wherever a component list is
|
|
27
|
+
* expected — registration expands it via `_normalizeAccess`. */
|
|
28
|
+
export interface SystemAccessConfig {
|
|
29
|
+
/** Components the system READS but does not write. */
|
|
30
|
+
readonly reads: readonly ComponentDef[];
|
|
31
|
+
/** Components the system WRITES. A write is implicitly also a read. */
|
|
32
|
+
readonly writes: readonly ComponentDef[];
|
|
33
|
+
/** Archetype masks the system spawns entities into. Each entry is the
|
|
34
|
+
* union of components a spawned entity carries at flush time — an
|
|
35
|
+
* explicit def list, or a `Template` (expanded at registration). */
|
|
36
|
+
readonly spawns?: readonly (readonly ComponentDef[] | Template)[];
|
|
37
|
+
/** Components removed via `removeComponent` / `despawn`.
|
|
38
|
+
* `despawn` counts as removing every component on the entity —
|
|
39
|
+
* declare the superset. A `Template` entry expands to its component
|
|
40
|
+
* list, so a "destroys what the spawner spawns" system references the
|
|
41
|
+
* same declaration. */
|
|
42
|
+
readonly despawns?: readonly (ComponentDef | Template)[];
|
|
43
|
+
/** Mid-tick archetype transitions; see SystemTransition. */
|
|
44
|
+
readonly transitions?: readonly SystemTransition[];
|
|
45
|
+
/** Resources the system reads. */
|
|
46
|
+
readonly resourceReads?: readonly ResourceKey<any>[];
|
|
47
|
+
/** Resources the system writes. */
|
|
48
|
+
readonly resourceWrites?: readonly ResourceKey<any>[];
|
|
49
|
+
/** Sparse components the system READS via `getSparseField`
|
|
50
|
+
* (membership probes `hasSparse` are unchecked, mirroring `hasComponent`). */
|
|
51
|
+
readonly sparseReads?: readonly SparseComponentDef[];
|
|
52
|
+
/** Sparse components the system MUTATES via `addSparse` / `removeSparse` /
|
|
53
|
+
* `setSparseField`. A write implies a read. */
|
|
54
|
+
readonly sparseWrites?: readonly SparseComponentDef[];
|
|
55
|
+
/** Relations the system READS via `targetOf` / `targetsOf` / `sourcesOf`
|
|
56
|
+
* (`hasRelation` is unchecked, mirroring `hasComponent`). */
|
|
57
|
+
readonly relationReads?: readonly RelationDef[];
|
|
58
|
+
/** Relations the system MUTATES via `addRelation` / `removeRelation`.
|
|
59
|
+
* A write implies a read. */
|
|
60
|
+
readonly relationWrites?: readonly RelationDef[];
|
|
61
|
+
}
|
|
62
|
+
/** The NORMALIZED access declaration a registered system carries — what
|
|
63
|
+
* `SystemDescriptor` exposes and `accessCheck` / prewarm consume. Produced
|
|
64
|
+
* from the authored `SystemAccessConfig` by `_normalizeAccess`: absent
|
|
65
|
+
* optional fields are the shared frozen empties, and every `Template` in
|
|
66
|
+
* `spawns` / `despawns` is expanded to its component list. */
|
|
67
|
+
export interface SystemAccessDeclaration extends SystemAccessConfig {
|
|
68
|
+
readonly spawns: readonly (readonly ComponentDef[])[];
|
|
69
|
+
readonly despawns: readonly ComponentDef[];
|
|
70
|
+
readonly transitions: readonly SystemTransition[];
|
|
71
|
+
readonly resourceReads: readonly ResourceKey<any>[];
|
|
72
|
+
readonly resourceWrites: readonly ResourceKey<any>[];
|
|
73
|
+
}
|
|
74
|
+
export interface SystemConfig extends SystemAccessConfig {
|
|
75
|
+
fn?(ctx: SystemContext, deltaTime: number): void;
|
|
76
|
+
name?: string;
|
|
77
|
+
onAdded?(ctx: SystemContext): void;
|
|
78
|
+
onRemoved?: () => void;
|
|
79
|
+
dispose?: () => void;
|
|
80
|
+
/** Components the system queries (via a captured `ecs.query(...)`), one
|
|
81
|
+
* group per query.
|
|
82
|
+
* OPTIONAL — when provided, `registerSystem` validates `queries ⊆ reads ∪
|
|
83
|
+
* writes` in `DEV` (#213 Phase D, `_assertQueriesDeclared`): a query term
|
|
84
|
+
* reads each listed component, so this fails fast at registration instead of
|
|
85
|
+
* at the first iteration's `accessCheck`. */
|
|
86
|
+
queries?: readonly (readonly ComponentDef[])[];
|
|
87
|
+
/** Grant this system FULL world access — it may read/write/add/remove/destroy
|
|
88
|
+
* ANY component, sparse, relation, or resource without declaring them. The
|
|
89
|
+
* `DEV` access check is bypassed for its whole span (a no-op in
|
|
90
|
+
* production, where the check is already compiled out). For trusted engine /
|
|
91
|
+
* host machinery that mutates components not known at registration — the
|
|
92
|
+
* host→ECS command-apply system (#681) is the canonical case; a save/load or
|
|
93
|
+
* debug system is another. Bevy's "exclusive system" in spirit: full access,
|
|
94
|
+
* and — under any future parallel scheduler — it would run alone. The schedule
|
|
95
|
+
* is sequential today, so here it is purely the access grant. Use sparingly;
|
|
96
|
+
* a normal system should declare exactly what it touches. */
|
|
97
|
+
exclusive?: boolean;
|
|
98
|
+
/** Opt this system into pluggable-backend execution (#622). When set **and**
|
|
99
|
+
* a `ComputeBackend` is attached to the ECS, the `Schedule` runs
|
|
100
|
+
* `backend.run(backendHandle)` in place of `fn`; otherwise `fn` runs as the
|
|
101
|
+
* TS fallback (a no-op `fn` ⇒ the system is effectively skipped when no
|
|
102
|
+
* backend is attached). The handle is opaque to the engine — minted by the
|
|
103
|
+
* backend. The system still declares its `reads`/`writes` so the access span
|
|
104
|
+
* around the backend call authorises the shared-memory it touches, and so the
|
|
105
|
+
* scheduler can order it. See `ComputeBackend`. */
|
|
106
|
+
backendHandle?: BackendSystemHandle;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* The type-level access record a `SystemContext` is parameterized by. Each
|
|
110
|
+
* field is the UNION of handle types the system declared for that operation
|
|
111
|
+
* (`never` = declared nothing). The interface itself is the permissive
|
|
112
|
+
* default: every field `any`-typed, `destroy` undetermined.
|
|
113
|
+
*/
|
|
114
|
+
export interface SystemAccess {
|
|
115
|
+
read: ComponentDef<any>;
|
|
116
|
+
write: ComponentDef<any>;
|
|
117
|
+
add: ComponentDef<any>;
|
|
118
|
+
remove: ComponentDef<any>;
|
|
119
|
+
destroy: boolean;
|
|
120
|
+
sparseRead: SparseComponentDef<any>;
|
|
121
|
+
sparseWrite: SparseComponentDef<any>;
|
|
122
|
+
relationRead: RelationDef;
|
|
123
|
+
relationWrite: RelationDef;
|
|
124
|
+
resourceRead: ResourceKey<any>;
|
|
125
|
+
resourceWrite: ResourceKey<any>;
|
|
126
|
+
}
|
|
127
|
+
/** `unknown` if `D` is in the system's declared read surface, else an error tuple. */
|
|
128
|
+
export type DeclaredRead<A extends SystemAccess, D> = [D] extends [A["read"]] ? unknown : ["component is not declared in this system's reads/writes", D];
|
|
129
|
+
/** `unknown` if `D` is in the system's declared write surface, else an error tuple. */
|
|
130
|
+
export type DeclaredWrite<A extends SystemAccess, D> = [D] extends [A["write"]] ? unknown : ["component is not declared in this system's writes", D];
|
|
131
|
+
/** `unknown` if `D` is an authorised addComponent target, else an error tuple. */
|
|
132
|
+
export type DeclaredAdd<A extends SystemAccess, D> = [D] extends [A["add"]] ? unknown : ["component is not declared in this system's writes/spawns/transitions.add", D];
|
|
133
|
+
/** `unknown` if `D` is an authorised removeComponent target, else an error tuple. */
|
|
134
|
+
export type DeclaredRemove<A extends SystemAccess, D> = [D] extends [A["remove"]] ? unknown : ["component is not declared in this system's despawns/transitions.remove", D];
|
|
135
|
+
export type DeclaredSparseRead<A extends SystemAccess, D> = [D] extends [A["sparseRead"]] ? unknown : ["sparse component is not declared in this system's sparseReads/sparseWrites", D];
|
|
136
|
+
export type DeclaredSparseWrite<A extends SystemAccess, D> = [D] extends [A["sparseWrite"]] ? unknown : ["sparse component is not declared in this system's sparseWrites", D];
|
|
137
|
+
/** Relations are one nominal type, so this only distinguishes "declared some
|
|
138
|
+
* relation access" from "declared none" — the runtime check owns the rest.
|
|
139
|
+
* Keyed on the call site's inferred `D` (like the component asserts) rather
|
|
140
|
+
* than on `RelationDef` directly: a conditional whose check type is not a
|
|
141
|
+
* signature type parameter resolves under the compiler's variance-annotation
|
|
142
|
+
* validation markers and falsely flags the `out A` declaration (TS2636). */
|
|
143
|
+
export type DeclaredRelationRead<A extends SystemAccess, D> = [D] extends [A["relationRead"]] ? unknown : ["no relation is declared in this system's relationReads/relationWrites"];
|
|
144
|
+
export type DeclaredRelationWrite<A extends SystemAccess, D> = [D] extends [A["relationWrite"]] ? unknown : ["no relation is declared in this system's relationWrites"];
|
|
145
|
+
export type DeclaredResourceRead<A extends SystemAccess, K> = [K] extends [A["resourceRead"]] ? unknown : ["resource key is not declared in this system's resourceReads/resourceWrites", K];
|
|
146
|
+
export type DeclaredResourceWrite<A extends SystemAccess, K> = [K] extends [A["resourceWrite"]] ? unknown : ["resource key is not declared in this system's resourceWrites", K];
|
|
147
|
+
/** `commands.despawn` argument: blocked (with a readable error) only when
|
|
148
|
+
* the access record PROVES no despawns were declared. */
|
|
149
|
+
export type DespawnArg<A extends SystemAccess> = [A["destroy"]] extends [false] ? {
|
|
150
|
+
"this system declares no despawns — despawn is not permitted": never;
|
|
151
|
+
} : EntityID;
|
|
152
|
+
export type DenseAccessDecl = readonly ComponentDef<any>[];
|
|
153
|
+
export type SpawnsAccessDecl = readonly (readonly ComponentDef<any>[] | Template<any>)[];
|
|
154
|
+
export type DespawnsAccessDecl = readonly (ComponentDef<any> | Template<any>)[];
|
|
155
|
+
export type TransitionsAccessDecl = readonly SystemTransition[];
|
|
156
|
+
export type SparseAccessDecl = readonly SparseComponentDef<any>[];
|
|
157
|
+
export type RelationsAccessDecl = readonly RelationDef[];
|
|
158
|
+
export type ResourcesAccessDecl = readonly ResourceKey<any>[];
|
|
159
|
+
type SpawnEntryDefs<E> = E extends Template<infer TDefs> ? TDefs[number] : E extends readonly (infer D)[] ? D : never;
|
|
160
|
+
type DespawnEntryDefs<E> = E extends Template<infer TDefs> ? TDefs[number] : E;
|
|
161
|
+
type TransitionAddDefs<T> = T extends {
|
|
162
|
+
readonly add: readonly (infer D extends ComponentDef<any>)[];
|
|
163
|
+
} ? D : never;
|
|
164
|
+
type TransitionRemoveDefs<T> = T extends {
|
|
165
|
+
readonly remove: readonly (infer D extends ComponentDef<any>)[];
|
|
166
|
+
} ? D : never;
|
|
167
|
+
/**
|
|
168
|
+
* Compute the `SystemAccess` record for a set of declared access lists —
|
|
169
|
+
* the type-level `computeSets` (access_check.ts).
|
|
170
|
+
*/
|
|
171
|
+
export type DeclaredAccess<R extends DenseAccessDecl, W extends DenseAccessDecl, Sp extends SpawnsAccessDecl = readonly never[], De extends DespawnsAccessDecl = readonly never[], Tr extends TransitionsAccessDecl = readonly never[], SR extends SparseAccessDecl = readonly never[], SW extends SparseAccessDecl = readonly never[], RR extends RelationsAccessDecl = readonly never[], RW extends RelationsAccessDecl = readonly never[], QR extends ResourcesAccessDecl = readonly never[], QW extends ResourcesAccessDecl = readonly never[]> = {
|
|
172
|
+
read: R[number] | W[number];
|
|
173
|
+
write: W[number];
|
|
174
|
+
add: W[number] | SpawnEntryDefs<Sp[number]> | TransitionAddDefs<Tr[number]>;
|
|
175
|
+
remove: DespawnEntryDefs<De[number]> | TransitionRemoveDefs<Tr[number]>;
|
|
176
|
+
destroy: [De[number]] extends [never] ? false : true;
|
|
177
|
+
sparseRead: SR[number] | SW[number];
|
|
178
|
+
sparseWrite: SW[number];
|
|
179
|
+
relationRead: RR[number] | RW[number];
|
|
180
|
+
relationWrite: RW[number];
|
|
181
|
+
resourceRead: QR[number] | QW[number];
|
|
182
|
+
resourceWrite: QW[number];
|
|
183
|
+
};
|
|
184
|
+
/**
|
|
185
|
+
* The config shape the typed `registerSystem` overload infers. Structurally a
|
|
186
|
+
* `SystemConfig`, but every declaration list is its own type parameter (one
|
|
187
|
+
* inference site each — inferring a single config-object type parameter breaks
|
|
188
|
+
* contextual typing of `fn`), `queries` is constrained to `reads ∪ writes`
|
|
189
|
+
* (the compile-time Phase D lint), and `fn` / `onAdded` receive the narrowed
|
|
190
|
+
* context. `fn` and `onAdded` use METHOD syntax deliberately: methods relate
|
|
191
|
+
* bivariantly, which is what lets an explicitly-annotated permissive
|
|
192
|
+
* `fn(ctx: SystemContext, dt)` (the escape hatch) keep compiling.
|
|
193
|
+
* `exclusive: true` configs take the dedicated permissive overload instead.
|
|
194
|
+
*/
|
|
195
|
+
export interface TypedSystemConfig<R extends DenseAccessDecl, W extends DenseAccessDecl, Sp extends SpawnsAccessDecl = readonly never[], De extends DespawnsAccessDecl = readonly never[], Tr extends TransitionsAccessDecl = readonly never[], SR extends SparseAccessDecl = readonly never[], SW extends SparseAccessDecl = readonly never[], RR extends RelationsAccessDecl = readonly never[], RW extends RelationsAccessDecl = readonly never[], QR extends ResourcesAccessDecl = readonly never[], QW extends ResourcesAccessDecl = readonly never[], A extends SystemAccess = DeclaredAccess<R, W, Sp, De, Tr, SR, SW, RR, RW, QR, QW>> {
|
|
196
|
+
readonly reads: R;
|
|
197
|
+
readonly writes: W;
|
|
198
|
+
readonly spawns?: Sp;
|
|
199
|
+
readonly despawns?: De;
|
|
200
|
+
readonly transitions?: Tr;
|
|
201
|
+
readonly resourceReads?: QR;
|
|
202
|
+
readonly resourceWrites?: QW;
|
|
203
|
+
readonly sparseReads?: SR;
|
|
204
|
+
readonly sparseWrites?: SW;
|
|
205
|
+
readonly relationReads?: RR;
|
|
206
|
+
readonly relationWrites?: RW;
|
|
207
|
+
/** Compile-time mirror of the Phase D lint: every query term ∈ reads ∪ writes. */
|
|
208
|
+
readonly queries?: readonly (readonly (R[number] | W[number])[])[];
|
|
209
|
+
name?: string;
|
|
210
|
+
fn?(ctx: SystemContext<A>, deltaTime: number): void;
|
|
211
|
+
onAdded?(ctx: SystemContext<A>): void;
|
|
212
|
+
onRemoved?(): void;
|
|
213
|
+
dispose?(): void;
|
|
214
|
+
/** `boolean`, not `false`, so a config VALUE typed `SystemConfig` (whose
|
|
215
|
+
* `exclusive` is `boolean | undefined`) still matches this overload; a
|
|
216
|
+
* literal `exclusive: true` config matches the dedicated permissive
|
|
217
|
+
* overload first by declaration order. */
|
|
218
|
+
exclusive?: boolean;
|
|
219
|
+
backendHandle?: BackendSystemHandle;
|
|
220
|
+
}
|
|
221
|
+
export interface SystemDescriptor extends Readonly<SystemConfig> {
|
|
222
|
+
readonly id: SystemID;
|
|
223
|
+
readonly spawns: readonly (readonly ComponentDef[])[];
|
|
224
|
+
readonly despawns: readonly ComponentDef[];
|
|
225
|
+
readonly transitions: readonly SystemTransition[];
|
|
226
|
+
readonly resourceReads: readonly ResourceKey<any>[];
|
|
227
|
+
readonly resourceWrites: readonly ResourceKey<any>[];
|
|
228
|
+
}
|
|
229
|
+
/** @internal Normalize an authored access config into the declaration shape
|
|
230
|
+
* a `SystemDescriptor` carries: absent optional fields become shared frozen
|
|
231
|
+
* empties; `Template` references in `spawns` / `despawns` expand to their
|
|
232
|
+
* component lists. Pure — does not mutate `config`. */
|
|
233
|
+
export declare function _normalizeAccess(config: SystemAccessConfig): SystemAccessDeclaration;
|
|
234
|
+
/** @internal Phase D lint (issue #213): in `DEV`, validate that every
|
|
235
|
+
* component a system lists in `queries` is covered by `reads ∪ writes`. A query
|
|
236
|
+
* term reads each listed component's presence/columns, so querying one the
|
|
237
|
+
* system never declared read access to would throw at the first iteration
|
|
238
|
+
* (`accessCheck`); this surfaces the drift between the two declarations at
|
|
239
|
+
* registration instead. `exclusive` systems (full access, empty reads/writes)
|
|
240
|
+
* are skipped, as are the bare-fn / 2-arg overloads (no `queries`). Pure —
|
|
241
|
+
* throws `QUERY_ACCESS_UNDECLARED` on a violation, naming the offending ids. */
|
|
242
|
+
export declare function _assertQueriesDeclared(config: SystemConfig): void;
|
|
243
|
+
/** @internal — empty access declaration shared by the bare-fn and 2-arg
|
|
244
|
+
* `registerSystem` overloads. Systems registered via those overloads
|
|
245
|
+
* have no declared access and therefore fail any runtime check; use the
|
|
246
|
+
* config form when the system performs any ECS access. NOT exported from
|
|
247
|
+
* the package barrel — call sites should never spread this directly. */
|
|
248
|
+
export declare const _INTERNAL_EMPTY_ACCESS: SystemAccessDeclaration;
|
|
249
|
+
export {};
|
|
250
|
+
//# sourceMappingURL=system.d.ts.map
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import { Brand } from '../../type_primitives/index.js';
|
|
2
|
+
import { ComponentDef } from './component.js';
|
|
3
|
+
import { EntityID } from './entity.js';
|
|
4
|
+
import { SparseComponentDef } from './sparse_store.js';
|
|
5
|
+
import { RelationDef } from './relation.js';
|
|
6
|
+
import { ResourceKey } from './resource.js';
|
|
7
|
+
import { SystemContext } from './query.js';
|
|
8
|
+
import { BackendSystemHandle } from './compute_backend.js';
|
|
9
|
+
import { Template } from './store.js';
|
|
10
|
+
export type SystemID = Brand<number, "system_id">;
|
|
11
|
+
export declare const asSystemId: (value: number) => SystemID;
|
|
12
|
+
export type SystemFn = (ctx: SystemContext, deltaTime: number) => void;
|
|
13
|
+
/** A pair describing a mid-tick archetype transition.
|
|
14
|
+
* If an entity has every component in `whenHas`, the system may `add`
|
|
15
|
+
* and/or `remove` the listed components, transitioning the entity to a
|
|
16
|
+
* new archetype. Used by Phase C to pre-warm the archetype graph. */
|
|
17
|
+
export interface SystemTransition {
|
|
18
|
+
readonly whenHas: readonly ComponentDef[];
|
|
19
|
+
readonly add?: readonly ComponentDef[];
|
|
20
|
+
readonly remove?: readonly ComponentDef[];
|
|
21
|
+
}
|
|
22
|
+
/** The access declaration as AUTHORED on a `SystemConfig`. `reads` /
|
|
23
|
+
* `writes` are mandatory (empty arrays are explicit, not missing
|
|
24
|
+
* annotations); the rarer structural and resource fields are optional with
|
|
25
|
+
* absent = empty, mirroring the #496 sparse/relation precedent. `spawns`
|
|
26
|
+
* entries and `despawns` accept a `Template` wherever a component list is
|
|
27
|
+
* expected — registration expands it via `_normalizeAccess`. */
|
|
28
|
+
export interface SystemAccessConfig {
|
|
29
|
+
/** Components the system READS but does not write. */
|
|
30
|
+
readonly reads: readonly ComponentDef[];
|
|
31
|
+
/** Components the system WRITES. A write is implicitly also a read. */
|
|
32
|
+
readonly writes: readonly ComponentDef[];
|
|
33
|
+
/** Archetype masks the system spawns entities into. Each entry is the
|
|
34
|
+
* union of components a spawned entity carries at flush time — an
|
|
35
|
+
* explicit def list, or a `Template` (expanded at registration). */
|
|
36
|
+
readonly spawns?: readonly (readonly ComponentDef[] | Template)[];
|
|
37
|
+
/** Components removed via `removeComponent` / `despawn`.
|
|
38
|
+
* `despawn` counts as removing every component on the entity —
|
|
39
|
+
* declare the superset. A `Template` entry expands to its component
|
|
40
|
+
* list, so a "destroys what the spawner spawns" system references the
|
|
41
|
+
* same declaration. */
|
|
42
|
+
readonly despawns?: readonly (ComponentDef | Template)[];
|
|
43
|
+
/** Mid-tick archetype transitions; see SystemTransition. */
|
|
44
|
+
readonly transitions?: readonly SystemTransition[];
|
|
45
|
+
/** Resources the system reads. */
|
|
46
|
+
readonly resourceReads?: readonly ResourceKey<any>[];
|
|
47
|
+
/** Resources the system writes. */
|
|
48
|
+
readonly resourceWrites?: readonly ResourceKey<any>[];
|
|
49
|
+
/** Sparse components the system READS via `getSparseField`
|
|
50
|
+
* (membership probes `hasSparse` are unchecked, mirroring `hasComponent`). */
|
|
51
|
+
readonly sparseReads?: readonly SparseComponentDef[];
|
|
52
|
+
/** Sparse components the system MUTATES via `addSparse` / `removeSparse` /
|
|
53
|
+
* `setSparseField`. A write implies a read. */
|
|
54
|
+
readonly sparseWrites?: readonly SparseComponentDef[];
|
|
55
|
+
/** Relations the system READS via `targetOf` / `targetsOf` / `sourcesOf`
|
|
56
|
+
* (`hasRelation` is unchecked, mirroring `hasComponent`). */
|
|
57
|
+
readonly relationReads?: readonly RelationDef[];
|
|
58
|
+
/** Relations the system MUTATES via `addRelation` / `removeRelation`.
|
|
59
|
+
* A write implies a read. */
|
|
60
|
+
readonly relationWrites?: readonly RelationDef[];
|
|
61
|
+
}
|
|
62
|
+
/** The NORMALIZED access declaration a registered system carries — what
|
|
63
|
+
* `SystemDescriptor` exposes and `accessCheck` / prewarm consume. Produced
|
|
64
|
+
* from the authored `SystemAccessConfig` by `_normalizeAccess`: absent
|
|
65
|
+
* optional fields are the shared frozen empties, and every `Template` in
|
|
66
|
+
* `spawns` / `despawns` is expanded to its component list. */
|
|
67
|
+
export interface SystemAccessDeclaration extends SystemAccessConfig {
|
|
68
|
+
readonly spawns: readonly (readonly ComponentDef[])[];
|
|
69
|
+
readonly despawns: readonly ComponentDef[];
|
|
70
|
+
readonly transitions: readonly SystemTransition[];
|
|
71
|
+
readonly resourceReads: readonly ResourceKey<any>[];
|
|
72
|
+
readonly resourceWrites: readonly ResourceKey<any>[];
|
|
73
|
+
}
|
|
74
|
+
export interface SystemConfig extends SystemAccessConfig {
|
|
75
|
+
fn?(ctx: SystemContext, deltaTime: number): void;
|
|
76
|
+
name?: string;
|
|
77
|
+
onAdded?(ctx: SystemContext): void;
|
|
78
|
+
onRemoved?: () => void;
|
|
79
|
+
dispose?: () => void;
|
|
80
|
+
/** Components the system queries (via a captured `ecs.query(...)`), one
|
|
81
|
+
* group per query.
|
|
82
|
+
* OPTIONAL — when provided, `registerSystem` validates `queries ⊆ reads ∪
|
|
83
|
+
* writes` in `DEV` (#213 Phase D, `_assertQueriesDeclared`): a query term
|
|
84
|
+
* reads each listed component, so this fails fast at registration instead of
|
|
85
|
+
* at the first iteration's `accessCheck`. */
|
|
86
|
+
queries?: readonly (readonly ComponentDef[])[];
|
|
87
|
+
/** Grant this system FULL world access — it may read/write/add/remove/destroy
|
|
88
|
+
* ANY component, sparse, relation, or resource without declaring them. The
|
|
89
|
+
* `DEV` access check is bypassed for its whole span (a no-op in
|
|
90
|
+
* production, where the check is already compiled out). For trusted engine /
|
|
91
|
+
* host machinery that mutates components not known at registration — the
|
|
92
|
+
* host→ECS command-apply system (#681) is the canonical case; a save/load or
|
|
93
|
+
* debug system is another. Bevy's "exclusive system" in spirit: full access,
|
|
94
|
+
* and — under any future parallel scheduler — it would run alone. The schedule
|
|
95
|
+
* is sequential today, so here it is purely the access grant. Use sparingly;
|
|
96
|
+
* a normal system should declare exactly what it touches. */
|
|
97
|
+
exclusive?: boolean;
|
|
98
|
+
/** Opt this system into pluggable-backend execution (#622). When set **and**
|
|
99
|
+
* a `ComputeBackend` is attached to the ECS, the `Schedule` runs
|
|
100
|
+
* `backend.run(backendHandle)` in place of `fn`; otherwise `fn` runs as the
|
|
101
|
+
* TS fallback (a no-op `fn` ⇒ the system is effectively skipped when no
|
|
102
|
+
* backend is attached). The handle is opaque to the engine — minted by the
|
|
103
|
+
* backend. The system still declares its `reads`/`writes` so the access span
|
|
104
|
+
* around the backend call authorises the shared-memory it touches, and so the
|
|
105
|
+
* scheduler can order it. See `ComputeBackend`. */
|
|
106
|
+
backendHandle?: BackendSystemHandle;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* The type-level access record a `SystemContext` is parameterized by. Each
|
|
110
|
+
* field is the UNION of handle types the system declared for that operation
|
|
111
|
+
* (`never` = declared nothing). The interface itself is the permissive
|
|
112
|
+
* default: every field `any`-typed, `destroy` undetermined.
|
|
113
|
+
*/
|
|
114
|
+
export interface SystemAccess {
|
|
115
|
+
read: ComponentDef<any>;
|
|
116
|
+
write: ComponentDef<any>;
|
|
117
|
+
add: ComponentDef<any>;
|
|
118
|
+
remove: ComponentDef<any>;
|
|
119
|
+
destroy: boolean;
|
|
120
|
+
sparseRead: SparseComponentDef<any>;
|
|
121
|
+
sparseWrite: SparseComponentDef<any>;
|
|
122
|
+
relationRead: RelationDef;
|
|
123
|
+
relationWrite: RelationDef;
|
|
124
|
+
resourceRead: ResourceKey<any>;
|
|
125
|
+
resourceWrite: ResourceKey<any>;
|
|
126
|
+
}
|
|
127
|
+
/** `unknown` if `D` is in the system's declared read surface, else an error tuple. */
|
|
128
|
+
export type DeclaredRead<A extends SystemAccess, D> = [D] extends [A["read"]] ? unknown : ["component is not declared in this system's reads/writes", D];
|
|
129
|
+
/** `unknown` if `D` is in the system's declared write surface, else an error tuple. */
|
|
130
|
+
export type DeclaredWrite<A extends SystemAccess, D> = [D] extends [A["write"]] ? unknown : ["component is not declared in this system's writes", D];
|
|
131
|
+
/** `unknown` if `D` is an authorised addComponent target, else an error tuple. */
|
|
132
|
+
export type DeclaredAdd<A extends SystemAccess, D> = [D] extends [A["add"]] ? unknown : ["component is not declared in this system's writes/spawns/transitions.add", D];
|
|
133
|
+
/** `unknown` if `D` is an authorised removeComponent target, else an error tuple. */
|
|
134
|
+
export type DeclaredRemove<A extends SystemAccess, D> = [D] extends [A["remove"]] ? unknown : ["component is not declared in this system's despawns/transitions.remove", D];
|
|
135
|
+
export type DeclaredSparseRead<A extends SystemAccess, D> = [D] extends [A["sparseRead"]] ? unknown : ["sparse component is not declared in this system's sparseReads/sparseWrites", D];
|
|
136
|
+
export type DeclaredSparseWrite<A extends SystemAccess, D> = [D] extends [A["sparseWrite"]] ? unknown : ["sparse component is not declared in this system's sparseWrites", D];
|
|
137
|
+
/** Relations are one nominal type, so this only distinguishes "declared some
|
|
138
|
+
* relation access" from "declared none" — the runtime check owns the rest.
|
|
139
|
+
* Keyed on the call site's inferred `D` (like the component asserts) rather
|
|
140
|
+
* than on `RelationDef` directly: a conditional whose check type is not a
|
|
141
|
+
* signature type parameter resolves under the compiler's variance-annotation
|
|
142
|
+
* validation markers and falsely flags the `out A` declaration (TS2636). */
|
|
143
|
+
export type DeclaredRelationRead<A extends SystemAccess, D> = [D] extends [A["relationRead"]] ? unknown : ["no relation is declared in this system's relationReads/relationWrites"];
|
|
144
|
+
export type DeclaredRelationWrite<A extends SystemAccess, D> = [D] extends [A["relationWrite"]] ? unknown : ["no relation is declared in this system's relationWrites"];
|
|
145
|
+
export type DeclaredResourceRead<A extends SystemAccess, K> = [K] extends [A["resourceRead"]] ? unknown : ["resource key is not declared in this system's resourceReads/resourceWrites", K];
|
|
146
|
+
export type DeclaredResourceWrite<A extends SystemAccess, K> = [K] extends [A["resourceWrite"]] ? unknown : ["resource key is not declared in this system's resourceWrites", K];
|
|
147
|
+
/** `commands.despawn` argument: blocked (with a readable error) only when
|
|
148
|
+
* the access record PROVES no despawns were declared. */
|
|
149
|
+
export type DespawnArg<A extends SystemAccess> = [A["destroy"]] extends [false] ? {
|
|
150
|
+
"this system declares no despawns — despawn is not permitted": never;
|
|
151
|
+
} : EntityID;
|
|
152
|
+
export type DenseAccessDecl = readonly ComponentDef<any>[];
|
|
153
|
+
export type SpawnsAccessDecl = readonly (readonly ComponentDef<any>[] | Template<any>)[];
|
|
154
|
+
export type DespawnsAccessDecl = readonly (ComponentDef<any> | Template<any>)[];
|
|
155
|
+
export type TransitionsAccessDecl = readonly SystemTransition[];
|
|
156
|
+
export type SparseAccessDecl = readonly SparseComponentDef<any>[];
|
|
157
|
+
export type RelationsAccessDecl = readonly RelationDef[];
|
|
158
|
+
export type ResourcesAccessDecl = readonly ResourceKey<any>[];
|
|
159
|
+
type SpawnEntryDefs<E> = E extends Template<infer TDefs> ? TDefs[number] : E extends readonly (infer D)[] ? D : never;
|
|
160
|
+
type DespawnEntryDefs<E> = E extends Template<infer TDefs> ? TDefs[number] : E;
|
|
161
|
+
type TransitionAddDefs<T> = T extends {
|
|
162
|
+
readonly add: readonly (infer D extends ComponentDef<any>)[];
|
|
163
|
+
} ? D : never;
|
|
164
|
+
type TransitionRemoveDefs<T> = T extends {
|
|
165
|
+
readonly remove: readonly (infer D extends ComponentDef<any>)[];
|
|
166
|
+
} ? D : never;
|
|
167
|
+
/**
|
|
168
|
+
* Compute the `SystemAccess` record for a set of declared access lists —
|
|
169
|
+
* the type-level `computeSets` (access_check.ts).
|
|
170
|
+
*/
|
|
171
|
+
export type DeclaredAccess<R extends DenseAccessDecl, W extends DenseAccessDecl, Sp extends SpawnsAccessDecl = readonly never[], De extends DespawnsAccessDecl = readonly never[], Tr extends TransitionsAccessDecl = readonly never[], SR extends SparseAccessDecl = readonly never[], SW extends SparseAccessDecl = readonly never[], RR extends RelationsAccessDecl = readonly never[], RW extends RelationsAccessDecl = readonly never[], QR extends ResourcesAccessDecl = readonly never[], QW extends ResourcesAccessDecl = readonly never[]> = {
|
|
172
|
+
read: R[number] | W[number];
|
|
173
|
+
write: W[number];
|
|
174
|
+
add: W[number] | SpawnEntryDefs<Sp[number]> | TransitionAddDefs<Tr[number]>;
|
|
175
|
+
remove: DespawnEntryDefs<De[number]> | TransitionRemoveDefs<Tr[number]>;
|
|
176
|
+
destroy: [De[number]] extends [never] ? false : true;
|
|
177
|
+
sparseRead: SR[number] | SW[number];
|
|
178
|
+
sparseWrite: SW[number];
|
|
179
|
+
relationRead: RR[number] | RW[number];
|
|
180
|
+
relationWrite: RW[number];
|
|
181
|
+
resourceRead: QR[number] | QW[number];
|
|
182
|
+
resourceWrite: QW[number];
|
|
183
|
+
};
|
|
184
|
+
/**
|
|
185
|
+
* The config shape the typed `registerSystem` overload infers. Structurally a
|
|
186
|
+
* `SystemConfig`, but every declaration list is its own type parameter (one
|
|
187
|
+
* inference site each — inferring a single config-object type parameter breaks
|
|
188
|
+
* contextual typing of `fn`), `queries` is constrained to `reads ∪ writes`
|
|
189
|
+
* (the compile-time Phase D lint), and `fn` / `onAdded` receive the narrowed
|
|
190
|
+
* context. `fn` and `onAdded` use METHOD syntax deliberately: methods relate
|
|
191
|
+
* bivariantly, which is what lets an explicitly-annotated permissive
|
|
192
|
+
* `fn(ctx: SystemContext, dt)` (the escape hatch) keep compiling.
|
|
193
|
+
* `exclusive: true` configs take the dedicated permissive overload instead.
|
|
194
|
+
*/
|
|
195
|
+
export interface TypedSystemConfig<R extends DenseAccessDecl, W extends DenseAccessDecl, Sp extends SpawnsAccessDecl = readonly never[], De extends DespawnsAccessDecl = readonly never[], Tr extends TransitionsAccessDecl = readonly never[], SR extends SparseAccessDecl = readonly never[], SW extends SparseAccessDecl = readonly never[], RR extends RelationsAccessDecl = readonly never[], RW extends RelationsAccessDecl = readonly never[], QR extends ResourcesAccessDecl = readonly never[], QW extends ResourcesAccessDecl = readonly never[], A extends SystemAccess = DeclaredAccess<R, W, Sp, De, Tr, SR, SW, RR, RW, QR, QW>> {
|
|
196
|
+
readonly reads: R;
|
|
197
|
+
readonly writes: W;
|
|
198
|
+
readonly spawns?: Sp;
|
|
199
|
+
readonly despawns?: De;
|
|
200
|
+
readonly transitions?: Tr;
|
|
201
|
+
readonly resourceReads?: QR;
|
|
202
|
+
readonly resourceWrites?: QW;
|
|
203
|
+
readonly sparseReads?: SR;
|
|
204
|
+
readonly sparseWrites?: SW;
|
|
205
|
+
readonly relationReads?: RR;
|
|
206
|
+
readonly relationWrites?: RW;
|
|
207
|
+
/** Compile-time mirror of the Phase D lint: every query term ∈ reads ∪ writes. */
|
|
208
|
+
readonly queries?: readonly (readonly (R[number] | W[number])[])[];
|
|
209
|
+
name?: string;
|
|
210
|
+
fn?(ctx: SystemContext<A>, deltaTime: number): void;
|
|
211
|
+
onAdded?(ctx: SystemContext<A>): void;
|
|
212
|
+
onRemoved?(): void;
|
|
213
|
+
dispose?(): void;
|
|
214
|
+
/** `boolean`, not `false`, so a config VALUE typed `SystemConfig` (whose
|
|
215
|
+
* `exclusive` is `boolean | undefined`) still matches this overload; a
|
|
216
|
+
* literal `exclusive: true` config matches the dedicated permissive
|
|
217
|
+
* overload first by declaration order. */
|
|
218
|
+
exclusive?: boolean;
|
|
219
|
+
backendHandle?: BackendSystemHandle;
|
|
220
|
+
}
|
|
221
|
+
export interface SystemDescriptor extends Readonly<SystemConfig> {
|
|
222
|
+
readonly id: SystemID;
|
|
223
|
+
readonly spawns: readonly (readonly ComponentDef[])[];
|
|
224
|
+
readonly despawns: readonly ComponentDef[];
|
|
225
|
+
readonly transitions: readonly SystemTransition[];
|
|
226
|
+
readonly resourceReads: readonly ResourceKey<any>[];
|
|
227
|
+
readonly resourceWrites: readonly ResourceKey<any>[];
|
|
228
|
+
}
|
|
229
|
+
/** @internal Normalize an authored access config into the declaration shape
|
|
230
|
+
* a `SystemDescriptor` carries: absent optional fields become shared frozen
|
|
231
|
+
* empties; `Template` references in `spawns` / `despawns` expand to their
|
|
232
|
+
* component lists. Pure — does not mutate `config`. */
|
|
233
|
+
export declare function _normalizeAccess(config: SystemAccessConfig): SystemAccessDeclaration;
|
|
234
|
+
/** @internal Phase D lint (issue #213): in `DEV`, validate that every
|
|
235
|
+
* component a system lists in `queries` is covered by `reads ∪ writes`. A query
|
|
236
|
+
* term reads each listed component's presence/columns, so querying one the
|
|
237
|
+
* system never declared read access to would throw at the first iteration
|
|
238
|
+
* (`accessCheck`); this surfaces the drift between the two declarations at
|
|
239
|
+
* registration instead. `exclusive` systems (full access, empty reads/writes)
|
|
240
|
+
* are skipped, as are the bare-fn / 2-arg overloads (no `queries`). Pure —
|
|
241
|
+
* throws `QUERY_ACCESS_UNDECLARED` on a violation, naming the offending ids. */
|
|
242
|
+
export declare function _assertQueriesDeclared(config: SystemConfig): void;
|
|
243
|
+
/** @internal — empty access declaration shared by the bare-fn and 2-arg
|
|
244
|
+
* `registerSystem` overloads. Systems registered via those overloads
|
|
245
|
+
* have no declared access and therefore fail any runtime check; use the
|
|
246
|
+
* config form when the system performs any ECS access. NOT exported from
|
|
247
|
+
* the package barrel — call sites should never spread this directly. */
|
|
248
|
+
export declare const _INTERNAL_EMPTY_ACCESS: SystemAccessDeclaration;
|
|
249
|
+
export {};
|
|
250
|
+
//# sourceMappingURL=system.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/system.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA0CK;AAEL,OAAO,EAAE,KAAK,EAAyC,MAAM,uBAAuB,CAAC;AAErF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAElD,eAAO,MAAM,UAAU,UAAW,MAAM,aAKtC,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;AAEvE;;;qEAGqE;AACrE,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;CAC1C;AAED;;;;;gEAKgE;AAChE,MAAM,WAAW,kBAAkB;IAClC,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,uEAAuE;IACvE,QAAQ,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;IACzC;;wEAEoE;IACpE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,SAAS,YAAY,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;IAClE;;;;2BAIuB;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,YAAY,GAAG,QAAQ,CAAC,EAAE,CAAC;IACzD,4DAA4D;IAC5D,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACnD,kCAAkC;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;IACrD,mCAAmC;IACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;IAatD;kFAC8E;IAC9E,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACrD;mDAC+C;IAC/C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACtD;iEAC6D;IAC7D,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IAChD;iCAC6B;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;CACjD;AAED;;;;8DAI8D;AAC9D,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IAClE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,YAAY,EAAE,CAAC,EAAE,CAAC;IACtD,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,QAAQ,CAAC,WAAW,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAClD,QAAQ,CAAC,aAAa,EAAE,SAAS,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;IACpD,QAAQ,CAAC,cAAc,EAAE,SAAS,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;CACrD;AAED,MAAM,WAAW,YAAa,SAAQ,kBAAkB;IAQvD,EAAE,CAAC,CAAC,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;;;;iDAK6C;IAC7C,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,YAAY,EAAE,CAAC,EAAE,CAAC;IAE/C;;;;;;;;;iEAS6D;IAC7D,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;;;uDAOmD;IACnD,aAAa,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAwCD;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;IACxB,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;IACzB,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACpC,WAAW,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACrC,YAAY,EAAE,WAAW,CAAC;IAC1B,aAAa,EAAE,WAAW,CAAC;IAC3B,YAAY,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IAC/B,aAAa,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;CAChC;AAED,sFAAsF;AACtF,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAC1E,OAAO,GACP,CAAC,yDAAyD,EAAE,CAAC,CAAC,CAAC;AAElE,uFAAuF;AACvF,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAC5E,OAAO,GACP,CAAC,mDAAmD,EAAE,CAAC,CAAC,CAAC;AAE5D,kFAAkF;AAClF,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GACxE,OAAO,GACP,CAAC,0EAA0E,EAAE,CAAC,CAAC,CAAC;AAEnF,qFAAqF;AACrF,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAC9E,OAAO,GACP,CAAC,wEAAwE,EAAE,CAAC,CAAC,CAAC;AAEjF,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,GACtF,OAAO,GACP,CAAC,4EAA4E,EAAE,CAAC,CAAC,CAAC;AAErF,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,GACxF,OAAO,GACP,CAAC,gEAAgE,EAAE,CAAC,CAAC,CAAC;AAEzE;;;;;4EAK4E;AAC5E,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,GAC1F,OAAO,GACP,CAAC,uEAAuE,CAAC,CAAC;AAE7E,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,GAC5F,OAAO,GACP,CAAC,yDAAyD,CAAC,CAAC;AAE/D,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,GAC1F,OAAO,GACP,CAAC,4EAA4E,EAAE,CAAC,CAAC,CAAC;AAErF,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,GAC5F,OAAO,GACP,CAAC,8DAA8D,EAAE,CAAC,CAAC,CAAC;AAEvE;yDACyD;AACzD,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,YAAY,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAC5E;IAAE,6DAA6D,EAAE,KAAK,CAAA;CAAE,GACxE,QAAQ,CAAC;AAKZ,MAAM,MAAM,eAAe,GAAG,SAAS,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;AAC3D,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC,SAAS,YAAY,CAAC,GAAG,CAAC,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACzF,MAAM,MAAM,kBAAkB,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AAChF,MAAM,MAAM,qBAAqB,GAAG,SAAS,gBAAgB,EAAE,CAAC;AAChE,MAAM,MAAM,gBAAgB,GAAG,SAAS,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;AAClE,MAAM,MAAM,mBAAmB,GAAG,SAAS,WAAW,EAAE,CAAC;AACzD,MAAM,MAAM,mBAAmB,GAAG,SAAS,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;AAM9D,KAAK,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,KAAK,CAAC,GACrD,KAAK,CAAC,MAAM,CAAC,GACb,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAC7B,CAAC,GACD,KAAK,CAAC;AACV,KAAK,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC/E,KAAK,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAA;CAAE,GACnG,CAAC,GACD,KAAK,CAAC;AACT,KAAK,oBAAoB,CAAC,CAAC,IAAI,CAAC,SAAS;IACxC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;CAChE,GACE,CAAC,GACD,KAAK,CAAC;AAET;;;GAGG;AACH,MAAM,MAAM,cAAc,CACzB,CAAC,SAAS,eAAe,EACzB,CAAC,SAAS,eAAe,EACzB,EAAE,SAAS,gBAAgB,GAAG,SAAS,KAAK,EAAE,EAC9C,EAAE,SAAS,kBAAkB,GAAG,SAAS,KAAK,EAAE,EAChD,EAAE,SAAS,qBAAqB,GAAG,SAAS,KAAK,EAAE,EACnD,EAAE,SAAS,gBAAgB,GAAG,SAAS,KAAK,EAAE,EAC9C,EAAE,SAAS,gBAAgB,GAAG,SAAS,KAAK,EAAE,EAC9C,EAAE,SAAS,mBAAmB,GAAG,SAAS,KAAK,EAAE,EACjD,EAAE,SAAS,mBAAmB,GAAG,SAAS,KAAK,EAAE,EACjD,EAAE,SAAS,mBAAmB,GAAG,SAAS,KAAK,EAAE,EACjD,EAAE,SAAS,mBAAmB,GAAG,SAAS,KAAK,EAAE,IAC9C;IACH,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACjB,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5E,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,oBAAoB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACxE,OAAO,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;IACrD,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;IACpC,WAAW,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IACxB,YAAY,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;IACtC,aAAa,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAC1B,YAAY,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;IACtC,aAAa,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;CAC1B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,WAAW,iBAAiB,CACjC,CAAC,SAAS,eAAe,EACzB,CAAC,SAAS,eAAe,EACzB,EAAE,SAAS,gBAAgB,GAAG,SAAS,KAAK,EAAE,EAC9C,EAAE,SAAS,kBAAkB,GAAG,SAAS,KAAK,EAAE,EAChD,EAAE,SAAS,qBAAqB,GAAG,SAAS,KAAK,EAAE,EACnD,EAAE,SAAS,gBAAgB,GAAG,SAAS,KAAK,EAAE,EAC9C,EAAE,SAAS,gBAAgB,GAAG,SAAS,KAAK,EAAE,EAC9C,EAAE,SAAS,mBAAmB,GAAG,SAAS,KAAK,EAAE,EACjD,EAAE,SAAS,mBAAmB,GAAG,SAAS,KAAK,EAAE,EACjD,EAAE,SAAS,mBAAmB,GAAG,SAAS,KAAK,EAAE,EACjD,EAAE,SAAS,mBAAmB,GAAG,SAAS,KAAK,EAAE,EACjD,CAAC,SAAS,YAAY,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAEjF,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;IAC7B,kFAAkF;IAClF,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACpD,OAAO,CAAC,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACtC,SAAS,CAAC,IAAI,IAAI,CAAC;IACnB,OAAO,CAAC,IAAI,IAAI,CAAC;IACjB;;;8CAG0C;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAED,MAAM,WAAW,gBAAiB,SAAQ,QAAQ,CAAC,YAAY,CAAC;IAC/D,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IAGtB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,YAAY,EAAE,CAAC,EAAE,CAAC;IACtD,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,QAAQ,CAAC,WAAW,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAClD,QAAQ,CAAC,aAAa,EAAE,SAAS,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;IACpD,QAAQ,CAAC,cAAc,EAAE,SAAS,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;CACrD;AAUD;;;uDAGuD;AACvD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,GAAG,uBAAuB,CA6BpF;AAED;;;;;;;gFAOgF;AAChF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAuBjE;AAED;;;;wEAIwE;AACxE,eAAO,MAAM,sBAAsB,EAAE,uBAYnC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/***
|
|
2
|
+
* Array utilities — helpers for hash-bucketed maps.
|
|
3
|
+
*
|
|
4
|
+
***/
|
|
5
|
+
/** Push a value into a hash-bucket map, creating the bucket array if absent. */
|
|
6
|
+
export declare function bucketPush<T>(map: Map<number, T[]>, key: number, value: T): void;
|
|
7
|
+
//# sourceMappingURL=arrays.d.ts.map
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/***
|
|
2
2
|
* Array utilities — helpers for hash-bucketed maps.
|
|
3
|
+
*
|
|
3
4
|
***/
|
|
4
5
|
/** Push a value into a hash-bucket map, creating the bucket array if absent. */
|
|
5
|
-
export declare function
|
|
6
|
+
export declare function bucketPush<T>(map: Map<number, T[]>, key: number, value: T): void;
|
|
6
7
|
//# sourceMappingURL=arrays.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arrays.d.ts","sourceRoot":"","sources":["../../../../src/core/ecs/utils/arrays.ts"],"names":[],"mappings":"AAAA;;;KAGK;AAEL,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAOhF"}
|