@oasys/oecs 0.5.4 → 0.6.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 +1223 -266
- package/README.md +217 -112
- package/dist/core/ecs/access_check.d.cts +29 -29
- package/dist/core/ecs/access_check.d.ts +29 -29
- package/dist/core/ecs/access_check.d.ts.map +1 -1
- package/dist/core/ecs/archetype.d.cts +217 -209
- package/dist/core/ecs/archetype.d.ts +217 -209
- package/dist/core/ecs/archetype.d.ts.map +1 -1
- package/dist/core/ecs/archetype_closure.d.cts +23 -0
- package/dist/core/ecs/archetype_closure.d.ts +23 -0
- package/dist/core/ecs/archetype_closure.d.ts.map +1 -0
- package/dist/core/ecs/archetype_graph.d.cts +33 -33
- package/dist/core/ecs/archetype_graph.d.ts +33 -33
- package/dist/core/ecs/archetype_graph.d.ts.map +1 -1
- package/dist/core/ecs/archetype_types.d.cts +55 -0
- package/dist/core/ecs/archetype_types.d.ts +55 -0
- package/dist/core/ecs/archetype_types.d.ts.map +1 -0
- package/dist/core/ecs/change_feed.d.cts +53 -0
- package/dist/core/ecs/change_feed.d.ts +53 -0
- package/dist/core/ecs/change_feed.d.ts.map +1 -0
- package/dist/core/ecs/changed_query.d.cts +36 -0
- package/dist/core/ecs/changed_query.d.ts +36 -0
- package/dist/core/ecs/changed_query.d.ts.map +1 -0
- package/dist/core/ecs/chunk_columns.d.cts +49 -0
- package/dist/core/ecs/chunk_columns.d.ts +49 -0
- package/dist/core/ecs/chunk_columns.d.ts.map +1 -0
- package/dist/core/ecs/command_log.d.cts +26 -26
- package/dist/core/ecs/command_log.d.ts +26 -26
- package/dist/core/ecs/command_log.d.ts.map +1 -1
- package/dist/core/ecs/component.d.cts +43 -42
- package/dist/core/ecs/component.d.ts +43 -42
- package/dist/core/ecs/component.d.ts.map +1 -1
- package/dist/core/ecs/component_registry.d.cts +53 -0
- package/dist/core/ecs/component_registry.d.ts +53 -0
- package/dist/core/ecs/component_registry.d.ts.map +1 -0
- package/dist/core/ecs/compute_backend.d.cts +18 -7
- package/dist/core/ecs/compute_backend.d.ts +18 -7
- package/dist/core/ecs/compute_backend.d.ts.map +1 -1
- package/dist/core/ecs/deferred_commands.d.cts +15 -14
- package/dist/core/ecs/deferred_commands.d.ts +15 -14
- package/dist/core/ecs/deferred_commands.d.ts.map +1 -1
- package/dist/core/ecs/dispatch_trace.d.cts +32 -31
- package/dist/core/ecs/dispatch_trace.d.ts +32 -31
- package/dist/core/ecs/dispatch_trace.d.ts.map +1 -1
- package/dist/core/ecs/ecs.d.cts +289 -270
- package/dist/core/ecs/ecs.d.ts +289 -270
- package/dist/core/ecs/ecs.d.ts.map +1 -1
- package/dist/core/ecs/ecs_memory.d.cts +134 -136
- package/dist/core/ecs/ecs_memory.d.ts +134 -136
- package/dist/core/ecs/ecs_memory.d.ts.map +1 -1
- package/dist/core/ecs/ecs_options.d.cts +89 -0
- package/dist/core/ecs/ecs_options.d.ts +89 -0
- package/dist/core/ecs/ecs_options.d.ts.map +1 -0
- package/dist/core/ecs/entity.d.cts +4 -4
- package/dist/core/ecs/entity.d.ts +4 -4
- package/dist/core/ecs/entity_allocator.d.cts +20 -18
- package/dist/core/ecs/entity_allocator.d.ts +20 -18
- package/dist/core/ecs/entity_allocator.d.ts.map +1 -1
- package/dist/core/ecs/event.d.cts +36 -22
- package/dist/core/ecs/event.d.ts +36 -22
- package/dist/core/ecs/event.d.ts.map +1 -1
- package/dist/core/ecs/facades.d.cts +12 -126
- package/dist/core/ecs/facades.d.ts +12 -126
- package/dist/core/ecs/facades.d.ts.map +1 -1
- package/dist/core/ecs/frame_stepper.d.cts +12 -12
- package/dist/core/ecs/frame_stepper.d.ts +12 -12
- package/dist/core/ecs/frame_stepper.d.ts.map +1 -1
- package/dist/core/ecs/frame_trace.d.cts +32 -32
- package/dist/core/ecs/frame_trace.d.ts +32 -32
- package/dist/core/ecs/frame_trace.d.ts.map +1 -1
- package/dist/core/ecs/host_commands.d.cts +103 -85
- package/dist/core/ecs/host_commands.d.ts +103 -85
- package/dist/core/ecs/host_commands.d.ts.map +1 -1
- package/dist/core/ecs/index.d.cts +21 -11
- package/dist/core/ecs/index.d.ts +21 -11
- package/dist/core/ecs/index.d.ts.map +1 -1
- package/dist/core/ecs/observer.d.cts +39 -120
- package/dist/core/ecs/observer.d.ts +39 -120
- package/dist/core/ecs/observer.d.ts.map +1 -1
- package/dist/core/ecs/phase.d.cts +79 -0
- package/dist/core/ecs/phase.d.ts +79 -0
- package/dist/core/ecs/phase.d.ts.map +1 -0
- package/dist/core/ecs/plugin.d.cts +125 -0
- package/dist/core/ecs/plugin.d.ts +125 -0
- package/dist/core/ecs/plugin.d.ts.map +1 -0
- package/dist/core/ecs/plugin_slots.d.cts +26 -0
- package/dist/core/ecs/plugin_slots.d.ts +26 -0
- package/dist/core/ecs/plugin_slots.d.ts.map +1 -0
- package/dist/core/ecs/query.d.cts +208 -578
- package/dist/core/ecs/query.d.ts +208 -578
- package/dist/core/ecs/query.d.ts.map +1 -1
- package/dist/core/ecs/query_cache.d.cts +130 -0
- package/dist/core/ecs/query_cache.d.ts +130 -0
- package/dist/core/ecs/query_cache.d.ts.map +1 -0
- package/dist/core/ecs/query_registry.d.cts +47 -0
- package/dist/core/ecs/query_registry.d.ts +47 -0
- package/dist/core/ecs/query_registry.d.ts.map +1 -0
- package/dist/core/ecs/query_terms.d.cts +126 -0
- package/dist/core/ecs/query_terms.d.ts +126 -0
- package/dist/core/ecs/query_terms.d.ts.map +1 -0
- package/dist/core/ecs/ref.d.cts +100 -39
- package/dist/core/ecs/ref.d.ts +100 -39
- package/dist/core/ecs/ref.d.ts.map +1 -1
- package/dist/core/ecs/relation.d.cts +101 -182
- package/dist/core/ecs/relation.d.ts +101 -182
- package/dist/core/ecs/relation.d.ts.map +1 -1
- package/dist/core/ecs/resource.d.cts +13 -13
- package/dist/core/ecs/resource.d.ts +13 -13
- package/dist/core/ecs/resource_registry.d.cts +5 -5
- package/dist/core/ecs/resource_registry.d.ts +5 -5
- package/dist/core/ecs/resource_registry.d.ts.map +1 -1
- package/dist/core/ecs/row_kinds.d.cts +24 -0
- package/dist/core/ecs/row_kinds.d.ts +24 -0
- package/dist/core/ecs/row_kinds.d.ts.map +1 -0
- package/dist/core/ecs/run_condition.d.cts +23 -23
- package/dist/core/ecs/run_condition.d.ts +23 -23
- package/dist/core/ecs/run_condition.d.ts.map +1 -1
- package/dist/core/ecs/schedule.d.cts +91 -120
- package/dist/core/ecs/schedule.d.ts +91 -120
- package/dist/core/ecs/schedule.d.ts.map +1 -1
- package/dist/core/ecs/schedule_plan.d.cts +33 -0
- package/dist/core/ecs/schedule_plan.d.ts +33 -0
- package/dist/core/ecs/schedule_plan.d.ts.map +1 -0
- package/dist/core/ecs/snapshot.d.cts +77 -0
- package/dist/core/ecs/snapshot.d.ts +77 -0
- package/dist/core/ecs/snapshot.d.ts.map +1 -0
- package/dist/core/ecs/snapshot_mount.d.cts +42 -0
- package/dist/core/ecs/snapshot_mount.d.ts +42 -0
- package/dist/core/ecs/snapshot_mount.d.ts.map +1 -0
- package/dist/core/ecs/sparse_store.d.cts +108 -51
- package/dist/core/ecs/sparse_store.d.ts +108 -51
- package/dist/core/ecs/sparse_store.d.ts.map +1 -1
- package/dist/core/ecs/store.d.cts +527 -473
- package/dist/core/ecs/store.d.ts +527 -473
- package/dist/core/ecs/store.d.ts.map +1 -1
- package/dist/core/ecs/store_layout_listener.d.cts +6 -6
- package/dist/core/ecs/store_layout_listener.d.ts +6 -6
- package/dist/core/ecs/store_types.d.cts +122 -0
- package/dist/core/ecs/store_types.d.ts +122 -0
- package/dist/core/ecs/store_types.d.ts.map +1 -0
- package/dist/core/ecs/system.d.cts +146 -61
- package/dist/core/ecs/system.d.ts +146 -61
- package/dist/core/ecs/system.d.ts.map +1 -1
- package/dist/core/ecs/system_context.d.cts +296 -0
- package/dist/core/ecs/system_context.d.ts +296 -0
- package/dist/core/ecs/system_context.d.ts.map +1 -0
- package/dist/core/ecs/system_set.d.cts +48 -0
- package/dist/core/ecs/system_set.d.ts +48 -0
- package/dist/core/ecs/system_set.d.ts.map +1 -0
- package/dist/core/ecs/utils/arrays.d.cts +15 -1
- package/dist/core/ecs/utils/arrays.d.ts +15 -1
- package/dist/core/ecs/utils/arrays.d.ts.map +1 -1
- package/dist/core/ecs/utils/error.d.cts +82 -6
- package/dist/core/ecs/utils/error.d.ts +82 -6
- package/dist/core/ecs/utils/error.d.ts.map +1 -1
- package/dist/core/ecs/utils/plugin_error.d.cts +10 -0
- package/dist/core/ecs/utils/plugin_error.d.ts +10 -0
- package/dist/core/ecs/utils/plugin_error.d.ts.map +1 -0
- package/dist/core/restore_errors.d.cts +30 -0
- package/dist/core/restore_errors.d.ts +30 -0
- package/dist/core/restore_errors.d.ts.map +1 -0
- package/dist/core/store/action_ring.d.cts +44 -44
- package/dist/core/store/action_ring.d.ts +44 -44
- package/dist/core/store/action_ring.d.ts.map +1 -1
- package/dist/core/store/allocator.d.cts +149 -95
- package/dist/core/store/allocator.d.ts +149 -95
- package/dist/core/store/allocator.d.ts.map +1 -1
- package/dist/core/store/buffer_backed_column.d.cts +17 -17
- package/dist/core/store/buffer_backed_column.d.ts +17 -17
- package/dist/core/store/buffer_backed_column.d.ts.map +1 -1
- package/dist/core/store/column_store.d.cts +124 -86
- package/dist/core/store/column_store.d.ts +124 -86
- package/dist/core/store/column_store.d.ts.map +1 -1
- package/dist/core/store/command_dispatch.d.cts +14 -15
- package/dist/core/store/command_dispatch.d.ts +14 -15
- package/dist/core/store/command_dispatch.d.ts.map +1 -1
- package/dist/core/store/command_ring.d.cts +36 -39
- package/dist/core/store/command_ring.d.ts +36 -39
- package/dist/core/store/command_ring.d.ts.map +1 -1
- package/dist/core/store/descriptor.d.cts +34 -17
- package/dist/core/store/descriptor.d.ts +34 -17
- package/dist/core/store/descriptor.d.ts.map +1 -1
- package/dist/core/store/entity_index.d.cts +34 -35
- package/dist/core/store/entity_index.d.ts +34 -35
- package/dist/core/store/entity_index.d.ts.map +1 -1
- package/dist/core/store/event_ring.d.cts +36 -38
- package/dist/core/store/event_ring.d.ts +36 -38
- package/dist/core/store/event_ring.d.ts.map +1 -1
- package/dist/core/store/extend.d.cts +13 -7
- package/dist/core/store/extend.d.ts +13 -7
- package/dist/core/store/extend.d.ts.map +1 -1
- package/dist/core/store/grow.d.cts +2 -2
- package/dist/core/store/grow.d.ts +2 -2
- package/dist/core/store/grow.d.ts.map +1 -1
- package/dist/core/store/header.d.cts +31 -27
- package/dist/core/store/header.d.ts +31 -27
- package/dist/core/store/header.d.ts.map +1 -1
- package/dist/core/store/index.d.cts +10 -10
- package/dist/core/store/index.d.ts +10 -10
- package/dist/core/store/index.d.ts.map +1 -1
- package/dist/core/store/layout_ops.d.cts +71 -62
- package/dist/core/store/layout_ops.d.ts +71 -62
- package/dist/core/store/layout_ops.d.ts.map +1 -1
- package/dist/core/store/region_table.d.cts +28 -21
- package/dist/core/store/region_table.d.ts +28 -21
- package/dist/core/store/region_table.d.ts.map +1 -1
- package/dist/core/store/snapshot.d.cts +31 -16
- package/dist/core/store/snapshot.d.ts +31 -16
- package/dist/core/store/snapshot.d.ts.map +1 -1
- package/dist/core/store/state_hash.d.cts +12 -12
- package/dist/core/store/state_hash.d.ts +12 -12
- package/dist/core/store/state_hash.d.ts.map +1 -1
- package/dist/core/store/store_regions.d.cts +10 -10
- package/dist/core/store/store_regions.d.ts +10 -10
- package/dist/core/store/store_regions.d.ts.map +1 -1
- package/dist/core/store/vendored_abi/abi.d.cts +27 -2
- package/dist/core/store/vendored_abi/abi.d.ts +27 -2
- package/dist/core/store/vendored_abi/abi.d.ts.map +1 -1
- package/dist/host_commands-B2KMx8O2.cjs +1 -0
- package/dist/host_commands-ClVPvhSa.cjs +2 -0
- package/dist/host_commands-CwxVQS1z.js +1524 -0
- package/dist/host_commands-nJvTy88E.js +1667 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +15 -10
- package/dist/index.d.ts +15 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.development.cjs +1 -1
- package/dist/index.development.js +5804 -5203
- package/dist/index.js +5323 -4764
- package/dist/internal.cjs +2 -2
- package/dist/internal.d.cts +5 -2
- package/dist/internal.d.ts +5 -2
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.development.cjs +1 -1
- package/dist/internal.development.js +70 -20
- package/dist/internal.js +138 -83
- package/dist/plugins/abi-D3V-QUSf.cjs +1 -0
- package/dist/plugins/abi-NP8pNxpd.js +42 -0
- package/dist/plugins/arrays-Dr_1hCjL.js +28 -0
- package/dist/plugins/arrays-Dt-Joc4i.cjs +1 -0
- package/dist/plugins/assertions-gtDVfbnQ.js +6 -0
- package/dist/plugins/assertions-z5GQd_bB.cjs +1 -0
- package/dist/{extensions → plugins}/editor/editor.d.cts +54 -54
- package/dist/{extensions → plugins}/editor/editor.d.ts +54 -54
- package/dist/plugins/editor/editor.d.ts.map +1 -0
- package/dist/{extensions → plugins}/editor/field_handle.d.cts +12 -12
- package/dist/{extensions → plugins}/editor/field_handle.d.ts +12 -12
- package/dist/plugins/editor/field_handle.d.ts.map +1 -0
- package/dist/plugins/editor/index.d.cts +22 -0
- package/dist/plugins/editor/index.d.ts +22 -0
- package/dist/plugins/editor/index.d.ts.map +1 -0
- package/dist/plugins/editor.cjs +1 -0
- package/dist/plugins/editor.d.cts +1 -0
- package/dist/plugins/editor.d.ts +1 -0
- package/dist/plugins/editor.development.cjs +1 -0
- package/dist/{extensions/editor/index.development.js → plugins/editor.development.js} +81 -64
- package/dist/{extensions/editor/index.js → plugins/editor.js} +81 -64
- package/dist/plugins/events/event_channel.d.cts +13 -0
- package/dist/plugins/events/event_channel.d.ts +13 -0
- package/dist/plugins/events/event_channel.d.ts.map +1 -0
- package/dist/plugins/events/event_registry.d.cts +22 -0
- package/dist/plugins/events/event_registry.d.ts +22 -0
- package/dist/plugins/events/event_registry.d.ts.map +1 -0
- package/dist/plugins/events/facade.d.cts +26 -0
- package/dist/plugins/events/facade.d.ts +26 -0
- package/dist/plugins/events/facade.d.ts.map +1 -0
- package/dist/plugins/events/index.d.cts +10 -0
- package/dist/plugins/events/index.d.ts +10 -0
- package/dist/plugins/events/index.d.ts.map +1 -0
- package/dist/plugins/events.cjs +1 -0
- package/dist/plugins/events.d.cts +1 -0
- package/dist/plugins/events.d.ts +1 -0
- package/dist/plugins/events.development.cjs +1 -0
- package/dist/plugins/events.development.js +174 -0
- package/dist/plugins/events.js +159 -0
- package/dist/plugins/observers/index.d.cts +23 -0
- package/dist/plugins/observers/index.d.ts +23 -0
- package/dist/plugins/observers/index.d.ts.map +1 -0
- package/dist/plugins/observers/observer_registry.d.cts +101 -0
- package/dist/plugins/observers/observer_registry.d.ts +101 -0
- package/dist/plugins/observers/observer_registry.d.ts.map +1 -0
- package/dist/plugins/observers.cjs +1 -0
- package/dist/plugins/observers.d.cts +1 -0
- package/dist/plugins/observers.d.ts +1 -0
- package/dist/plugins/observers.development.cjs +1 -0
- package/dist/plugins/observers.development.js +431 -0
- package/dist/plugins/observers.js +403 -0
- package/dist/plugins/relation_store-BsoegrZh.js +313 -0
- package/dist/plugins/relation_store-DQKSnxsm.cjs +1 -0
- package/dist/plugins/relation_store-RBhpcE28.cjs +1 -0
- package/dist/plugins/relation_store-RqW5Snx6.js +328 -0
- package/dist/plugins/relations/builtin_relations.d.cts +48 -0
- package/dist/plugins/relations/builtin_relations.d.ts +48 -0
- package/dist/plugins/relations/builtin_relations.d.ts.map +1 -0
- package/dist/plugins/relations/facade.d.cts +73 -0
- package/dist/plugins/relations/facade.d.ts +73 -0
- package/dist/plugins/relations/facade.d.ts.map +1 -0
- package/dist/plugins/relations/index.d.cts +11 -0
- package/dist/plugins/relations/index.d.ts +11 -0
- package/dist/plugins/relations/index.d.ts.map +1 -0
- package/dist/{core/ecs → plugins/relations}/relation_service.d.cts +85 -97
- package/dist/{core/ecs → plugins/relations}/relation_service.d.ts +85 -97
- package/dist/plugins/relations/relation_service.d.ts.map +1 -0
- package/dist/plugins/relations/relation_store.d.cts +177 -0
- package/dist/plugins/relations/relation_store.d.ts +177 -0
- package/dist/plugins/relations/relation_store.d.ts.map +1 -0
- package/dist/plugins/relations.cjs +1 -0
- package/dist/plugins/relations.d.cts +1 -0
- package/dist/plugins/relations.d.ts +1 -0
- package/dist/plugins/relations.development.cjs +1 -0
- package/dist/plugins/relations.development.js +603 -0
- package/dist/plugins/relations.js +553 -0
- package/dist/plugins/snapshots/index.d.cts +33 -0
- package/dist/plugins/snapshots/index.d.ts +33 -0
- package/dist/plugins/snapshots/index.d.ts.map +1 -0
- package/dist/plugins/snapshots/resume.d.cts +57 -0
- package/dist/plugins/snapshots/resume.d.ts +57 -0
- package/dist/plugins/snapshots/resume.d.ts.map +1 -0
- package/dist/plugins/snapshots/snapshot_service.d.cts +59 -0
- package/dist/plugins/snapshots/snapshot_service.d.ts +59 -0
- package/dist/plugins/snapshots/snapshot_service.d.ts.map +1 -0
- package/dist/plugins/snapshots.cjs +1 -0
- package/dist/plugins/snapshots.d.cts +1 -0
- package/dist/plugins/snapshots.d.ts +1 -0
- package/dist/plugins/snapshots.development.cjs +1 -0
- package/dist/plugins/snapshots.development.js +737 -0
- package/dist/plugins/snapshots.js +737 -0
- package/dist/plugins/solid/index.d.cts +8 -0
- package/dist/plugins/solid/index.d.ts +8 -0
- package/dist/plugins/solid/index.d.ts.map +1 -0
- package/dist/plugins/solid/solid.d.cts +97 -0
- package/dist/plugins/solid/solid.d.ts +97 -0
- package/dist/plugins/solid/solid.d.ts.map +1 -0
- package/dist/plugins/solid.cjs +1 -0
- package/dist/plugins/solid.d.cts +1 -0
- package/dist/plugins/solid.d.ts +1 -0
- package/dist/plugins/solid.development.cjs +1 -0
- package/dist/plugins/solid.development.js +319 -0
- package/dist/plugins/solid.js +319 -0
- package/dist/plugins/workers/index.d.cts +75 -0
- package/dist/plugins/workers/index.d.ts +75 -0
- package/dist/plugins/workers/index.d.ts.map +1 -0
- package/dist/plugins/workers/node_threads.d.cts +25 -0
- package/dist/plugins/workers/node_threads.d.ts +25 -0
- package/dist/plugins/workers/node_threads.d.ts.map +1 -0
- package/dist/plugins/workers/plan.d.cts +61 -0
- package/dist/plugins/workers/plan.d.ts +61 -0
- package/dist/plugins/workers/plan.d.ts.map +1 -0
- package/dist/plugins/workers/pool.d.cts +144 -0
- package/dist/plugins/workers/pool.d.ts +144 -0
- package/dist/plugins/workers/pool.d.ts.map +1 -0
- package/dist/plugins/workers/protocol.d.cts +112 -0
- package/dist/plugins/workers/protocol.d.ts +112 -0
- package/dist/plugins/workers/protocol.d.ts.map +1 -0
- package/dist/plugins/workers/worker_bind.d.cts +64 -0
- package/dist/plugins/workers/worker_bind.d.ts +64 -0
- package/dist/plugins/workers/worker_bind.d.ts.map +1 -0
- package/dist/plugins/workers/worker_loop.d.cts +14 -0
- package/dist/plugins/workers/worker_loop.d.ts +14 -0
- package/dist/plugins/workers/worker_loop.d.ts.map +1 -0
- package/dist/plugins/workers.cjs +1 -0
- package/dist/plugins/workers.d.cts +1 -0
- package/dist/plugins/workers.d.ts +1 -0
- package/dist/plugins/workers.development.cjs +1 -0
- package/dist/plugins/workers.development.js +596 -0
- package/dist/plugins/workers.js +474 -0
- package/dist/primitives.cjs +1 -1
- package/dist/primitives.d.cts +4 -4
- package/dist/primitives.d.ts +4 -4
- package/dist/primitives.development.cjs +1 -1
- package/dist/primitives.development.js +66 -22
- package/dist/primitives.js +66 -22
- package/dist/shared-BKl12xF1.js +132 -0
- package/dist/shared-Dk-pACZT.cjs +1 -0
- package/dist/shared.cjs +1 -1
- package/dist/shared.d.cts +7 -7
- package/dist/shared.d.ts +7 -7
- package/dist/shared.d.ts.map +1 -1
- package/dist/shared.development.cjs +1 -1
- package/dist/shared.development.js +4 -3
- package/dist/shared.js +4 -3
- package/dist/topological_sort-Cc_yXqPT.js +346 -0
- package/dist/topological_sort-vp1imU6D.cjs +1 -0
- package/dist/type_primitives/assertions.d.cts +12 -16
- package/dist/type_primitives/assertions.d.ts +12 -16
- package/dist/type_primitives/assertions.d.ts.map +1 -1
- package/dist/type_primitives/binary_heap/binary_heap.d.cts +2 -6
- package/dist/type_primitives/binary_heap/binary_heap.d.ts +2 -6
- package/dist/type_primitives/binary_heap/binary_heap.d.ts.map +1 -1
- package/dist/type_primitives/bitset/bitset.d.cts +7 -11
- package/dist/type_primitives/bitset/bitset.d.ts +7 -11
- package/dist/type_primitives/bitset/bitset.d.ts.map +1 -1
- package/dist/type_primitives/brand.d.cts +2 -7
- package/dist/type_primitives/brand.d.ts +2 -7
- package/dist/type_primitives/brand.d.ts.map +1 -1
- package/dist/type_primitives/error.d.cts +1 -2
- package/dist/type_primitives/error.d.ts +1 -2
- package/dist/type_primitives/error.d.ts.map +1 -1
- package/dist/type_primitives/index.d.cts +1 -1
- package/dist/type_primitives/index.d.ts +1 -1
- package/dist/type_primitives/sparse_map/sparse_map.d.cts +3 -7
- package/dist/type_primitives/sparse_map/sparse_map.d.ts +3 -7
- package/dist/type_primitives/sparse_map/sparse_map.d.ts.map +1 -1
- package/dist/type_primitives/sparse_set/sparse_set.d.cts +2 -6
- package/dist/type_primitives/sparse_set/sparse_set.d.ts +2 -6
- package/dist/type_primitives/sparse_set/sparse_set.d.ts.map +1 -1
- package/dist/type_primitives/topological_sort/topological_sort.d.cts +1 -5
- package/dist/type_primitives/topological_sort/topological_sort.d.ts +1 -5
- package/dist/type_primitives/topological_sort/topological_sort.d.ts.map +1 -1
- package/dist/type_primitives/typed_arrays/typed_arrays.d.cts +16 -15
- package/dist/type_primitives/typed_arrays/typed_arrays.d.ts +16 -15
- package/dist/type_primitives/typed_arrays/typed_arrays.d.ts.map +1 -1
- package/dist/utils/error.d.ts.map +1 -1
- package/dist/version.d.cts +3 -3
- package/dist/version.d.ts +3 -3
- package/dist/worker.cjs +1 -0
- package/dist/worker.d.cts +17 -0
- package/dist/worker.d.ts +17 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.development.cjs +1 -0
- package/dist/worker.development.js +253 -0
- package/dist/worker.js +253 -0
- package/package.json +363 -191
- package/dist/core/ecs/builtin_relations.d.cts +0 -43
- package/dist/core/ecs/builtin_relations.d.ts +0 -43
- package/dist/core/ecs/builtin_relations.d.ts.map +0 -1
- package/dist/core/ecs/event_registry.d.cts +0 -22
- package/dist/core/ecs/event_registry.d.ts +0 -22
- package/dist/core/ecs/event_registry.d.ts.map +0 -1
- package/dist/core/ecs/relation_service.d.ts.map +0 -1
- package/dist/core/ecs/resume.d.cts +0 -85
- package/dist/core/ecs/resume.d.ts +0 -85
- package/dist/core/ecs/resume.d.ts.map +0 -1
- package/dist/core/ecs/snapshot_service.d.cts +0 -94
- package/dist/core/ecs/snapshot_service.d.ts +0 -94
- package/dist/core/ecs/snapshot_service.d.ts.map +0 -1
- package/dist/extensions/editor/editor.d.ts.map +0 -1
- package/dist/extensions/editor/field_handle.d.ts.map +0 -1
- package/dist/extensions/editor/index.cjs +0 -1
- package/dist/extensions/editor/index.d.cts +0 -21
- package/dist/extensions/editor/index.d.ts +0 -21
- package/dist/extensions/editor/index.d.ts.map +0 -1
- package/dist/extensions/editor/index.development.cjs +0 -1
- package/dist/extensions/reactive/ecs_sync.d.cts +0 -214
- package/dist/extensions/reactive/ecs_sync.d.ts +0 -214
- package/dist/extensions/reactive/ecs_sync.d.ts.map +0 -1
- package/dist/extensions/reactive/index.cjs +0 -1
- package/dist/extensions/reactive/index.d.cts +0 -23
- package/dist/extensions/reactive/index.d.ts +0 -23
- package/dist/extensions/reactive/index.d.ts.map +0 -1
- package/dist/extensions/reactive/index.development.cjs +0 -1
- package/dist/extensions/reactive/index.development.js +0 -215
- package/dist/extensions/reactive/index.js +0 -215
- package/dist/extensions/solid/index.cjs +0 -1
- package/dist/extensions/solid/index.d.cts +0 -6
- package/dist/extensions/solid/index.d.ts +0 -6
- package/dist/extensions/solid/index.d.ts.map +0 -1
- package/dist/extensions/solid/index.development.cjs +0 -1
- package/dist/extensions/solid/index.development.js +0 -40
- package/dist/extensions/solid/index.js +0 -36
- package/dist/extensions/solid/kernel_solid.d.cts +0 -45
- package/dist/extensions/solid/kernel_solid.d.ts +0 -45
- package/dist/extensions/solid/kernel_solid.d.ts.map +0 -1
- package/dist/host_commands-BlR3oZ3x.js +0 -2406
- package/dist/host_commands-C2cpU3yC.cjs +0 -1
- package/dist/internal-BoxWl4dG.js +0 -2565
- package/dist/internal-CGBEwfeB.cjs +0 -2
- package/dist/interop-CT-REx0W.cjs +0 -1
- package/dist/interop-CcY6ASQc.js +0 -18
- package/dist/interop-DqxleBo7.js +0 -18
- package/dist/interop-T1HZ-Dpa.cjs +0 -1
- package/dist/kernel-Cz2Kxlwl.js +0 -240
- package/dist/kernel-DgyrLFjW.js +0 -227
- package/dist/kernel-sw7ScKWu.cjs +0 -1
- package/dist/kernel-yWV3XnAb.cjs +0 -1
- package/dist/reactive/array.d.cts +0 -24
- package/dist/reactive/array.d.ts +0 -24
- package/dist/reactive/array.d.ts.map +0 -1
- package/dist/reactive/index.cjs +0 -1
- package/dist/reactive/index.d.cts +0 -11
- package/dist/reactive/index.d.ts +0 -11
- package/dist/reactive/index.d.ts.map +0 -1
- package/dist/reactive/index.development.cjs +0 -1
- package/dist/reactive/index.development.js +0 -18
- package/dist/reactive/index.js +0 -18
- package/dist/reactive/interop.d.cts +0 -19
- package/dist/reactive/interop.d.ts +0 -19
- package/dist/reactive/interop.d.ts.map +0 -1
- package/dist/reactive/kernel.d.cts +0 -73
- package/dist/reactive/kernel.d.ts +0 -73
- package/dist/reactive/kernel.d.ts.map +0 -1
- package/dist/reactive/map.d.cts +0 -16
- package/dist/reactive/map.d.ts +0 -16
- package/dist/reactive/map.d.ts.map +0 -1
- package/dist/reactive/shallow.d.cts +0 -11
- package/dist/reactive/shallow.d.ts +0 -11
- package/dist/reactive/shallow.d.ts.map +0 -1
- package/dist/reactive/struct.d.cts +0 -10
- package/dist/reactive/struct.d.ts +0 -10
- package/dist/reactive/struct.d.ts.map +0 -1
- package/dist/shallow-Bs39EPh1.js +0 -150
- package/dist/shallow-C5YmTbtb.cjs +0 -1
- package/dist/shallow-CiFC70Dz.js +0 -159
- package/dist/shallow-DQ8aG51_.cjs +0 -1
- package/dist/shared-B4v0L1cw.js +0 -109
- package/dist/shared-DU78k0pU.cjs +0 -1
- package/dist/topological_sort-BDvEyb9W.cjs +0 -1
- package/dist/topological_sort-DK6EjpWa.js +0 -135
- package/dist/typed_arrays-D3NmwtCG.cjs +0 -1
- package/dist/typed_arrays-DIVwVy5_.js +0 -258
|
@@ -3,24 +3,24 @@ import { ResourceKey } from './resource.cjs';
|
|
|
3
3
|
import { Query } from './query.cjs';
|
|
4
4
|
/**
|
|
5
5
|
* The read-only slice of `SystemContext` a run condition is handed. Deliberately
|
|
6
|
-
* narrow
|
|
6
|
+
* narrow, a condition can read the ECS tick and resources, but has no path to
|
|
7
7
|
* mutate the world or read component columns directly (component reads go
|
|
8
8
|
* through a captured `Query`). `SystemContext` structurally satisfies this, so
|
|
9
9
|
* the schedule passes the live context unchanged.
|
|
10
10
|
*/
|
|
11
11
|
export interface ConditionContext {
|
|
12
|
-
/** Current ECS tick
|
|
12
|
+
/** Current ECS tick, the deterministic clock built-ins key off. */
|
|
13
13
|
readonly ecsTick: number;
|
|
14
14
|
/** Read a resource value (checked against `resourceReads` in `DEV`). */
|
|
15
15
|
getResource<T>(key: ResourceKey<T>): T;
|
|
16
|
-
/** Membership probe for a resource
|
|
16
|
+
/** Membership probe for a resource, unchecked, mirrors `hasComponent`. */
|
|
17
17
|
hasResource<T>(key: ResourceKey<T>): boolean;
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
20
|
* A per-tick gate. `evaluate` returns `true` to run the gated system(s), `false`
|
|
21
|
-
* to skip them this tick. `reads`
|
|
21
|
+
* to skip them this tick. `reads` and `resourceReads` declare the predicate's
|
|
22
22
|
* read surface for `accessCheck` (dev) and the future parallel scheduler's
|
|
23
|
-
* read-edge graph
|
|
23
|
+
* read-edge graph. Both are optional (absent reads as empty).
|
|
24
24
|
*/
|
|
25
25
|
export interface RunCondition {
|
|
26
26
|
/** Human-readable label, surfaced in dev access-violation diagnostics. */
|
|
@@ -28,7 +28,7 @@ export interface RunCondition {
|
|
|
28
28
|
/** Pure, deterministic predicate. See the two hard rules in the file header. */
|
|
29
29
|
readonly evaluate: (ctx: ConditionContext) => boolean;
|
|
30
30
|
/** Components the predicate reads (via a captured query). Forward-looking
|
|
31
|
-
* metadata
|
|
31
|
+
* metadata, `ConditionContext` exposes no direct column read, so this is
|
|
32
32
|
* not runtime-checkable today, but it is the read-edge a parallel scheduler
|
|
33
33
|
* will consume. */
|
|
34
34
|
readonly reads?: readonly ComponentDef[];
|
|
@@ -38,44 +38,44 @@ export interface RunCondition {
|
|
|
38
38
|
}
|
|
39
39
|
/**
|
|
40
40
|
* Run the gated system(s) only while a resource equals `expected` (strict `===`,
|
|
41
|
-
* so reference identity for objects). The canonical
|
|
42
|
-
*
|
|
41
|
+
* so reference identity for objects). The canonical gate for a feature flag or
|
|
42
|
+
* a game phase. Flip `ecs.resources.set(key, …)` and the whole group toggles.
|
|
43
43
|
*/
|
|
44
44
|
export declare function runIfResourceEq<T>(key: ResourceKey<T>, expected: T): RunCondition;
|
|
45
45
|
/**
|
|
46
|
-
* Run the gated system(s) once every `n` ticks
|
|
46
|
+
* Run the gated system(s) once every `n` ticks, on ticks congruent to `offset`
|
|
47
47
|
* mod `n`. Keyed off the deterministic ECS tick, so it carries no private
|
|
48
48
|
* state and replays bit-identically. `offset` is a **phase shift taken mod `n`**
|
|
49
|
-
* (default `0` ⇒ fires on tick 0, n, 2n,
|
|
49
|
+
* (default `0` ⇒ fires on tick 0, n, 2n, …, `offset` and `offset + n` are the
|
|
50
50
|
* same phase, and a negative offset wraps), normalized once here into `[0, n)`.
|
|
51
51
|
* `n` must be a positive integer and `offset` an integer.
|
|
52
52
|
*
|
|
53
53
|
* The normalization isn't cosmetic: `(ecsTick - offset) % n` with a raw
|
|
54
54
|
* `offset ≥ n` (or negative) leans on JS's signed `%` yielding `-0` for a
|
|
55
|
-
* negative multiple (and `-0 === 0`) to stay congruent
|
|
56
|
-
* bearing on a quirk. Folding `offset` into `[0, n)` up front makes the
|
|
55
|
+
* negative multiple (and `-0 === 0`) to stay congruent, correct, but load-
|
|
56
|
+
* bearing on a quirk. Folding `offset` into `[0, n)` up front makes the folded offset
|
|
57
57
|
* explicit: the per-tick dividend `ecsTick - phase` may still be negative
|
|
58
58
|
* (when `ecsTick < phase`), but with `phase ∈ [0, n)` it is never a *negative
|
|
59
|
-
* multiple* of `n
|
|
60
|
-
*
|
|
59
|
+
* multiple* of `n`. It lands in `[-(n-1), -1]`, which holds no multiple of `n`,
|
|
60
|
+
* so `%` never produces `-0` and the check needs no signed-zero reliance.
|
|
61
61
|
*/
|
|
62
62
|
export declare function runEveryNTicks(n: number, offset?: number): RunCondition;
|
|
63
63
|
/**
|
|
64
64
|
* Run the gated system(s) only when a query matches at least one (enabled)
|
|
65
|
-
* entity
|
|
66
|
-
* its component defs are declared as `reads`. `
|
|
67
|
-
* matching archetypes
|
|
65
|
+
* entity, flecs `runIf` over a query. The query is captured at config time, and
|
|
66
|
+
* its component defs are declared as `reads`. `entityCount` is a membership sum
|
|
67
|
+
* over matching archetypes and reads no column, so it trips no `accessCheck` read.
|
|
68
68
|
*
|
|
69
69
|
* The query must be **dense-only**: `entityCount` asserts this in `DEV`
|
|
70
|
-
* (`_assertDenseOnly`), so pass a plain `ecs.query(...)
|
|
70
|
+
* (`_assertDenseOnly`), so pass a plain `ecs.query(...)`, a query carrying
|
|
71
71
|
* `.optional(...)` or sparse terms throws. Gate on sparse membership with a
|
|
72
72
|
* custom predicate over `forEachEntity` instead.
|
|
73
73
|
*/
|
|
74
74
|
export declare function runIfAnyMatch(query: Query<readonly ComponentDef[]>): RunCondition;
|
|
75
75
|
/** Invert a condition: run exactly when `cond` would skip. */
|
|
76
|
-
export declare function
|
|
77
|
-
/** Run only when
|
|
78
|
-
export declare function
|
|
79
|
-
/** Run when
|
|
80
|
-
export declare function
|
|
76
|
+
export declare function runIfNot(cond: RunCondition): RunCondition;
|
|
77
|
+
/** Run only when every condition passes (`&&`, short-circuit). */
|
|
78
|
+
export declare function runIfAll(...conds: RunCondition[]): RunCondition;
|
|
79
|
+
/** Run when any condition passes (`||`, short-circuit). */
|
|
80
|
+
export declare function runIfAny(...conds: RunCondition[]): RunCondition;
|
|
81
81
|
//# sourceMappingURL=run_condition.d.ts.map
|
|
@@ -3,24 +3,24 @@ import { ResourceKey } from './resource.js';
|
|
|
3
3
|
import { Query } from './query.js';
|
|
4
4
|
/**
|
|
5
5
|
* The read-only slice of `SystemContext` a run condition is handed. Deliberately
|
|
6
|
-
* narrow
|
|
6
|
+
* narrow, a condition can read the ECS tick and resources, but has no path to
|
|
7
7
|
* mutate the world or read component columns directly (component reads go
|
|
8
8
|
* through a captured `Query`). `SystemContext` structurally satisfies this, so
|
|
9
9
|
* the schedule passes the live context unchanged.
|
|
10
10
|
*/
|
|
11
11
|
export interface ConditionContext {
|
|
12
|
-
/** Current ECS tick
|
|
12
|
+
/** Current ECS tick, the deterministic clock built-ins key off. */
|
|
13
13
|
readonly ecsTick: number;
|
|
14
14
|
/** Read a resource value (checked against `resourceReads` in `DEV`). */
|
|
15
15
|
getResource<T>(key: ResourceKey<T>): T;
|
|
16
|
-
/** Membership probe for a resource
|
|
16
|
+
/** Membership probe for a resource, unchecked, mirrors `hasComponent`. */
|
|
17
17
|
hasResource<T>(key: ResourceKey<T>): boolean;
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
20
|
* A per-tick gate. `evaluate` returns `true` to run the gated system(s), `false`
|
|
21
|
-
* to skip them this tick. `reads`
|
|
21
|
+
* to skip them this tick. `reads` and `resourceReads` declare the predicate's
|
|
22
22
|
* read surface for `accessCheck` (dev) and the future parallel scheduler's
|
|
23
|
-
* read-edge graph
|
|
23
|
+
* read-edge graph. Both are optional (absent reads as empty).
|
|
24
24
|
*/
|
|
25
25
|
export interface RunCondition {
|
|
26
26
|
/** Human-readable label, surfaced in dev access-violation diagnostics. */
|
|
@@ -28,7 +28,7 @@ export interface RunCondition {
|
|
|
28
28
|
/** Pure, deterministic predicate. See the two hard rules in the file header. */
|
|
29
29
|
readonly evaluate: (ctx: ConditionContext) => boolean;
|
|
30
30
|
/** Components the predicate reads (via a captured query). Forward-looking
|
|
31
|
-
* metadata
|
|
31
|
+
* metadata, `ConditionContext` exposes no direct column read, so this is
|
|
32
32
|
* not runtime-checkable today, but it is the read-edge a parallel scheduler
|
|
33
33
|
* will consume. */
|
|
34
34
|
readonly reads?: readonly ComponentDef[];
|
|
@@ -38,44 +38,44 @@ export interface RunCondition {
|
|
|
38
38
|
}
|
|
39
39
|
/**
|
|
40
40
|
* Run the gated system(s) only while a resource equals `expected` (strict `===`,
|
|
41
|
-
* so reference identity for objects). The canonical
|
|
42
|
-
*
|
|
41
|
+
* so reference identity for objects). The canonical gate for a feature flag or
|
|
42
|
+
* a game phase. Flip `ecs.resources.set(key, …)` and the whole group toggles.
|
|
43
43
|
*/
|
|
44
44
|
export declare function runIfResourceEq<T>(key: ResourceKey<T>, expected: T): RunCondition;
|
|
45
45
|
/**
|
|
46
|
-
* Run the gated system(s) once every `n` ticks
|
|
46
|
+
* Run the gated system(s) once every `n` ticks, on ticks congruent to `offset`
|
|
47
47
|
* mod `n`. Keyed off the deterministic ECS tick, so it carries no private
|
|
48
48
|
* state and replays bit-identically. `offset` is a **phase shift taken mod `n`**
|
|
49
|
-
* (default `0` ⇒ fires on tick 0, n, 2n,
|
|
49
|
+
* (default `0` ⇒ fires on tick 0, n, 2n, …, `offset` and `offset + n` are the
|
|
50
50
|
* same phase, and a negative offset wraps), normalized once here into `[0, n)`.
|
|
51
51
|
* `n` must be a positive integer and `offset` an integer.
|
|
52
52
|
*
|
|
53
53
|
* The normalization isn't cosmetic: `(ecsTick - offset) % n` with a raw
|
|
54
54
|
* `offset ≥ n` (or negative) leans on JS's signed `%` yielding `-0` for a
|
|
55
|
-
* negative multiple (and `-0 === 0`) to stay congruent
|
|
56
|
-
* bearing on a quirk. Folding `offset` into `[0, n)` up front makes the
|
|
55
|
+
* negative multiple (and `-0 === 0`) to stay congruent, correct, but load-
|
|
56
|
+
* bearing on a quirk. Folding `offset` into `[0, n)` up front makes the folded offset
|
|
57
57
|
* explicit: the per-tick dividend `ecsTick - phase` may still be negative
|
|
58
58
|
* (when `ecsTick < phase`), but with `phase ∈ [0, n)` it is never a *negative
|
|
59
|
-
* multiple* of `n
|
|
60
|
-
*
|
|
59
|
+
* multiple* of `n`. It lands in `[-(n-1), -1]`, which holds no multiple of `n`,
|
|
60
|
+
* so `%` never produces `-0` and the check needs no signed-zero reliance.
|
|
61
61
|
*/
|
|
62
62
|
export declare function runEveryNTicks(n: number, offset?: number): RunCondition;
|
|
63
63
|
/**
|
|
64
64
|
* Run the gated system(s) only when a query matches at least one (enabled)
|
|
65
|
-
* entity
|
|
66
|
-
* its component defs are declared as `reads`. `
|
|
67
|
-
* matching archetypes
|
|
65
|
+
* entity, flecs `runIf` over a query. The query is captured at config time, and
|
|
66
|
+
* its component defs are declared as `reads`. `entityCount` is a membership sum
|
|
67
|
+
* over matching archetypes and reads no column, so it trips no `accessCheck` read.
|
|
68
68
|
*
|
|
69
69
|
* The query must be **dense-only**: `entityCount` asserts this in `DEV`
|
|
70
|
-
* (`_assertDenseOnly`), so pass a plain `ecs.query(...)
|
|
70
|
+
* (`_assertDenseOnly`), so pass a plain `ecs.query(...)`, a query carrying
|
|
71
71
|
* `.optional(...)` or sparse terms throws. Gate on sparse membership with a
|
|
72
72
|
* custom predicate over `forEachEntity` instead.
|
|
73
73
|
*/
|
|
74
74
|
export declare function runIfAnyMatch(query: Query<readonly ComponentDef[]>): RunCondition;
|
|
75
75
|
/** Invert a condition: run exactly when `cond` would skip. */
|
|
76
|
-
export declare function
|
|
77
|
-
/** Run only when
|
|
78
|
-
export declare function
|
|
79
|
-
/** Run when
|
|
80
|
-
export declare function
|
|
76
|
+
export declare function runIfNot(cond: RunCondition): RunCondition;
|
|
77
|
+
/** Run only when every condition passes (`&&`, short-circuit). */
|
|
78
|
+
export declare function runIfAll(...conds: RunCondition[]): RunCondition;
|
|
79
|
+
/** Run when any condition passes (`||`, short-circuit). */
|
|
80
|
+
export declare function runIfAny(...conds: RunCondition[]): RunCondition;
|
|
81
81
|
//# sourceMappingURL=run_condition.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run_condition.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/run_condition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8BK;AAEL,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAIrC;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAChC,
|
|
1
|
+
{"version":3,"file":"run_condition.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/run_condition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8BK;AAEL,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAIrC;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAChC,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACvC,0EAA0E;IAC1E,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;CAC7C;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC5B,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,OAAO,CAAC;IACtD;;;wBAGoB;IACpB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACzC;mEAC+D;IAC/D,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;CACrD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,YAAY,CAcjF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,YAAY,CAoBlE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,YAAY,EAAE,CAAC,GAAG,YAAY,CAMjF;AAgCD,8DAA8D;AAC9D,wBAAgB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAMzD;AAED,kEAAkE;AAClE,wBAAgB,QAAQ,CAAC,GAAG,KAAK,EAAE,YAAY,EAAE,GAAG,YAAY,CAM/D;AAED,2DAA2D;AAC3D,wBAAgB,QAAQ,CAAC,GAAG,KAAK,EAAE,YAAY,EAAE,GAAG,YAAY,CAM/D"}
|
|
@@ -1,155 +1,126 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SystemEntry, SystemSet, SystemSetConfig } from './system_set.cjs';
|
|
2
|
+
import { Phase, PhaseConfig, SchedulePhase } from './phase.cjs';
|
|
3
|
+
import { SystemContext } from './system_context.cjs';
|
|
2
4
|
import { SystemDescriptor } from './system.cjs';
|
|
3
5
|
import { ComputeBackend } from './compute_backend.cjs';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
* run condition and shared ordering that every member inherits. Sets are
|
|
17
|
-
* identified by **object identity**, not by name — create one with
|
|
18
|
-
* `systemSet(name)`, hold the handle, and reuse it across `addSystems`
|
|
19
|
-
* (`SystemEntry.set`) and `Schedule.configureSet`. The `name` is for
|
|
20
|
-
* diagnostics only.
|
|
21
|
-
*/
|
|
22
|
-
export interface SystemSet {
|
|
23
|
-
readonly name: string;
|
|
24
|
-
}
|
|
25
|
-
/** Create a `SystemSet` handle. Two calls with the same name are two
|
|
26
|
-
* distinct sets — keep the returned handle and pass it around. */
|
|
27
|
-
export declare function systemSet(name: string): SystemSet;
|
|
28
|
-
/** A `before`/`after` ordering target: either a concrete system or a whole set
|
|
29
|
-
* (expanded to its members within the same phase at sort time). */
|
|
30
|
-
export type SystemOrderingTarget = SystemDescriptor | SystemSet;
|
|
31
|
-
/** Shared configuration applied to a `SystemSet` via `configureSet`.
|
|
32
|
-
* Accumulates across calls — conditions AND together, ordering targets union. */
|
|
33
|
-
export interface SystemSetConfig {
|
|
34
|
-
/** Condition(s) every member is gated by (ANDed with each member's own). */
|
|
35
|
-
runIf?: RunCondition | readonly RunCondition[];
|
|
36
|
-
/** Every member runs before each of these targets. */
|
|
37
|
-
before?: readonly SystemOrderingTarget[];
|
|
38
|
-
/** Every member runs after each of these targets. */
|
|
39
|
-
after?: readonly SystemOrderingTarget[];
|
|
40
|
-
}
|
|
41
|
-
export interface SystemOrdering {
|
|
42
|
-
before?: readonly SystemOrderingTarget[];
|
|
43
|
-
after?: readonly SystemOrderingTarget[];
|
|
44
|
-
}
|
|
45
|
-
export interface SystemEntry {
|
|
46
|
-
system: SystemDescriptor;
|
|
47
|
-
ordering?: SystemOrdering;
|
|
48
|
-
/** Run condition(s) gating just this system — ANDed with any set conditions
|
|
49
|
-
* it inherits. A `false` verdict skips the body that tick. */
|
|
50
|
-
runIf?: RunCondition | readonly RunCondition[];
|
|
51
|
-
/** Set membership — the system inherits each set's shared condition and
|
|
52
|
-
* ordering. */
|
|
53
|
-
set?: SystemSet | readonly SystemSet[];
|
|
6
|
+
/** What the schedule needs of a worker pool, and nothing more.
|
|
7
|
+
*
|
|
8
|
+
* The pool ships in the workers plugin, so a class reference here would pull
|
|
9
|
+
* the pool, the plan builder and the node threads shim into every program.
|
|
10
|
+
* This interface is structural, and it erases, so the core graph reaches none
|
|
11
|
+
* of them. `run` answers false below the row threshold, before the kernel is
|
|
12
|
+
* loaded, and after a failed join. Then the sequential body runs. */
|
|
13
|
+
export interface RouteDispatch {
|
|
14
|
+
/** `plan` is the opaque value the descriptor carries. The schedule loads
|
|
15
|
+
* it and passes it on, and only the route reads inside it. Answering false
|
|
16
|
+
* puts this dispatch back on the system's own `fn`. */
|
|
17
|
+
run(plan: object, ctx: SystemContext, deltaTime: number, runTick: number): boolean;
|
|
54
18
|
}
|
|
55
19
|
export declare class Schedule {
|
|
56
|
-
private readonly
|
|
57
|
-
private readonly
|
|
58
|
-
private
|
|
59
|
-
private
|
|
60
|
-
private
|
|
61
|
-
private readonly
|
|
20
|
+
private readonly _phases;
|
|
21
|
+
private readonly _builtins;
|
|
22
|
+
private _startupOrder;
|
|
23
|
+
private _fixedOrder;
|
|
24
|
+
private _updateOrder;
|
|
25
|
+
private readonly _phaseBySystem;
|
|
26
|
+
private readonly _lastRunTicks;
|
|
27
|
+
private readonly _slotBySystem;
|
|
28
|
+
private readonly _freeSlots;
|
|
62
29
|
private _driveDepth;
|
|
63
|
-
private readonly
|
|
64
|
-
private readonly
|
|
65
|
-
private readonly
|
|
66
|
-
private
|
|
30
|
+
private readonly _gatedSystems;
|
|
31
|
+
private readonly _conditionsBySet;
|
|
32
|
+
private readonly _orderingBySet;
|
|
33
|
+
private _nextInsertionOrder;
|
|
67
34
|
private _backend;
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
private readonly
|
|
35
|
+
private _route;
|
|
36
|
+
/** Dev-diagnostic sink (`ECSOptions.onWarn`). Defaults to `console.warn`.
|
|
37
|
+
* The only schedule diagnostic today is the dropped ordering edge
|
|
38
|
+
* `schedule_plan.ts` reports. */
|
|
39
|
+
private readonly _onWarn;
|
|
40
|
+
private _fixedSystemCount;
|
|
41
|
+
private _nextPhaseOrder;
|
|
73
42
|
constructor(onWarn?: (message: string) => void);
|
|
74
|
-
addSystems(label: SCHEDULE, ...entries: (SystemDescriptor | SystemEntry)[]): void;
|
|
75
43
|
/**
|
|
76
|
-
*
|
|
44
|
+
* Add one phase to a loop and hand back its handle. Cold path, setup only.
|
|
45
|
+
*
|
|
46
|
+
* `before` and `after` order it against the other phases of the same loop.
|
|
47
|
+
* A target in another loop is dropped, the way a system ordered against a
|
|
48
|
+
* system in another phase is dropped. With neither, the phase runs after
|
|
49
|
+
* every phase declared before it, so it lands at the tail of its loop.
|
|
50
|
+
*
|
|
51
|
+
* The handle is this world's. Two calls with one name make two phases, the
|
|
52
|
+
* rule `systemSet` already follows, so hold the handle rather than the name.
|
|
53
|
+
*/
|
|
54
|
+
addPhase(name: string, config: PhaseConfig): Phase;
|
|
55
|
+
private _declarePhase;
|
|
56
|
+
/** Check that a phase belongs to this schedule, and hand it back unchanged.
|
|
57
|
+
* Not a dev guard: a handle from another world would push systems into that
|
|
58
|
+
* world's list, and a production build that scheduled them into nothing is
|
|
59
|
+
* worse than a named fault on a setup call. */
|
|
60
|
+
private _checkPhase;
|
|
61
|
+
/** The node behind either spelling of a phase. Cold path. */
|
|
62
|
+
private _resolvePhase;
|
|
63
|
+
/** Sort one loop's phases and cache the result. Kahn's algorithm with
|
|
64
|
+
* declaration order as the tiebreaker, the same rule the systems inside a
|
|
65
|
+
* phase follow. Cold path, once per `addPhase`. */
|
|
66
|
+
private _resolveOrder;
|
|
67
|
+
addSystems(phase: SchedulePhase, ...entries: (SystemDescriptor | SystemEntry)[]): void;
|
|
68
|
+
/**
|
|
69
|
+
* Configure a `SystemSet`, its shared run conditions, or its
|
|
77
70
|
* ordering, inherited by every member. Additive and order-independent w.r.t.
|
|
78
71
|
* `addSystems`: conditions accumulate (ANDed), ordering targets union, and
|
|
79
72
|
* a member added before or after this call picks the configuration up.
|
|
80
73
|
*/
|
|
81
74
|
configureSet(set: SystemSet, config: SystemSetConfig): void;
|
|
82
75
|
removeSystem(system: SystemDescriptor): void;
|
|
76
|
+
/** Drop every cached plan. Cold path, and the reason each caller needs it
|
|
77
|
+
* sits at that call site. */
|
|
78
|
+
private _invalidatePlans;
|
|
83
79
|
/** Attach (or, with `null`, detach) the opt-in compute backend. Driven
|
|
84
|
-
* by `ECS.attachBackend
|
|
80
|
+
* by `ECS.attachBackend`. Routes any scheduled system carrying a
|
|
85
81
|
* `backendHandle` to `backend.run(handle)` in place of its `fn`. */
|
|
86
82
|
setBackend(backend: ComputeBackend | null): void;
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
83
|
+
/** Attach (or, with `null`, detach) the system dispatch route. Driven by
|
|
84
|
+
* the plugin that installed it. Runs any scheduled system carrying a
|
|
85
|
+
* `routePlan` through the route in place of its `fn`. */
|
|
86
|
+
setRoute(dispatch: RouteDispatch | null): void;
|
|
87
|
+
runStartup(ctx: SystemContext): void;
|
|
88
|
+
runUpdate(ctx: SystemContext, deltaTime: number): void;
|
|
89
|
+
runFixedUpdate(ctx: SystemContext, fixedDt: number): void;
|
|
90
90
|
hasFixedSystems(): boolean;
|
|
91
91
|
getAllSystems(): SystemDescriptor[];
|
|
92
92
|
hasSystem(system: SystemDescriptor): boolean;
|
|
93
|
-
/** Hand `descriptor` its `
|
|
94
|
-
* holes ⇒ no undefined-check on the read in `
|
|
93
|
+
/** Hand `descriptor` its `_lastRunTicks` slot, keeping the array packed (no
|
|
94
|
+
* holes ⇒ no undefined-check on the read in `_runPhase`, which is the whole
|
|
95
95
|
* point of it not being a `Map`). Idempotent for a descriptor already in this
|
|
96
|
-
* schedule
|
|
96
|
+
* schedule, `_getPlan` re-asks for every system it sorts. A descriptor that
|
|
97
97
|
* was removed and re-added gets a *fresh* slot starting at tick 0, which is
|
|
98
98
|
* what the previous `Map`-based bookkeeping did (`delete` on remove, `set(…, 0)`
|
|
99
99
|
* on re-add). */
|
|
100
100
|
private _assignLastRunSlot;
|
|
101
101
|
clear(): void;
|
|
102
|
-
private
|
|
102
|
+
private _runPhase;
|
|
103
103
|
/**
|
|
104
|
-
* Whether a gated system runs this tick
|
|
104
|
+
* Whether a gated system runs this tick, the and of its own conditions and
|
|
105
105
|
* every set it belongs to. A set's conditions are evaluated at most once per
|
|
106
106
|
* phase (memoized in `setVerdicts`) and the verdict gates every member of the
|
|
107
|
-
* set uniformly
|
|
108
|
-
* memo lives only for a single `
|
|
107
|
+
* set uniformly. A `configureSet` between phases is still honored because the
|
|
108
|
+
* memo lives only for a single `_runPhase` pass. Short-circuits on the first
|
|
109
109
|
* `false`. The system's own conditions evaluate per system, in canonical order.
|
|
110
110
|
*
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
* phase (
|
|
115
|
-
* unit, so
|
|
111
|
+
* This evaluates a set's conditions once for each set in each phase, and not
|
|
112
|
+
* once for each member. The two agree for a pure `RunCondition`. They differ
|
|
113
|
+
* only when a set condition reads state a system mutated earlier in the same
|
|
114
|
+
* phase (a resource writes immediately). That is intentional. The set gates
|
|
115
|
+
* as a unit, so every member shares one verdict for the phase.
|
|
116
116
|
*/
|
|
117
|
-
private
|
|
118
|
-
/** Evaluate a condition list with
|
|
117
|
+
private _shouldRun;
|
|
118
|
+
/** Evaluate a condition list with and semantics. Each predicate runs inside a
|
|
119
119
|
* reads-only `accessCheck` span (dev), so a condition that reads an
|
|
120
|
-
* undeclared resource
|
|
121
|
-
private
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
* Builds the dependency edge map from before/after constraints, then
|
|
126
|
-
* catches any cycle TypeError and re-throws as ECSError.
|
|
127
|
-
*/
|
|
128
|
-
private sortSystems;
|
|
129
|
-
/**
|
|
130
|
-
* Add the topo edges for one ordering list. For `"before"` the source
|
|
131
|
-
* runs before each target (edge source→target); for `"after"` it runs after
|
|
132
|
-
* each target (edge target→source). A `SystemSet` target expands to every
|
|
133
|
-
* member within this phase (self-edges skipped, so a member ordered against
|
|
134
|
-
* its own set is a no-op); a descriptor target absent from this phase is
|
|
135
|
-
* dropped — with a dev warning only for a concrete system, since a set
|
|
136
|
-
* legitimately expands to nothing when its members live in another phase.
|
|
137
|
-
*/
|
|
138
|
-
private resolveEdges;
|
|
139
|
-
/** Push one directed edge into the adjacency map. Both endpoints are known to
|
|
140
|
-
* be in this phase (callers guard), so `edges.get(...)` is non-null. */
|
|
141
|
-
private addDirectedEdge;
|
|
142
|
-
/**
|
|
143
|
-
* Dev-only diagnostic for an ordering edge that was dropped during sort.
|
|
144
|
-
*
|
|
145
|
-
* Cross-label ordering is impossible by design (`nodeSet` is per-label), so
|
|
146
|
-
* a target registered in *another* phase is skipped silently — that's the
|
|
147
|
-
* intended isolation. But a target unknown to *every* phase is almost
|
|
148
|
-
* certainly a typo or a system that was never scheduled; without this warning
|
|
149
|
-
* the constraint vanishes and the system runs in insertion-order tiebreak as
|
|
150
|
-
* if unconstrained, with nothing to distinguish mistake from intent. Compiled
|
|
151
|
-
* out of production builds by the `DEV` guards at the call sites.
|
|
152
|
-
*/
|
|
153
|
-
private warnDroppedEdge;
|
|
120
|
+
* undeclared resource, or attempts any mutation, throws. */
|
|
121
|
+
private _evalConditions;
|
|
122
|
+
/** Sort one phase and cache its plan on the phase. Cold: the drive reads
|
|
123
|
+
* `phase.plan` and only lands here when an add or a remove nulled it. */
|
|
124
|
+
private _buildPlan;
|
|
154
125
|
}
|
|
155
126
|
//# sourceMappingURL=schedule.d.ts.map
|