@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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oasys/oecs",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Archetype-based Entity Component System",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -10,21 +10,93 @@
|
|
|
10
10
|
"default": "./dist/index.js"
|
|
11
11
|
},
|
|
12
12
|
"require": {
|
|
13
|
-
"types": "./dist/index.d.
|
|
13
|
+
"types": "./dist/index.d.cts",
|
|
14
14
|
"default": "./dist/index.cjs"
|
|
15
15
|
}
|
|
16
|
-
}
|
|
16
|
+
},
|
|
17
|
+
"./primitives": {
|
|
18
|
+
"import": {
|
|
19
|
+
"types": "./dist/primitives.d.ts",
|
|
20
|
+
"default": "./dist/primitives.js"
|
|
21
|
+
},
|
|
22
|
+
"require": {
|
|
23
|
+
"types": "./dist/primitives.d.cts",
|
|
24
|
+
"default": "./dist/primitives.cjs"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"./reactive": {
|
|
28
|
+
"import": {
|
|
29
|
+
"types": "./dist/reactive/index.d.ts",
|
|
30
|
+
"default": "./dist/reactive/index.js"
|
|
31
|
+
},
|
|
32
|
+
"require": {
|
|
33
|
+
"types": "./dist/reactive/index.d.cts",
|
|
34
|
+
"default": "./dist/reactive/index.cjs"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"./reactive-sync": {
|
|
38
|
+
"import": {
|
|
39
|
+
"types": "./dist/extensions/reactive/index.d.ts",
|
|
40
|
+
"default": "./dist/extensions/reactive/index.js"
|
|
41
|
+
},
|
|
42
|
+
"require": {
|
|
43
|
+
"types": "./dist/extensions/reactive/index.d.cts",
|
|
44
|
+
"default": "./dist/extensions/reactive/index.cjs"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"./editor": {
|
|
48
|
+
"import": {
|
|
49
|
+
"types": "./dist/extensions/editor/index.d.ts",
|
|
50
|
+
"default": "./dist/extensions/editor/index.js"
|
|
51
|
+
},
|
|
52
|
+
"require": {
|
|
53
|
+
"types": "./dist/extensions/editor/index.d.cts",
|
|
54
|
+
"default": "./dist/extensions/editor/index.cjs"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"./solid": {
|
|
58
|
+
"import": {
|
|
59
|
+
"types": "./dist/extensions/solid/index.d.ts",
|
|
60
|
+
"default": "./dist/extensions/solid/index.js"
|
|
61
|
+
},
|
|
62
|
+
"require": {
|
|
63
|
+
"types": "./dist/extensions/solid/index.d.cts",
|
|
64
|
+
"default": "./dist/extensions/solid/index.cjs"
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"./shared": {
|
|
68
|
+
"import": {
|
|
69
|
+
"types": "./dist/shared.d.ts",
|
|
70
|
+
"default": "./dist/shared.js"
|
|
71
|
+
},
|
|
72
|
+
"require": {
|
|
73
|
+
"types": "./dist/shared.d.cts",
|
|
74
|
+
"default": "./dist/shared.cjs"
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"./internal": {
|
|
78
|
+
"import": {
|
|
79
|
+
"types": "./dist/internal.d.ts",
|
|
80
|
+
"default": "./dist/internal.js"
|
|
81
|
+
},
|
|
82
|
+
"require": {
|
|
83
|
+
"types": "./dist/internal.d.cts",
|
|
84
|
+
"default": "./dist/internal.cjs"
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"./package.json": "./package.json"
|
|
17
88
|
},
|
|
18
89
|
"main": "./dist/index.cjs",
|
|
19
90
|
"module": "./dist/index.js",
|
|
20
91
|
"types": "./dist/index.d.ts",
|
|
21
92
|
"files": [
|
|
22
|
-
"dist"
|
|
93
|
+
"dist",
|
|
94
|
+
"CHANGELOG.md"
|
|
23
95
|
],
|
|
24
96
|
"sideEffects": false,
|
|
25
97
|
"scripts": {
|
|
26
98
|
"dev": "vite",
|
|
27
|
-
"build": "vite build",
|
|
99
|
+
"build": "vite build && node scripts/postbuild.mjs",
|
|
28
100
|
"test": "vitest",
|
|
29
101
|
"bench": "vitest bench",
|
|
30
102
|
"prepublishOnly": "pnpm build"
|
|
@@ -44,11 +116,49 @@
|
|
|
44
116
|
"archetype",
|
|
45
117
|
"gamedev"
|
|
46
118
|
],
|
|
119
|
+
"peerDependencies": {
|
|
120
|
+
"solid-js": "^1.9.3"
|
|
121
|
+
},
|
|
122
|
+
"peerDependenciesMeta": {
|
|
123
|
+
"solid-js": {
|
|
124
|
+
"optional": true
|
|
125
|
+
}
|
|
126
|
+
},
|
|
47
127
|
"devDependencies": {
|
|
48
128
|
"@types/node": "^25.0.3",
|
|
129
|
+
"@vitest/coverage-v8": "^4.0.18",
|
|
130
|
+
"solid-js": "^1.9.3",
|
|
49
131
|
"typescript": "~5.6.2",
|
|
50
132
|
"vite": "^6.0.3",
|
|
51
133
|
"vite-plugin-dts": "^4.5.3",
|
|
52
134
|
"vitest": "^4.0.18"
|
|
135
|
+
},
|
|
136
|
+
"engines": {
|
|
137
|
+
"node": ">=20"
|
|
138
|
+
},
|
|
139
|
+
"typesVersions": {
|
|
140
|
+
"*": {
|
|
141
|
+
"primitives": [
|
|
142
|
+
"./dist/primitives.d.ts"
|
|
143
|
+
],
|
|
144
|
+
"reactive": [
|
|
145
|
+
"./dist/reactive/index.d.ts"
|
|
146
|
+
],
|
|
147
|
+
"reactive-sync": [
|
|
148
|
+
"./dist/extensions/reactive/index.d.ts"
|
|
149
|
+
],
|
|
150
|
+
"editor": [
|
|
151
|
+
"./dist/extensions/editor/index.d.ts"
|
|
152
|
+
],
|
|
153
|
+
"solid": [
|
|
154
|
+
"./dist/extensions/solid/index.d.ts"
|
|
155
|
+
],
|
|
156
|
+
"shared": [
|
|
157
|
+
"./dist/shared.d.ts"
|
|
158
|
+
],
|
|
159
|
+
"internal": [
|
|
160
|
+
"./dist/internal.d.ts"
|
|
161
|
+
]
|
|
162
|
+
}
|
|
53
163
|
}
|
|
54
164
|
}
|
package/dist/archetype.d.ts
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { Brand, GrowableTypedArray, AnyTypedArray, TypedArrayTag, BitSet } from './type_primitives';
|
|
2
|
-
import { ComponentID, ComponentDef, ComponentSchema, TagToTypedArray, ReadonlyColumn, ReadonlyUint32Array } from './component';
|
|
3
|
-
import { EntityID } from './entity';
|
|
4
|
-
export type ArchetypeID = Brand<number, "archetype_id">;
|
|
5
|
-
export declare const as_archetype_id: (value: number) => ArchetypeID;
|
|
6
|
-
export interface ArchetypeEdge {
|
|
7
|
-
add: ArchetypeID | null;
|
|
8
|
-
remove: ArchetypeID | null;
|
|
9
|
-
/** Pre-computed column mapping for add direction: this → add target. */
|
|
10
|
-
add_map: Int16Array | null;
|
|
11
|
-
/** Pre-computed column mapping for remove direction: this → remove target. */
|
|
12
|
-
remove_map: Int16Array | null;
|
|
13
|
-
}
|
|
14
|
-
export interface ArchetypeColumnLayout {
|
|
15
|
-
component_id: ComponentID;
|
|
16
|
-
field_names: string[];
|
|
17
|
-
field_index: Record<string, number>;
|
|
18
|
-
field_types: TypedArrayTag[];
|
|
19
|
-
}
|
|
20
|
-
interface ArchetypeColumnGroup {
|
|
21
|
-
layout: ArchetypeColumnLayout;
|
|
22
|
-
columns: GrowableTypedArray<AnyTypedArray>[];
|
|
23
|
-
}
|
|
24
|
-
export declare class Archetype {
|
|
25
|
-
readonly id: ArchetypeID;
|
|
26
|
-
readonly mask: BitSet;
|
|
27
|
-
readonly has_columns: boolean;
|
|
28
|
-
private readonly _entity_ids;
|
|
29
|
-
length: number;
|
|
30
|
-
private readonly edges;
|
|
31
|
-
private readonly batch_transition_maps;
|
|
32
|
-
readonly _flat_columns: GrowableTypedArray<AnyTypedArray>[];
|
|
33
|
-
readonly _col_offset: number[];
|
|
34
|
-
readonly _field_count: number[];
|
|
35
|
-
private readonly _field_index;
|
|
36
|
-
private readonly _field_names;
|
|
37
|
-
readonly column_groups: (ArchetypeColumnGroup | undefined)[];
|
|
38
|
-
readonly _column_ids: number[];
|
|
39
|
-
readonly _changed_tick: number[];
|
|
40
|
-
constructor(id: ArchetypeID, mask: BitSet, layouts?: ArchetypeColumnLayout[], initial_capacity?: number);
|
|
41
|
-
get entity_count(): number;
|
|
42
|
-
/** Raw entity ID buffer. Valid data at indices 0..entity_count-1. */
|
|
43
|
-
get entity_ids(): ReadonlyUint32Array;
|
|
44
|
-
get entity_list(): Uint32Array;
|
|
45
|
-
has_component(id: ComponentID): boolean;
|
|
46
|
-
matches(required: BitSet): boolean;
|
|
47
|
-
/** Get a single field's column (read-only). Valid data: indices 0..entity_count-1. */
|
|
48
|
-
get_column<S extends ComponentSchema, K extends string & keyof S>(def: ComponentDef<S>, field: K): ReadonlyColumn;
|
|
49
|
-
/** Get a single field's column (mutable). Marks the component as changed at the given tick. */
|
|
50
|
-
get_column_mut<S extends ComponentSchema, K extends string & keyof S>(def: ComponentDef<S>, field: K, tick: number): TagToTypedArray[S[K]];
|
|
51
|
-
write_fields(row: number, component_id: ComponentID, values: Record<string, number>, tick: number): void;
|
|
52
|
-
/** Fast positional write: values[i] → field[i] in declaration order. No string lookup. */
|
|
53
|
-
write_fields_positional(row: number, component_id: ComponentID, values: ArrayLike<number>, tick: number): void;
|
|
54
|
-
read_field(row: number, component_id: ComponentID, field: string): number;
|
|
55
|
-
/** Copy all shared component columns from source archetype at src_row into dst_row. */
|
|
56
|
-
copy_shared_from(source: Archetype, src_row: number, dst_row: number, tick: number): void;
|
|
57
|
-
/**
|
|
58
|
-
* Add an entity. Pushes zeroes into all columns and returns the assigned row.
|
|
59
|
-
* Store is responsible for tracking entity_index → row.
|
|
60
|
-
*/
|
|
61
|
-
add_entity(entity_id: EntityID): number;
|
|
62
|
-
/**
|
|
63
|
-
* Remove entity at row via swap-and-pop. Swaps the last entity into the
|
|
64
|
-
* vacated row to keep data dense. Returns the entity_index of the swapped
|
|
65
|
-
* entity (so Store can update its row), or NO_SWAP if no swap was needed.
|
|
66
|
-
*/
|
|
67
|
-
remove_entity(row: number): number;
|
|
68
|
-
/** Tag-optimized add: skip column push entirely (no data to store). */
|
|
69
|
-
add_entity_tag(entity_id: EntityID): number;
|
|
70
|
-
/** Tag-optimized remove via swap-and-pop: skip column swap/pop entirely. */
|
|
71
|
-
remove_entity_tag(row: number): number;
|
|
72
|
-
/**
|
|
73
|
-
* Move an entity from src archetype into this archetype in a single pass.
|
|
74
|
-
* Combines add_entity + copy_shared_from + remove_entity(src).
|
|
75
|
-
* Uses a pre-computed transition map for branchless column copy.
|
|
76
|
-
* Writes dst_row to _move_result[0], swapped entity index to _move_result[1].
|
|
77
|
-
*/
|
|
78
|
-
move_entity_from(src: Archetype, src_row: number, entity_id: EntityID, transition_map: Int16Array, tick: number): void;
|
|
79
|
-
/**
|
|
80
|
-
* Move an entity from src into this archetype (tag-only: no columns to copy).
|
|
81
|
-
* Writes dst_row to _move_result[0], swapped entity index to _move_result[1].
|
|
82
|
-
*/
|
|
83
|
-
move_entity_from_tag(src: Archetype, src_row: number, entity_id: EntityID): void;
|
|
84
|
-
/**
|
|
85
|
-
* Bulk-move ALL entities from src into this archetype using TypedArray.set().
|
|
86
|
-
* Much faster than per-entity move_entity_from when the entire source is moving.
|
|
87
|
-
* After this call, src is empty. Returns the starting dst_row for the batch.
|
|
88
|
-
*/
|
|
89
|
-
bulk_move_all_from(src: Archetype, transition_map: Int16Array, tick: number): number;
|
|
90
|
-
get_edge(component_id: ComponentID): ArchetypeEdge | undefined;
|
|
91
|
-
set_edge(component_id: ComponentID, edge: ArchetypeEdge): void;
|
|
92
|
-
/**
|
|
93
|
-
* Get the cached transition map from this archetype to `target`, building
|
|
94
|
-
* and caching it on miss. Archetypes live for the lifetime of the Store,
|
|
95
|
-
* so entries never need invalidation.
|
|
96
|
-
*/
|
|
97
|
-
get_batch_transition_map(target: Archetype): Int16Array;
|
|
98
|
-
}
|
|
99
|
-
/** Reusable result buffer for move_entity_from/move_entity_from_tag. [dst_row, swapped_index] */
|
|
100
|
-
export declare const _move_result: [number, number];
|
|
101
|
-
/**
|
|
102
|
-
* Build a transition map from src archetype to dst archetype.
|
|
103
|
-
* For each column in dst, stores the index of the corresponding column in src,
|
|
104
|
-
* or -1 if the column is new (no source).
|
|
105
|
-
*/
|
|
106
|
-
export declare function build_transition_map(src: Archetype, dst: Archetype): Int16Array;
|
|
107
|
-
export {};
|
|
108
|
-
//# sourceMappingURL=archetype.d.ts.map
|
package/dist/archetype.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"archetype.d.ts","sourceRoot":"","sources":["../src/archetype.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;KAmBK;AAEL,OAAO,EACL,KAAK,EAGL,kBAAkB,EAGlB,KAAK,aAAa,EAClB,KAAK,aAAa,EACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EACf,eAAe,EACf,cAAc,EACd,mBAAmB,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAG3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAExD,eAAO,MAAM,eAAe,UAAW,MAAM,gBAK1C,CAAC;AAEJ,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,WAAW,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,wEAAwE;IACxE,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;IAC3B,8EAA8E;IAC9E,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,WAAW,CAAC;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,WAAW,EAAE,aAAa,EAAE,CAAC;CAC9B;AAED,UAAU,oBAAoB;IAC5B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,OAAO,EAAE,kBAAkB,CAAC,aAAa,CAAC,EAAE,CAAC;CAC9C;AAED,qBAAa,SAAS;IACpB,SAAgB,EAAE,EAAE,WAAW,CAAC;IAChC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,WAAW,EAAE,OAAO,CAAC;IAErC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAC3C,MAAM,EAAE,MAAM,CAAK;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuB;IAI7C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA2C;IAIjF,SAAgB,aAAa,EAAE,kBAAkB,CAAC,aAAa,CAAC,EAAE,CAAM;IAExE,SAAgB,WAAW,EAAE,MAAM,EAAE,CAAM;IAE3C,SAAgB,YAAY,EAAE,MAAM,EAAE,CAAM;IAE5C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgC;IAE7D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkB;IAG/C,SAAgB,aAAa,EAAE,CAAC,oBAAoB,GAAG,SAAS,CAAC,EAAE,CAAM;IAEzE,SAAgB,WAAW,EAAE,MAAM,EAAE,CAAM;IAE3C,SAAgB,aAAa,EAAE,MAAM,EAAE,CAAM;gBAG3C,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,qBAAqB,EAAE,EACjC,gBAAgB,GAAE,MAAgC;IAiCpD,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED,qEAAqE;IACrE,IAAW,UAAU,IAAI,mBAAmB,CAE3C;IAED,IAAW,WAAW,IAAI,WAAW,CAEpC;IAEM,aAAa,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO;IAIvC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIzC,sFAAsF;IAC/E,UAAU,CAAC,CAAC,SAAS,eAAe,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,EACrE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,EACpB,KAAK,EAAE,CAAC,GACP,cAAc;IAsBjB,+FAA+F;IACxF,cAAc,CAAC,CAAC,SAAS,eAAe,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,EACzE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,EACpB,KAAK,EAAE,CAAC,EACR,IAAI,EAAE,MAAM,GACX,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAuBjB,YAAY,CACjB,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,WAAW,EACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,IAAI,EAAE,MAAM,GACX,IAAI;IAYP,0FAA0F;IACnF,uBAAuB,CAC5B,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,WAAW,EACzB,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EACzB,IAAI,EAAE,MAAM,GACX,IAAI;IAWA,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAShF,uFAAuF;IAChF,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAmBhG;;;OAGG;IACI,UAAU,CAAC,SAAS,EAAE,QAAQ,GAAG,MAAM;IAW9C;;;;OAIG;IACI,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAuBzC,uEAAuE;IAChE,cAAc,CAAC,SAAS,EAAE,QAAQ,GAAG,MAAM;IAOlD,4EAA4E;IACrE,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAe7C;;;;;OAKG;IACI,gBAAgB,CACrB,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,QAAQ,EACnB,cAAc,EAAE,UAAU,EAC1B,IAAI,EAAE,MAAM,GACX,IAAI;IA4BP;;;OAGG;IACI,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,GAAG,IAAI;IAWvF;;;;OAIG;IACI,kBAAkB,CAAC,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAuCpF,QAAQ,CAAC,YAAY,EAAE,WAAW,GAAG,aAAa,GAAG,SAAS;IAI9D,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI;IAIrE;;;;OAIG;IACI,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU;CAQ/D;AAED,iGAAiG;AACjG,eAAO,MAAM,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAgB,CAAC;AAE3D;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,GAAG,UAAU,CA6B/E"}
|
package/dist/component.d.ts
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { Brand, TypedArrayTag } from './type_primitives';
|
|
2
|
-
export type ComponentID = Brand<number, "component_id">;
|
|
3
|
-
export declare const as_component_id: (value: number) => ComponentID;
|
|
4
|
-
/** Core schema type: maps field names to typed array tags. */
|
|
5
|
-
export type ComponentSchema = Readonly<Record<string, TypedArrayTag>>;
|
|
6
|
-
/** Compile-time tag → TypedArray mapping. */
|
|
7
|
-
export type TagToTypedArray = {
|
|
8
|
-
f32: Float32Array;
|
|
9
|
-
f64: Float64Array;
|
|
10
|
-
i8: Int8Array;
|
|
11
|
-
i16: Int16Array;
|
|
12
|
-
i32: Int32Array;
|
|
13
|
-
u8: Uint8Array;
|
|
14
|
-
u16: Uint16Array;
|
|
15
|
-
u32: Uint32Array;
|
|
16
|
-
};
|
|
17
|
-
/** Maps schema fields to their value object: { x: number, y: number }. */
|
|
18
|
-
export type FieldValues<S extends ComponentSchema> = {
|
|
19
|
-
readonly [K in keyof S]: number;
|
|
20
|
-
};
|
|
21
|
-
/** Maps schema fields to their specific typed array columns. */
|
|
22
|
-
export type ColumnsForSchema<S extends ComponentSchema> = {
|
|
23
|
-
readonly [K in keyof S]: TagToTypedArray[S[K]];
|
|
24
|
-
};
|
|
25
|
-
export type ComponentFields = readonly string[];
|
|
26
|
-
/** Maps component fields to column arrays (used by events — always Float64Array). */
|
|
27
|
-
export type ColumnsForFields<F extends ComponentFields> = {
|
|
28
|
-
readonly [K in F[number]]: Float64Array;
|
|
29
|
-
};
|
|
30
|
-
declare const __schema: unique symbol;
|
|
31
|
-
export type ComponentDef<S extends ComponentSchema = ComponentSchema> = ComponentID & {
|
|
32
|
-
readonly [__schema]: S;
|
|
33
|
-
};
|
|
34
|
-
/** Compile-time readonly view of a typed array column. Prevents index writes. */
|
|
35
|
-
export interface ReadonlyColumn {
|
|
36
|
-
readonly [index: number]: number;
|
|
37
|
-
readonly length: number;
|
|
38
|
-
}
|
|
39
|
-
/** Compile-time readonly view of a Uint32Array. Prevents index writes. */
|
|
40
|
-
export interface ReadonlyUint32Array {
|
|
41
|
-
readonly [index: number]: number;
|
|
42
|
-
readonly length: number;
|
|
43
|
-
}
|
|
44
|
-
export {};
|
|
45
|
-
//# sourceMappingURL=component.d.ts.map
|
package/dist/component.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;KAuBK;AAEL,OAAO,EACL,KAAK,EAGL,KAAK,aAAa,EACnB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AACxD,eAAO,MAAM,eAAe,UAAW,MAAM,gBAK1C,CAAC;AAEJ,8DAA8D;AAC9D,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;AAEtE,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,YAAY,CAAC;IAClB,GAAG,EAAE,YAAY,CAAC;IAClB,EAAE,EAAE,SAAS,CAAC;IACd,GAAG,EAAE,UAAU,CAAC;IAChB,GAAG,EAAE,UAAU,CAAC;IAChB,EAAE,EAAE,UAAU,CAAC;IACf,GAAG,EAAE,WAAW,CAAC;IACjB,GAAG,EAAE,WAAW,CAAC;CAClB,CAAC;AAEF,0EAA0E;AAC1E,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,eAAe,IAAI;IACnD,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM;CAChC,CAAC;AAEF,gEAAgE;AAChE,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,eAAe,IAAI;IACxD,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/C,CAAC;AAGF,MAAM,MAAM,eAAe,GAAG,SAAS,MAAM,EAAE,CAAC;AAEhD,qFAAqF;AACrF,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,eAAe,IAAI;IACxD,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,YAAY;CACxC,CAAC;AAMF,OAAO,CAAC,MAAM,QAAQ,EAAE,OAAO,MAAM,CAAC;AAEtC,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,IAAI,WAAW,GAAG;IACpF,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;CACxB,CAAC;AAEF,iFAAiF;AACjF,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,0EAA0E;AAC1E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB"}
|
package/dist/ecs.d.ts
DELETED
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { SCHEDULE, SystemEntry } from './schedule';
|
|
2
|
-
import { Archetype } from './archetype';
|
|
3
|
-
import { SystemContext, Query, QueryBuilder, QueryResolver } from './query';
|
|
4
|
-
import { EntityID } from './entity';
|
|
5
|
-
import { ComponentDef, ComponentSchema, ComponentFields, FieldValues } from './component';
|
|
6
|
-
import { EventKey, EventReader } from './event';
|
|
7
|
-
import { ResourceKey } from './resource';
|
|
8
|
-
import { SystemFn, SystemConfig, SystemDescriptor } from './system';
|
|
9
|
-
import { BitSet, TypedArrayTag } from './type_primitives';
|
|
10
|
-
export interface WorldOptions {
|
|
11
|
-
fixed_timestep?: number;
|
|
12
|
-
max_fixed_steps?: number;
|
|
13
|
-
initial_capacity?: number;
|
|
14
|
-
}
|
|
15
|
-
export declare class ECS implements QueryResolver {
|
|
16
|
-
private readonly store;
|
|
17
|
-
private readonly schedule;
|
|
18
|
-
private readonly ctx;
|
|
19
|
-
private readonly systems;
|
|
20
|
-
private next_system_id;
|
|
21
|
-
private _tick;
|
|
22
|
-
private _fixed_timestep;
|
|
23
|
-
private _accumulator;
|
|
24
|
-
private _max_fixed_steps;
|
|
25
|
-
private readonly query_cache;
|
|
26
|
-
private readonly scratch_mask;
|
|
27
|
-
constructor(options?: WorldOptions);
|
|
28
|
-
get fixed_timestep(): number;
|
|
29
|
-
set fixed_timestep(value: number);
|
|
30
|
-
get fixed_alpha(): number;
|
|
31
|
-
register_component<S extends Record<string, TypedArrayTag>>(schema: S): ComponentDef<S>;
|
|
32
|
-
register_component<const F extends readonly string[], T extends TypedArrayTag = "f64">(fields: F, type?: T): ComponentDef<{
|
|
33
|
-
readonly [K in F[number]]: T;
|
|
34
|
-
}>;
|
|
35
|
-
register_tag(): ComponentDef<Record<string, never>>;
|
|
36
|
-
register_event<F extends readonly string[]>(key: EventKey<F>, fields: F): void;
|
|
37
|
-
register_signal(key: EventKey<readonly []>): void;
|
|
38
|
-
register_resource<T>(key: ResourceKey<T>, value: T): void;
|
|
39
|
-
resource<T>(key: ResourceKey<T>): T;
|
|
40
|
-
set_resource<T>(key: ResourceKey<T>, value: T): void;
|
|
41
|
-
has_resource<T>(key: ResourceKey<T>): boolean;
|
|
42
|
-
create_entity(): EntityID;
|
|
43
|
-
destroy_entity_deferred(id: EntityID): void;
|
|
44
|
-
is_alive(id: EntityID): boolean;
|
|
45
|
-
get entity_count(): number;
|
|
46
|
-
add_component(entity_id: EntityID, def: ComponentDef<Record<string, never>>): this;
|
|
47
|
-
add_component<S extends ComponentSchema>(entity_id: EntityID, def: ComponentDef<S>, values: FieldValues<S>): this;
|
|
48
|
-
add_components(entity_id: EntityID, entries: {
|
|
49
|
-
def: ComponentDef;
|
|
50
|
-
values?: Record<string, number>;
|
|
51
|
-
}[]): void;
|
|
52
|
-
remove_component(entity_id: EntityID, def: ComponentDef): this;
|
|
53
|
-
remove_components(entity_id: EntityID, ...defs: ComponentDef[]): void;
|
|
54
|
-
has_component(entity_id: EntityID, def: ComponentDef): boolean;
|
|
55
|
-
/**
|
|
56
|
-
* Bulk add a component to ALL entities in the given archetype.
|
|
57
|
-
* O(columns) via TypedArray.set() instead of O(N×columns).
|
|
58
|
-
*/
|
|
59
|
-
batch_add_component(src_arch: Archetype, def: ComponentDef<Record<string, never>>): void;
|
|
60
|
-
batch_add_component<S extends ComponentSchema>(src_arch: Archetype, def: ComponentDef<S>, values: FieldValues<S>): void;
|
|
61
|
-
/**
|
|
62
|
-
* Bulk remove a component from ALL entities in the given archetype.
|
|
63
|
-
* O(columns) via TypedArray.set() instead of O(N×columns).
|
|
64
|
-
*/
|
|
65
|
-
batch_remove_component(src_arch: Archetype, def: ComponentDef): void;
|
|
66
|
-
get_field<S extends ComponentSchema>(entity_id: EntityID, def: ComponentDef<S>, field: string & keyof S): number;
|
|
67
|
-
set_field<S extends ComponentSchema>(entity_id: EntityID, def: ComponentDef<S>, field: string & keyof S, value: number): void;
|
|
68
|
-
emit(key: EventKey<readonly []>): void;
|
|
69
|
-
emit<F extends ComponentFields>(key: EventKey<F>, values: {
|
|
70
|
-
readonly [K in F[number]]: number;
|
|
71
|
-
}): void;
|
|
72
|
-
read<F extends ComponentFields>(key: EventKey<F>): EventReader<F>;
|
|
73
|
-
query<T extends ComponentDef[]>(...defs: T): Query<T>;
|
|
74
|
-
_get_last_run_tick(): number;
|
|
75
|
-
/** QueryResolver implementation — creates or retrieves a cached Query. */
|
|
76
|
-
_resolve_query(include: BitSet, exclude: BitSet | null, any_of: BitSet | null, defs: readonly ComponentDef[]): Query<any>;
|
|
77
|
-
private _find_cached;
|
|
78
|
-
/**
|
|
79
|
-
* Register a system.
|
|
80
|
-
*
|
|
81
|
-
* // Bare function (no query, no lifecycle hooks)
|
|
82
|
-
* world.register_system((ctx, dt) => { ... });
|
|
83
|
-
*
|
|
84
|
-
* // Function + query builder
|
|
85
|
-
* world.register_system(
|
|
86
|
-
* (q, ctx, dt) => { q.for_each((arch) => { ... }); },
|
|
87
|
-
* (qb) => qb.every(Pos, Vel),
|
|
88
|
-
* );
|
|
89
|
-
*
|
|
90
|
-
* // Full config (for lifecycle hooks)
|
|
91
|
-
* world.register_system({ fn(ctx, dt) { ... } });
|
|
92
|
-
*/
|
|
93
|
-
register_system(fn: SystemFn): SystemDescriptor;
|
|
94
|
-
register_system<Defs extends readonly ComponentDef[]>(fn: (q: Query<Defs>, ctx: SystemContext, dt: number) => void, query_fn: (qb: QueryBuilder) => Query<Defs>): SystemDescriptor;
|
|
95
|
-
register_system(config: SystemConfig): SystemDescriptor;
|
|
96
|
-
add_systems(label: SCHEDULE, ...entries: (SystemDescriptor | SystemEntry)[]): this;
|
|
97
|
-
remove_system(system: SystemDescriptor): void;
|
|
98
|
-
get system_count(): number;
|
|
99
|
-
startup(): void;
|
|
100
|
-
update(dt: number): void;
|
|
101
|
-
flush(): void;
|
|
102
|
-
dispose(): void;
|
|
103
|
-
}
|
|
104
|
-
//# sourceMappingURL=ecs.d.ts.map
|
package/dist/ecs.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ecs.d.ts","sourceRoot":"","sources":["../src/ecs.ts"],"names":[],"mappings":"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"}
|
package/dist/entity.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Brand } from './type_primitives';
|
|
2
|
-
export type EntityID = Brand<number, "entity_id">;
|
|
3
|
-
export declare const INDEX_BITS = 20;
|
|
4
|
-
export declare const INDEX_MASK: number;
|
|
5
|
-
export declare const MAX_INDEX: number;
|
|
6
|
-
export declare const GENERATION_BITS: number;
|
|
7
|
-
export declare const MAX_GENERATION: number;
|
|
8
|
-
export declare const create_entity_id: (index: number, generation: number) => EntityID;
|
|
9
|
-
export declare const get_entity_index: (id: EntityID) => number;
|
|
10
|
-
export declare const get_entity_generation: (id: EntityID) => number;
|
|
11
|
-
//# sourceMappingURL=entity.d.ts.map
|
package/dist/entity.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../src/entity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;KAkBK;AAEL,OAAO,EAAE,KAAK,EAAe,MAAM,mBAAmB,CAAC;AAIvD,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAElD,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,UAAU,QAAwB,CAAC;AAChD,eAAO,MAAM,SAAS,QAAa,CAAC;AACpC,eAAO,MAAM,eAAe,QAAiC,CAAC;AAC9D,eAAO,MAAM,cAAc,QAA6B,CAAC;AAEzD,eAAO,MAAM,gBAAgB,UAAW,MAAM,cAAc,MAAM,KAAG,QAWpE,CAAC;AAEF,eAAO,MAAM,gBAAgB,OAAQ,QAAQ,KAAG,MAAyB,CAAC;AAE1E,eAAO,MAAM,qBAAqB,OAAQ,QAAQ,KAAG,MAAsC,CAAC"}
|
package/dist/event.d.ts
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { Brand } from './type_primitives';
|
|
2
|
-
import { ComponentFields, ColumnsForFields } from './component';
|
|
3
|
-
export type EventID = Brand<number, "event_id">;
|
|
4
|
-
export declare const as_event_id: (value: number) => EventID;
|
|
5
|
-
declare const __event_schema: unique symbol;
|
|
6
|
-
export type EventDef<F extends ComponentFields = ComponentFields> = EventID & {
|
|
7
|
-
readonly [__event_schema]: F;
|
|
8
|
-
};
|
|
9
|
-
/** Reader view over an event channel's SoA columns. */
|
|
10
|
-
export type EventReader<F extends ComponentFields> = {
|
|
11
|
-
length: number;
|
|
12
|
-
} & ColumnsForFields<F>;
|
|
13
|
-
export declare class EventChannel {
|
|
14
|
-
readonly field_names: string[];
|
|
15
|
-
readonly columns: number[][];
|
|
16
|
-
readonly reader: EventReader<any>;
|
|
17
|
-
constructor(field_names: string[]);
|
|
18
|
-
emit(values: Record<string, number>): void;
|
|
19
|
-
/** Emit a signal (zero-field event). */
|
|
20
|
-
emit_signal(): void;
|
|
21
|
-
clear(): void;
|
|
22
|
-
}
|
|
23
|
-
declare const __event_key_schema: unique symbol;
|
|
24
|
-
export type EventKey<F extends ComponentFields = ComponentFields> = symbol & {
|
|
25
|
-
readonly [__event_key_schema]: F;
|
|
26
|
-
};
|
|
27
|
-
export declare function event_key<F extends readonly string[]>(name: string): EventKey<F>;
|
|
28
|
-
export declare function signal_key(name: string): EventKey<readonly []>;
|
|
29
|
-
export {};
|
|
30
|
-
//# sourceMappingURL=event.d.ts.map
|
package/dist/event.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../src/event.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA4BK;AAEL,OAAO,EAAE,KAAK,EAA2D,MAAM,mBAAmB,CAAC;AACnG,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAErE,MAAM,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAChD,eAAO,MAAM,WAAW,UAAW,MAAM,YAKtC,CAAC;AAGJ,OAAO,CAAC,MAAM,cAAc,EAAE,OAAO,MAAM,CAAC;AAE5C,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,IAAI,OAAO,GAAG;IAC5E,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;CAC9B,CAAC;AAEF,uDAAuD;AACvD,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,eAAe,IAAI;IACnD,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAExB,qBAAa,YAAY;IACvB,SAAgB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtC,SAAgB,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;IAEpC,SAAgB,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;gBAE7B,WAAW,EAAE,MAAM,EAAE;IAgB1B,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IASjD,wCAAwC;IACjC,WAAW,IAAI,IAAI;IAInB,KAAK,IAAI,IAAI;CAOrB;AAMD,OAAO,CAAC,MAAM,kBAAkB,EAAE,OAAO,MAAM,CAAC;AAEhD,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,IAAI,MAAM,GAAG;IAC3E,QAAQ,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;CAClC,CAAC;AAEF,wBAAgB,SAAS,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAEhF;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC,CAE9D"}
|
package/dist/query.d.ts
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import { Store } from './store';
|
|
2
|
-
import { Archetype } from './archetype';
|
|
3
|
-
import { EntityID } from './entity';
|
|
4
|
-
import { ComponentDef, ComponentSchema, ComponentFields, FieldValues } from './component';
|
|
5
|
-
import { ComponentRef, ReadonlyComponentRef } from './ref';
|
|
6
|
-
import { EventKey, EventReader } from './event';
|
|
7
|
-
import { ResourceKey } from './resource';
|
|
8
|
-
import { BitSet } from './type_primitives';
|
|
9
|
-
export interface QueryCacheEntry {
|
|
10
|
-
include_mask: BitSet;
|
|
11
|
-
exclude_mask: BitSet | null;
|
|
12
|
-
any_of_mask: BitSet | null;
|
|
13
|
-
query: Query<any>;
|
|
14
|
-
}
|
|
15
|
-
export interface QueryResolver {
|
|
16
|
-
_resolve_query(include: BitSet, exclude: BitSet | null, any_of: BitSet | null, defs: readonly ComponentDef[]): Query<any>;
|
|
17
|
-
_get_last_run_tick(): number;
|
|
18
|
-
}
|
|
19
|
-
export declare class Query<Defs extends readonly ComponentDef[]> {
|
|
20
|
-
private readonly _archetypes;
|
|
21
|
-
private readonly _defs;
|
|
22
|
-
private readonly _resolver;
|
|
23
|
-
readonly _include: BitSet;
|
|
24
|
-
private readonly _exclude;
|
|
25
|
-
private readonly _any_of;
|
|
26
|
-
private _non_empty_archetypes;
|
|
27
|
-
private _non_empty_dirty;
|
|
28
|
-
private _and_cache_single;
|
|
29
|
-
private _not_cache_single;
|
|
30
|
-
private _any_of_cache_single;
|
|
31
|
-
private _changed_cache_single;
|
|
32
|
-
constructor(archetypes: Archetype[], defs: Defs, resolver: QueryResolver, include: BitSet, exclude: BitSet | null, any_of: BitSet | null);
|
|
33
|
-
/** Number of matching archetypes (including empty ones). */
|
|
34
|
-
get archetype_count(): number;
|
|
35
|
-
/** Total entity count across all matching archetypes. */
|
|
36
|
-
count(): number;
|
|
37
|
-
get archetypes(): readonly Archetype[];
|
|
38
|
-
/** Extend required component set. Returns a new (cached) Query. */
|
|
39
|
-
and<D extends ComponentDef[]>(...comps: D): Query<[...Defs, ...D]>;
|
|
40
|
-
/** Exclude archetypes that have any of these components. */
|
|
41
|
-
not(...comps: ComponentDef[]): Query<Defs>;
|
|
42
|
-
for_each(cb: (arch: Archetype) => void): void;
|
|
43
|
-
/** @internal — called by Store after flush and archetype push. */
|
|
44
|
-
mark_non_empty_dirty(): void;
|
|
45
|
-
/** @internal — used by ChangedQuery. Rebuild non-empty archetype list if dirty, return cached result. */
|
|
46
|
-
_non_empty(): Archetype[];
|
|
47
|
-
/** Require at least one of these components. */
|
|
48
|
-
any_of(...comps: ComponentDef[]): Query<Defs>;
|
|
49
|
-
/** Create a ChangedQuery that filters archetypes by change tick. */
|
|
50
|
-
changed(...defs: ComponentDef[]): ChangedQuery<Defs>;
|
|
51
|
-
/** @internal — reads last_run_tick from the resolver (ECS). */
|
|
52
|
-
_ctx_last_run_tick(): number;
|
|
53
|
-
}
|
|
54
|
-
export declare class QueryBuilder {
|
|
55
|
-
private readonly _resolver;
|
|
56
|
-
constructor(_resolver: QueryResolver);
|
|
57
|
-
every<T extends ComponentDef[]>(...defs: T): Query<T>;
|
|
58
|
-
}
|
|
59
|
-
export declare class SystemContext {
|
|
60
|
-
readonly store: Store;
|
|
61
|
-
last_run_tick: number;
|
|
62
|
-
/** Current world tick. Use this for write ticks in get_column_mut. */
|
|
63
|
-
get world_tick(): number;
|
|
64
|
-
constructor(store: Store);
|
|
65
|
-
create_entity(): EntityID;
|
|
66
|
-
get_field<S extends ComponentSchema>(entity_id: EntityID, def: ComponentDef<S>, field: string & keyof S): number;
|
|
67
|
-
set_field<S extends ComponentSchema>(entity_id: EntityID, def: ComponentDef<S>, field: string & keyof S, value: number): void;
|
|
68
|
-
/** Create a cached read-only component reference for a single entity. See ref.ts. */
|
|
69
|
-
ref<S extends ComponentSchema>(def: ComponentDef<S>, entity_id: EntityID): ReadonlyComponentRef<S>;
|
|
70
|
-
/** Create a cached mutable component reference. Marks the component as changed. */
|
|
71
|
-
ref_mut<S extends ComponentSchema>(def: ComponentDef<S>, entity_id: EntityID): ComponentRef<S>;
|
|
72
|
-
/** Buffer an entity for deferred destruction (applied at phase flush). */
|
|
73
|
-
destroy_entity(id: EntityID): this;
|
|
74
|
-
add_component(entity_id: EntityID, def: ComponentDef<Record<string, never>>): this;
|
|
75
|
-
add_component<S extends ComponentSchema>(entity_id: EntityID, def: ComponentDef<S>, values: FieldValues<S>): this;
|
|
76
|
-
remove_component(entity_id: EntityID, def: ComponentDef): this;
|
|
77
|
-
/** Flush all deferred changes: structural (add/remove) first, then destructions. */
|
|
78
|
-
flush(): void;
|
|
79
|
-
emit(key: EventKey<readonly []>): void;
|
|
80
|
-
emit<F extends ComponentFields>(key: EventKey<F>, values: {
|
|
81
|
-
readonly [K in F[number]]: number;
|
|
82
|
-
}): void;
|
|
83
|
-
read<F extends ComponentFields>(key: EventKey<F>): EventReader<F>;
|
|
84
|
-
resource<T>(key: ResourceKey<T>): T;
|
|
85
|
-
set_resource<T>(key: ResourceKey<T>, value: T): void;
|
|
86
|
-
has_resource<T>(key: ResourceKey<T>): boolean;
|
|
87
|
-
}
|
|
88
|
-
export declare class ChangedQuery<Defs extends readonly ComponentDef[]> {
|
|
89
|
-
private readonly _query;
|
|
90
|
-
private readonly _changed_ids;
|
|
91
|
-
constructor(query: Query<Defs>, changed_ids: number[]);
|
|
92
|
-
for_each(cb: (arch: Archetype) => void): void;
|
|
93
|
-
}
|
|
94
|
-
//# sourceMappingURL=query.d.ts.map
|
package/dist/query.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|
package/dist/ref.d.ts
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { ComponentSchema } from './component';
|
|
2
|
-
import { ArchetypeColumnLayout } from './archetype';
|
|
3
|
-
import { GrowableTypedArray, AnyTypedArray } from './type_primitives';
|
|
4
|
-
/** Maps component schema to scalar get/set properties: { x: number, y: number }. */
|
|
5
|
-
export type ComponentRef<S extends ComponentSchema> = {
|
|
6
|
-
-readonly [K in keyof S]: number;
|
|
7
|
-
};
|
|
8
|
-
/** Read-only view of a component reference. Prevents field writes at compile time. */
|
|
9
|
-
export type ReadonlyComponentRef<S extends ComponentSchema> = {
|
|
10
|
-
readonly [K in keyof S]: number;
|
|
11
|
-
};
|
|
12
|
-
/** Minimal column group shape needed by create_ref. */
|
|
13
|
-
export interface RefColumnGroup {
|
|
14
|
-
readonly layout: ArchetypeColumnLayout;
|
|
15
|
-
readonly columns: GrowableTypedArray<AnyTypedArray>[];
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Create a ComponentRef bound to a specific row in a column group.
|
|
19
|
-
* The prototype is built once per column group and cached; subsequent
|
|
20
|
-
* calls for the same group only allocate a lightweight object.
|
|
21
|
-
*/
|
|
22
|
-
export declare function create_ref<S extends ComponentSchema>(group: RefColumnGroup, row: number): ComponentRef<S>;
|
|
23
|
-
//# sourceMappingURL=ref.d.ts.map
|
package/dist/ref.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ref.d.ts","sourceRoot":"","sources":["../src/ref.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;KAsBK;AAEL,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE3E,oFAAoF;AACpF,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,eAAe,IAAI;IACpD,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM;CACjC,CAAC;AAEF,sFAAsF;AACtF,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,eAAe,IAAI;IAC5D,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM;CAChC,CAAC;AAOF,uDAAuD;AACvD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,aAAa,CAAC,EAAE,CAAC;CACvD;AAOD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,eAAe,EAClD,KAAK,EAAE,cAAc,EACrB,GAAG,EAAE,MAAM,GACV,YAAY,CAAC,CAAC,CAAC,CA4BjB"}
|
package/dist/resource.d.ts
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/***
|
|
2
|
-
* Resource — Typed singleton key-value storage.
|
|
3
|
-
*
|
|
4
|
-
* Resources are global singletons that don't belong to any entity.
|
|
5
|
-
* Think: time, input state, camera config, game settings.
|
|
6
|
-
*
|
|
7
|
-
* Each resource is identified by a unique symbol (ResourceKey<T>) and
|
|
8
|
-
* stores an arbitrary typed value. The key carries the value type as a
|
|
9
|
-
* phantom type parameter, so reads are type-safe at compile time.
|
|
10
|
-
*
|
|
11
|
-
* Usage:
|
|
12
|
-
*
|
|
13
|
-
* const TimeRes = resource_key<{ delta: number; elapsed: number }>("Time");
|
|
14
|
-
* world.register_resource(TimeRes, { delta: 0, elapsed: 0 });
|
|
15
|
-
* const time = world.resource(TimeRes);
|
|
16
|
-
* // time.delta → number, time.elapsed → number
|
|
17
|
-
*
|
|
18
|
-
***/
|
|
19
|
-
export type ResourceKey<T> = symbol & {
|
|
20
|
-
readonly __phantom: T;
|
|
21
|
-
};
|
|
22
|
-
export declare function resource_key<T>(name: string): ResourceKey<T>;
|
|
23
|
-
//# sourceMappingURL=resource.d.ts.map
|