@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.
Files changed (510) hide show
  1. package/CHANGELOG.md +1223 -266
  2. package/README.md +217 -112
  3. package/dist/core/ecs/access_check.d.cts +29 -29
  4. package/dist/core/ecs/access_check.d.ts +29 -29
  5. package/dist/core/ecs/access_check.d.ts.map +1 -1
  6. package/dist/core/ecs/archetype.d.cts +217 -209
  7. package/dist/core/ecs/archetype.d.ts +217 -209
  8. package/dist/core/ecs/archetype.d.ts.map +1 -1
  9. package/dist/core/ecs/archetype_closure.d.cts +23 -0
  10. package/dist/core/ecs/archetype_closure.d.ts +23 -0
  11. package/dist/core/ecs/archetype_closure.d.ts.map +1 -0
  12. package/dist/core/ecs/archetype_graph.d.cts +33 -33
  13. package/dist/core/ecs/archetype_graph.d.ts +33 -33
  14. package/dist/core/ecs/archetype_graph.d.ts.map +1 -1
  15. package/dist/core/ecs/archetype_types.d.cts +55 -0
  16. package/dist/core/ecs/archetype_types.d.ts +55 -0
  17. package/dist/core/ecs/archetype_types.d.ts.map +1 -0
  18. package/dist/core/ecs/change_feed.d.cts +53 -0
  19. package/dist/core/ecs/change_feed.d.ts +53 -0
  20. package/dist/core/ecs/change_feed.d.ts.map +1 -0
  21. package/dist/core/ecs/changed_query.d.cts +36 -0
  22. package/dist/core/ecs/changed_query.d.ts +36 -0
  23. package/dist/core/ecs/changed_query.d.ts.map +1 -0
  24. package/dist/core/ecs/chunk_columns.d.cts +49 -0
  25. package/dist/core/ecs/chunk_columns.d.ts +49 -0
  26. package/dist/core/ecs/chunk_columns.d.ts.map +1 -0
  27. package/dist/core/ecs/command_log.d.cts +26 -26
  28. package/dist/core/ecs/command_log.d.ts +26 -26
  29. package/dist/core/ecs/command_log.d.ts.map +1 -1
  30. package/dist/core/ecs/component.d.cts +43 -42
  31. package/dist/core/ecs/component.d.ts +43 -42
  32. package/dist/core/ecs/component.d.ts.map +1 -1
  33. package/dist/core/ecs/component_registry.d.cts +53 -0
  34. package/dist/core/ecs/component_registry.d.ts +53 -0
  35. package/dist/core/ecs/component_registry.d.ts.map +1 -0
  36. package/dist/core/ecs/compute_backend.d.cts +18 -7
  37. package/dist/core/ecs/compute_backend.d.ts +18 -7
  38. package/dist/core/ecs/compute_backend.d.ts.map +1 -1
  39. package/dist/core/ecs/deferred_commands.d.cts +15 -14
  40. package/dist/core/ecs/deferred_commands.d.ts +15 -14
  41. package/dist/core/ecs/deferred_commands.d.ts.map +1 -1
  42. package/dist/core/ecs/dispatch_trace.d.cts +32 -31
  43. package/dist/core/ecs/dispatch_trace.d.ts +32 -31
  44. package/dist/core/ecs/dispatch_trace.d.ts.map +1 -1
  45. package/dist/core/ecs/ecs.d.cts +289 -270
  46. package/dist/core/ecs/ecs.d.ts +289 -270
  47. package/dist/core/ecs/ecs.d.ts.map +1 -1
  48. package/dist/core/ecs/ecs_memory.d.cts +134 -136
  49. package/dist/core/ecs/ecs_memory.d.ts +134 -136
  50. package/dist/core/ecs/ecs_memory.d.ts.map +1 -1
  51. package/dist/core/ecs/ecs_options.d.cts +89 -0
  52. package/dist/core/ecs/ecs_options.d.ts +89 -0
  53. package/dist/core/ecs/ecs_options.d.ts.map +1 -0
  54. package/dist/core/ecs/entity.d.cts +4 -4
  55. package/dist/core/ecs/entity.d.ts +4 -4
  56. package/dist/core/ecs/entity_allocator.d.cts +20 -18
  57. package/dist/core/ecs/entity_allocator.d.ts +20 -18
  58. package/dist/core/ecs/entity_allocator.d.ts.map +1 -1
  59. package/dist/core/ecs/event.d.cts +36 -22
  60. package/dist/core/ecs/event.d.ts +36 -22
  61. package/dist/core/ecs/event.d.ts.map +1 -1
  62. package/dist/core/ecs/facades.d.cts +12 -126
  63. package/dist/core/ecs/facades.d.ts +12 -126
  64. package/dist/core/ecs/facades.d.ts.map +1 -1
  65. package/dist/core/ecs/frame_stepper.d.cts +12 -12
  66. package/dist/core/ecs/frame_stepper.d.ts +12 -12
  67. package/dist/core/ecs/frame_stepper.d.ts.map +1 -1
  68. package/dist/core/ecs/frame_trace.d.cts +32 -32
  69. package/dist/core/ecs/frame_trace.d.ts +32 -32
  70. package/dist/core/ecs/frame_trace.d.ts.map +1 -1
  71. package/dist/core/ecs/host_commands.d.cts +103 -85
  72. package/dist/core/ecs/host_commands.d.ts +103 -85
  73. package/dist/core/ecs/host_commands.d.ts.map +1 -1
  74. package/dist/core/ecs/index.d.cts +21 -11
  75. package/dist/core/ecs/index.d.ts +21 -11
  76. package/dist/core/ecs/index.d.ts.map +1 -1
  77. package/dist/core/ecs/observer.d.cts +39 -120
  78. package/dist/core/ecs/observer.d.ts +39 -120
  79. package/dist/core/ecs/observer.d.ts.map +1 -1
  80. package/dist/core/ecs/phase.d.cts +79 -0
  81. package/dist/core/ecs/phase.d.ts +79 -0
  82. package/dist/core/ecs/phase.d.ts.map +1 -0
  83. package/dist/core/ecs/plugin.d.cts +125 -0
  84. package/dist/core/ecs/plugin.d.ts +125 -0
  85. package/dist/core/ecs/plugin.d.ts.map +1 -0
  86. package/dist/core/ecs/plugin_slots.d.cts +26 -0
  87. package/dist/core/ecs/plugin_slots.d.ts +26 -0
  88. package/dist/core/ecs/plugin_slots.d.ts.map +1 -0
  89. package/dist/core/ecs/query.d.cts +208 -578
  90. package/dist/core/ecs/query.d.ts +208 -578
  91. package/dist/core/ecs/query.d.ts.map +1 -1
  92. package/dist/core/ecs/query_cache.d.cts +130 -0
  93. package/dist/core/ecs/query_cache.d.ts +130 -0
  94. package/dist/core/ecs/query_cache.d.ts.map +1 -0
  95. package/dist/core/ecs/query_registry.d.cts +47 -0
  96. package/dist/core/ecs/query_registry.d.ts +47 -0
  97. package/dist/core/ecs/query_registry.d.ts.map +1 -0
  98. package/dist/core/ecs/query_terms.d.cts +126 -0
  99. package/dist/core/ecs/query_terms.d.ts +126 -0
  100. package/dist/core/ecs/query_terms.d.ts.map +1 -0
  101. package/dist/core/ecs/ref.d.cts +100 -39
  102. package/dist/core/ecs/ref.d.ts +100 -39
  103. package/dist/core/ecs/ref.d.ts.map +1 -1
  104. package/dist/core/ecs/relation.d.cts +101 -182
  105. package/dist/core/ecs/relation.d.ts +101 -182
  106. package/dist/core/ecs/relation.d.ts.map +1 -1
  107. package/dist/core/ecs/resource.d.cts +13 -13
  108. package/dist/core/ecs/resource.d.ts +13 -13
  109. package/dist/core/ecs/resource_registry.d.cts +5 -5
  110. package/dist/core/ecs/resource_registry.d.ts +5 -5
  111. package/dist/core/ecs/resource_registry.d.ts.map +1 -1
  112. package/dist/core/ecs/row_kinds.d.cts +24 -0
  113. package/dist/core/ecs/row_kinds.d.ts +24 -0
  114. package/dist/core/ecs/row_kinds.d.ts.map +1 -0
  115. package/dist/core/ecs/run_condition.d.cts +23 -23
  116. package/dist/core/ecs/run_condition.d.ts +23 -23
  117. package/dist/core/ecs/run_condition.d.ts.map +1 -1
  118. package/dist/core/ecs/schedule.d.cts +91 -120
  119. package/dist/core/ecs/schedule.d.ts +91 -120
  120. package/dist/core/ecs/schedule.d.ts.map +1 -1
  121. package/dist/core/ecs/schedule_plan.d.cts +33 -0
  122. package/dist/core/ecs/schedule_plan.d.ts +33 -0
  123. package/dist/core/ecs/schedule_plan.d.ts.map +1 -0
  124. package/dist/core/ecs/snapshot.d.cts +77 -0
  125. package/dist/core/ecs/snapshot.d.ts +77 -0
  126. package/dist/core/ecs/snapshot.d.ts.map +1 -0
  127. package/dist/core/ecs/snapshot_mount.d.cts +42 -0
  128. package/dist/core/ecs/snapshot_mount.d.ts +42 -0
  129. package/dist/core/ecs/snapshot_mount.d.ts.map +1 -0
  130. package/dist/core/ecs/sparse_store.d.cts +108 -51
  131. package/dist/core/ecs/sparse_store.d.ts +108 -51
  132. package/dist/core/ecs/sparse_store.d.ts.map +1 -1
  133. package/dist/core/ecs/store.d.cts +527 -473
  134. package/dist/core/ecs/store.d.ts +527 -473
  135. package/dist/core/ecs/store.d.ts.map +1 -1
  136. package/dist/core/ecs/store_layout_listener.d.cts +6 -6
  137. package/dist/core/ecs/store_layout_listener.d.ts +6 -6
  138. package/dist/core/ecs/store_types.d.cts +122 -0
  139. package/dist/core/ecs/store_types.d.ts +122 -0
  140. package/dist/core/ecs/store_types.d.ts.map +1 -0
  141. package/dist/core/ecs/system.d.cts +146 -61
  142. package/dist/core/ecs/system.d.ts +146 -61
  143. package/dist/core/ecs/system.d.ts.map +1 -1
  144. package/dist/core/ecs/system_context.d.cts +296 -0
  145. package/dist/core/ecs/system_context.d.ts +296 -0
  146. package/dist/core/ecs/system_context.d.ts.map +1 -0
  147. package/dist/core/ecs/system_set.d.cts +48 -0
  148. package/dist/core/ecs/system_set.d.ts +48 -0
  149. package/dist/core/ecs/system_set.d.ts.map +1 -0
  150. package/dist/core/ecs/utils/arrays.d.cts +15 -1
  151. package/dist/core/ecs/utils/arrays.d.ts +15 -1
  152. package/dist/core/ecs/utils/arrays.d.ts.map +1 -1
  153. package/dist/core/ecs/utils/error.d.cts +82 -6
  154. package/dist/core/ecs/utils/error.d.ts +82 -6
  155. package/dist/core/ecs/utils/error.d.ts.map +1 -1
  156. package/dist/core/ecs/utils/plugin_error.d.cts +10 -0
  157. package/dist/core/ecs/utils/plugin_error.d.ts +10 -0
  158. package/dist/core/ecs/utils/plugin_error.d.ts.map +1 -0
  159. package/dist/core/restore_errors.d.cts +30 -0
  160. package/dist/core/restore_errors.d.ts +30 -0
  161. package/dist/core/restore_errors.d.ts.map +1 -0
  162. package/dist/core/store/action_ring.d.cts +44 -44
  163. package/dist/core/store/action_ring.d.ts +44 -44
  164. package/dist/core/store/action_ring.d.ts.map +1 -1
  165. package/dist/core/store/allocator.d.cts +149 -95
  166. package/dist/core/store/allocator.d.ts +149 -95
  167. package/dist/core/store/allocator.d.ts.map +1 -1
  168. package/dist/core/store/buffer_backed_column.d.cts +17 -17
  169. package/dist/core/store/buffer_backed_column.d.ts +17 -17
  170. package/dist/core/store/buffer_backed_column.d.ts.map +1 -1
  171. package/dist/core/store/column_store.d.cts +124 -86
  172. package/dist/core/store/column_store.d.ts +124 -86
  173. package/dist/core/store/column_store.d.ts.map +1 -1
  174. package/dist/core/store/command_dispatch.d.cts +14 -15
  175. package/dist/core/store/command_dispatch.d.ts +14 -15
  176. package/dist/core/store/command_dispatch.d.ts.map +1 -1
  177. package/dist/core/store/command_ring.d.cts +36 -39
  178. package/dist/core/store/command_ring.d.ts +36 -39
  179. package/dist/core/store/command_ring.d.ts.map +1 -1
  180. package/dist/core/store/descriptor.d.cts +34 -17
  181. package/dist/core/store/descriptor.d.ts +34 -17
  182. package/dist/core/store/descriptor.d.ts.map +1 -1
  183. package/dist/core/store/entity_index.d.cts +34 -35
  184. package/dist/core/store/entity_index.d.ts +34 -35
  185. package/dist/core/store/entity_index.d.ts.map +1 -1
  186. package/dist/core/store/event_ring.d.cts +36 -38
  187. package/dist/core/store/event_ring.d.ts +36 -38
  188. package/dist/core/store/event_ring.d.ts.map +1 -1
  189. package/dist/core/store/extend.d.cts +13 -7
  190. package/dist/core/store/extend.d.ts +13 -7
  191. package/dist/core/store/extend.d.ts.map +1 -1
  192. package/dist/core/store/grow.d.cts +2 -2
  193. package/dist/core/store/grow.d.ts +2 -2
  194. package/dist/core/store/grow.d.ts.map +1 -1
  195. package/dist/core/store/header.d.cts +31 -27
  196. package/dist/core/store/header.d.ts +31 -27
  197. package/dist/core/store/header.d.ts.map +1 -1
  198. package/dist/core/store/index.d.cts +10 -10
  199. package/dist/core/store/index.d.ts +10 -10
  200. package/dist/core/store/index.d.ts.map +1 -1
  201. package/dist/core/store/layout_ops.d.cts +71 -62
  202. package/dist/core/store/layout_ops.d.ts +71 -62
  203. package/dist/core/store/layout_ops.d.ts.map +1 -1
  204. package/dist/core/store/region_table.d.cts +28 -21
  205. package/dist/core/store/region_table.d.ts +28 -21
  206. package/dist/core/store/region_table.d.ts.map +1 -1
  207. package/dist/core/store/snapshot.d.cts +31 -16
  208. package/dist/core/store/snapshot.d.ts +31 -16
  209. package/dist/core/store/snapshot.d.ts.map +1 -1
  210. package/dist/core/store/state_hash.d.cts +12 -12
  211. package/dist/core/store/state_hash.d.ts +12 -12
  212. package/dist/core/store/state_hash.d.ts.map +1 -1
  213. package/dist/core/store/store_regions.d.cts +10 -10
  214. package/dist/core/store/store_regions.d.ts +10 -10
  215. package/dist/core/store/store_regions.d.ts.map +1 -1
  216. package/dist/core/store/vendored_abi/abi.d.cts +27 -2
  217. package/dist/core/store/vendored_abi/abi.d.ts +27 -2
  218. package/dist/core/store/vendored_abi/abi.d.ts.map +1 -1
  219. package/dist/host_commands-B2KMx8O2.cjs +1 -0
  220. package/dist/host_commands-ClVPvhSa.cjs +2 -0
  221. package/dist/host_commands-CwxVQS1z.js +1524 -0
  222. package/dist/host_commands-nJvTy88E.js +1667 -0
  223. package/dist/index.cjs +1 -1
  224. package/dist/index.d.cts +15 -10
  225. package/dist/index.d.ts +15 -10
  226. package/dist/index.d.ts.map +1 -1
  227. package/dist/index.development.cjs +1 -1
  228. package/dist/index.development.js +5804 -5203
  229. package/dist/index.js +5323 -4764
  230. package/dist/internal.cjs +2 -2
  231. package/dist/internal.d.cts +5 -2
  232. package/dist/internal.d.ts +5 -2
  233. package/dist/internal.d.ts.map +1 -1
  234. package/dist/internal.development.cjs +1 -1
  235. package/dist/internal.development.js +70 -20
  236. package/dist/internal.js +138 -83
  237. package/dist/plugins/abi-D3V-QUSf.cjs +1 -0
  238. package/dist/plugins/abi-NP8pNxpd.js +42 -0
  239. package/dist/plugins/arrays-Dr_1hCjL.js +28 -0
  240. package/dist/plugins/arrays-Dt-Joc4i.cjs +1 -0
  241. package/dist/plugins/assertions-gtDVfbnQ.js +6 -0
  242. package/dist/plugins/assertions-z5GQd_bB.cjs +1 -0
  243. package/dist/{extensions → plugins}/editor/editor.d.cts +54 -54
  244. package/dist/{extensions → plugins}/editor/editor.d.ts +54 -54
  245. package/dist/plugins/editor/editor.d.ts.map +1 -0
  246. package/dist/{extensions → plugins}/editor/field_handle.d.cts +12 -12
  247. package/dist/{extensions → plugins}/editor/field_handle.d.ts +12 -12
  248. package/dist/plugins/editor/field_handle.d.ts.map +1 -0
  249. package/dist/plugins/editor/index.d.cts +22 -0
  250. package/dist/plugins/editor/index.d.ts +22 -0
  251. package/dist/plugins/editor/index.d.ts.map +1 -0
  252. package/dist/plugins/editor.cjs +1 -0
  253. package/dist/plugins/editor.d.cts +1 -0
  254. package/dist/plugins/editor.d.ts +1 -0
  255. package/dist/plugins/editor.development.cjs +1 -0
  256. package/dist/{extensions/editor/index.development.js → plugins/editor.development.js} +81 -64
  257. package/dist/{extensions/editor/index.js → plugins/editor.js} +81 -64
  258. package/dist/plugins/events/event_channel.d.cts +13 -0
  259. package/dist/plugins/events/event_channel.d.ts +13 -0
  260. package/dist/plugins/events/event_channel.d.ts.map +1 -0
  261. package/dist/plugins/events/event_registry.d.cts +22 -0
  262. package/dist/plugins/events/event_registry.d.ts +22 -0
  263. package/dist/plugins/events/event_registry.d.ts.map +1 -0
  264. package/dist/plugins/events/facade.d.cts +26 -0
  265. package/dist/plugins/events/facade.d.ts +26 -0
  266. package/dist/plugins/events/facade.d.ts.map +1 -0
  267. package/dist/plugins/events/index.d.cts +10 -0
  268. package/dist/plugins/events/index.d.ts +10 -0
  269. package/dist/plugins/events/index.d.ts.map +1 -0
  270. package/dist/plugins/events.cjs +1 -0
  271. package/dist/plugins/events.d.cts +1 -0
  272. package/dist/plugins/events.d.ts +1 -0
  273. package/dist/plugins/events.development.cjs +1 -0
  274. package/dist/plugins/events.development.js +174 -0
  275. package/dist/plugins/events.js +159 -0
  276. package/dist/plugins/observers/index.d.cts +23 -0
  277. package/dist/plugins/observers/index.d.ts +23 -0
  278. package/dist/plugins/observers/index.d.ts.map +1 -0
  279. package/dist/plugins/observers/observer_registry.d.cts +101 -0
  280. package/dist/plugins/observers/observer_registry.d.ts +101 -0
  281. package/dist/plugins/observers/observer_registry.d.ts.map +1 -0
  282. package/dist/plugins/observers.cjs +1 -0
  283. package/dist/plugins/observers.d.cts +1 -0
  284. package/dist/plugins/observers.d.ts +1 -0
  285. package/dist/plugins/observers.development.cjs +1 -0
  286. package/dist/plugins/observers.development.js +431 -0
  287. package/dist/plugins/observers.js +403 -0
  288. package/dist/plugins/relation_store-BsoegrZh.js +313 -0
  289. package/dist/plugins/relation_store-DQKSnxsm.cjs +1 -0
  290. package/dist/plugins/relation_store-RBhpcE28.cjs +1 -0
  291. package/dist/plugins/relation_store-RqW5Snx6.js +328 -0
  292. package/dist/plugins/relations/builtin_relations.d.cts +48 -0
  293. package/dist/plugins/relations/builtin_relations.d.ts +48 -0
  294. package/dist/plugins/relations/builtin_relations.d.ts.map +1 -0
  295. package/dist/plugins/relations/facade.d.cts +73 -0
  296. package/dist/plugins/relations/facade.d.ts +73 -0
  297. package/dist/plugins/relations/facade.d.ts.map +1 -0
  298. package/dist/plugins/relations/index.d.cts +11 -0
  299. package/dist/plugins/relations/index.d.ts +11 -0
  300. package/dist/plugins/relations/index.d.ts.map +1 -0
  301. package/dist/{core/ecs → plugins/relations}/relation_service.d.cts +85 -97
  302. package/dist/{core/ecs → plugins/relations}/relation_service.d.ts +85 -97
  303. package/dist/plugins/relations/relation_service.d.ts.map +1 -0
  304. package/dist/plugins/relations/relation_store.d.cts +177 -0
  305. package/dist/plugins/relations/relation_store.d.ts +177 -0
  306. package/dist/plugins/relations/relation_store.d.ts.map +1 -0
  307. package/dist/plugins/relations.cjs +1 -0
  308. package/dist/plugins/relations.d.cts +1 -0
  309. package/dist/plugins/relations.d.ts +1 -0
  310. package/dist/plugins/relations.development.cjs +1 -0
  311. package/dist/plugins/relations.development.js +603 -0
  312. package/dist/plugins/relations.js +553 -0
  313. package/dist/plugins/snapshots/index.d.cts +33 -0
  314. package/dist/plugins/snapshots/index.d.ts +33 -0
  315. package/dist/plugins/snapshots/index.d.ts.map +1 -0
  316. package/dist/plugins/snapshots/resume.d.cts +57 -0
  317. package/dist/plugins/snapshots/resume.d.ts +57 -0
  318. package/dist/plugins/snapshots/resume.d.ts.map +1 -0
  319. package/dist/plugins/snapshots/snapshot_service.d.cts +59 -0
  320. package/dist/plugins/snapshots/snapshot_service.d.ts +59 -0
  321. package/dist/plugins/snapshots/snapshot_service.d.ts.map +1 -0
  322. package/dist/plugins/snapshots.cjs +1 -0
  323. package/dist/plugins/snapshots.d.cts +1 -0
  324. package/dist/plugins/snapshots.d.ts +1 -0
  325. package/dist/plugins/snapshots.development.cjs +1 -0
  326. package/dist/plugins/snapshots.development.js +737 -0
  327. package/dist/plugins/snapshots.js +737 -0
  328. package/dist/plugins/solid/index.d.cts +8 -0
  329. package/dist/plugins/solid/index.d.ts +8 -0
  330. package/dist/plugins/solid/index.d.ts.map +1 -0
  331. package/dist/plugins/solid/solid.d.cts +97 -0
  332. package/dist/plugins/solid/solid.d.ts +97 -0
  333. package/dist/plugins/solid/solid.d.ts.map +1 -0
  334. package/dist/plugins/solid.cjs +1 -0
  335. package/dist/plugins/solid.d.cts +1 -0
  336. package/dist/plugins/solid.d.ts +1 -0
  337. package/dist/plugins/solid.development.cjs +1 -0
  338. package/dist/plugins/solid.development.js +319 -0
  339. package/dist/plugins/solid.js +319 -0
  340. package/dist/plugins/workers/index.d.cts +75 -0
  341. package/dist/plugins/workers/index.d.ts +75 -0
  342. package/dist/plugins/workers/index.d.ts.map +1 -0
  343. package/dist/plugins/workers/node_threads.d.cts +25 -0
  344. package/dist/plugins/workers/node_threads.d.ts +25 -0
  345. package/dist/plugins/workers/node_threads.d.ts.map +1 -0
  346. package/dist/plugins/workers/plan.d.cts +61 -0
  347. package/dist/plugins/workers/plan.d.ts +61 -0
  348. package/dist/plugins/workers/plan.d.ts.map +1 -0
  349. package/dist/plugins/workers/pool.d.cts +144 -0
  350. package/dist/plugins/workers/pool.d.ts +144 -0
  351. package/dist/plugins/workers/pool.d.ts.map +1 -0
  352. package/dist/plugins/workers/protocol.d.cts +112 -0
  353. package/dist/plugins/workers/protocol.d.ts +112 -0
  354. package/dist/plugins/workers/protocol.d.ts.map +1 -0
  355. package/dist/plugins/workers/worker_bind.d.cts +64 -0
  356. package/dist/plugins/workers/worker_bind.d.ts +64 -0
  357. package/dist/plugins/workers/worker_bind.d.ts.map +1 -0
  358. package/dist/plugins/workers/worker_loop.d.cts +14 -0
  359. package/dist/plugins/workers/worker_loop.d.ts +14 -0
  360. package/dist/plugins/workers/worker_loop.d.ts.map +1 -0
  361. package/dist/plugins/workers.cjs +1 -0
  362. package/dist/plugins/workers.d.cts +1 -0
  363. package/dist/plugins/workers.d.ts +1 -0
  364. package/dist/plugins/workers.development.cjs +1 -0
  365. package/dist/plugins/workers.development.js +596 -0
  366. package/dist/plugins/workers.js +474 -0
  367. package/dist/primitives.cjs +1 -1
  368. package/dist/primitives.d.cts +4 -4
  369. package/dist/primitives.d.ts +4 -4
  370. package/dist/primitives.development.cjs +1 -1
  371. package/dist/primitives.development.js +66 -22
  372. package/dist/primitives.js +66 -22
  373. package/dist/shared-BKl12xF1.js +132 -0
  374. package/dist/shared-Dk-pACZT.cjs +1 -0
  375. package/dist/shared.cjs +1 -1
  376. package/dist/shared.d.cts +7 -7
  377. package/dist/shared.d.ts +7 -7
  378. package/dist/shared.d.ts.map +1 -1
  379. package/dist/shared.development.cjs +1 -1
  380. package/dist/shared.development.js +4 -3
  381. package/dist/shared.js +4 -3
  382. package/dist/topological_sort-Cc_yXqPT.js +346 -0
  383. package/dist/topological_sort-vp1imU6D.cjs +1 -0
  384. package/dist/type_primitives/assertions.d.cts +12 -16
  385. package/dist/type_primitives/assertions.d.ts +12 -16
  386. package/dist/type_primitives/assertions.d.ts.map +1 -1
  387. package/dist/type_primitives/binary_heap/binary_heap.d.cts +2 -6
  388. package/dist/type_primitives/binary_heap/binary_heap.d.ts +2 -6
  389. package/dist/type_primitives/binary_heap/binary_heap.d.ts.map +1 -1
  390. package/dist/type_primitives/bitset/bitset.d.cts +7 -11
  391. package/dist/type_primitives/bitset/bitset.d.ts +7 -11
  392. package/dist/type_primitives/bitset/bitset.d.ts.map +1 -1
  393. package/dist/type_primitives/brand.d.cts +2 -7
  394. package/dist/type_primitives/brand.d.ts +2 -7
  395. package/dist/type_primitives/brand.d.ts.map +1 -1
  396. package/dist/type_primitives/error.d.cts +1 -2
  397. package/dist/type_primitives/error.d.ts +1 -2
  398. package/dist/type_primitives/error.d.ts.map +1 -1
  399. package/dist/type_primitives/index.d.cts +1 -1
  400. package/dist/type_primitives/index.d.ts +1 -1
  401. package/dist/type_primitives/sparse_map/sparse_map.d.cts +3 -7
  402. package/dist/type_primitives/sparse_map/sparse_map.d.ts +3 -7
  403. package/dist/type_primitives/sparse_map/sparse_map.d.ts.map +1 -1
  404. package/dist/type_primitives/sparse_set/sparse_set.d.cts +2 -6
  405. package/dist/type_primitives/sparse_set/sparse_set.d.ts +2 -6
  406. package/dist/type_primitives/sparse_set/sparse_set.d.ts.map +1 -1
  407. package/dist/type_primitives/topological_sort/topological_sort.d.cts +1 -5
  408. package/dist/type_primitives/topological_sort/topological_sort.d.ts +1 -5
  409. package/dist/type_primitives/topological_sort/topological_sort.d.ts.map +1 -1
  410. package/dist/type_primitives/typed_arrays/typed_arrays.d.cts +16 -15
  411. package/dist/type_primitives/typed_arrays/typed_arrays.d.ts +16 -15
  412. package/dist/type_primitives/typed_arrays/typed_arrays.d.ts.map +1 -1
  413. package/dist/utils/error.d.ts.map +1 -1
  414. package/dist/version.d.cts +3 -3
  415. package/dist/version.d.ts +3 -3
  416. package/dist/worker.cjs +1 -0
  417. package/dist/worker.d.cts +17 -0
  418. package/dist/worker.d.ts +17 -0
  419. package/dist/worker.d.ts.map +1 -0
  420. package/dist/worker.development.cjs +1 -0
  421. package/dist/worker.development.js +253 -0
  422. package/dist/worker.js +253 -0
  423. package/package.json +363 -191
  424. package/dist/core/ecs/builtin_relations.d.cts +0 -43
  425. package/dist/core/ecs/builtin_relations.d.ts +0 -43
  426. package/dist/core/ecs/builtin_relations.d.ts.map +0 -1
  427. package/dist/core/ecs/event_registry.d.cts +0 -22
  428. package/dist/core/ecs/event_registry.d.ts +0 -22
  429. package/dist/core/ecs/event_registry.d.ts.map +0 -1
  430. package/dist/core/ecs/relation_service.d.ts.map +0 -1
  431. package/dist/core/ecs/resume.d.cts +0 -85
  432. package/dist/core/ecs/resume.d.ts +0 -85
  433. package/dist/core/ecs/resume.d.ts.map +0 -1
  434. package/dist/core/ecs/snapshot_service.d.cts +0 -94
  435. package/dist/core/ecs/snapshot_service.d.ts +0 -94
  436. package/dist/core/ecs/snapshot_service.d.ts.map +0 -1
  437. package/dist/extensions/editor/editor.d.ts.map +0 -1
  438. package/dist/extensions/editor/field_handle.d.ts.map +0 -1
  439. package/dist/extensions/editor/index.cjs +0 -1
  440. package/dist/extensions/editor/index.d.cts +0 -21
  441. package/dist/extensions/editor/index.d.ts +0 -21
  442. package/dist/extensions/editor/index.d.ts.map +0 -1
  443. package/dist/extensions/editor/index.development.cjs +0 -1
  444. package/dist/extensions/reactive/ecs_sync.d.cts +0 -214
  445. package/dist/extensions/reactive/ecs_sync.d.ts +0 -214
  446. package/dist/extensions/reactive/ecs_sync.d.ts.map +0 -1
  447. package/dist/extensions/reactive/index.cjs +0 -1
  448. package/dist/extensions/reactive/index.d.cts +0 -23
  449. package/dist/extensions/reactive/index.d.ts +0 -23
  450. package/dist/extensions/reactive/index.d.ts.map +0 -1
  451. package/dist/extensions/reactive/index.development.cjs +0 -1
  452. package/dist/extensions/reactive/index.development.js +0 -215
  453. package/dist/extensions/reactive/index.js +0 -215
  454. package/dist/extensions/solid/index.cjs +0 -1
  455. package/dist/extensions/solid/index.d.cts +0 -6
  456. package/dist/extensions/solid/index.d.ts +0 -6
  457. package/dist/extensions/solid/index.d.ts.map +0 -1
  458. package/dist/extensions/solid/index.development.cjs +0 -1
  459. package/dist/extensions/solid/index.development.js +0 -40
  460. package/dist/extensions/solid/index.js +0 -36
  461. package/dist/extensions/solid/kernel_solid.d.cts +0 -45
  462. package/dist/extensions/solid/kernel_solid.d.ts +0 -45
  463. package/dist/extensions/solid/kernel_solid.d.ts.map +0 -1
  464. package/dist/host_commands-BlR3oZ3x.js +0 -2406
  465. package/dist/host_commands-C2cpU3yC.cjs +0 -1
  466. package/dist/internal-BoxWl4dG.js +0 -2565
  467. package/dist/internal-CGBEwfeB.cjs +0 -2
  468. package/dist/interop-CT-REx0W.cjs +0 -1
  469. package/dist/interop-CcY6ASQc.js +0 -18
  470. package/dist/interop-DqxleBo7.js +0 -18
  471. package/dist/interop-T1HZ-Dpa.cjs +0 -1
  472. package/dist/kernel-Cz2Kxlwl.js +0 -240
  473. package/dist/kernel-DgyrLFjW.js +0 -227
  474. package/dist/kernel-sw7ScKWu.cjs +0 -1
  475. package/dist/kernel-yWV3XnAb.cjs +0 -1
  476. package/dist/reactive/array.d.cts +0 -24
  477. package/dist/reactive/array.d.ts +0 -24
  478. package/dist/reactive/array.d.ts.map +0 -1
  479. package/dist/reactive/index.cjs +0 -1
  480. package/dist/reactive/index.d.cts +0 -11
  481. package/dist/reactive/index.d.ts +0 -11
  482. package/dist/reactive/index.d.ts.map +0 -1
  483. package/dist/reactive/index.development.cjs +0 -1
  484. package/dist/reactive/index.development.js +0 -18
  485. package/dist/reactive/index.js +0 -18
  486. package/dist/reactive/interop.d.cts +0 -19
  487. package/dist/reactive/interop.d.ts +0 -19
  488. package/dist/reactive/interop.d.ts.map +0 -1
  489. package/dist/reactive/kernel.d.cts +0 -73
  490. package/dist/reactive/kernel.d.ts +0 -73
  491. package/dist/reactive/kernel.d.ts.map +0 -1
  492. package/dist/reactive/map.d.cts +0 -16
  493. package/dist/reactive/map.d.ts +0 -16
  494. package/dist/reactive/map.d.ts.map +0 -1
  495. package/dist/reactive/shallow.d.cts +0 -11
  496. package/dist/reactive/shallow.d.ts +0 -11
  497. package/dist/reactive/shallow.d.ts.map +0 -1
  498. package/dist/reactive/struct.d.cts +0 -10
  499. package/dist/reactive/struct.d.ts +0 -10
  500. package/dist/reactive/struct.d.ts.map +0 -1
  501. package/dist/shallow-Bs39EPh1.js +0 -150
  502. package/dist/shallow-C5YmTbtb.cjs +0 -1
  503. package/dist/shallow-CiFC70Dz.js +0 -159
  504. package/dist/shallow-DQ8aG51_.cjs +0 -1
  505. package/dist/shared-B4v0L1cw.js +0 -109
  506. package/dist/shared-DU78k0pU.cjs +0 -1
  507. package/dist/topological_sort-BDvEyb9W.cjs +0 -1
  508. package/dist/topological_sort-DK6EjpWa.js +0 -135
  509. package/dist/typed_arrays-D3NmwtCG.cjs +0 -1
  510. package/dist/typed_arrays-DIVwVy5_.js +0 -258
@@ -1 +1 @@
1
- {"version":3,"file":"archetype.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/archetype.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"archetype.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/archetype.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { BitSet } from '../../type_primitives/index.cjs';
2
+ import { SystemDescriptor } from './system.cjs';
3
+ /** Archetype closure from a descriptor set.
4
+ *
5
+ * Each descriptor is a system or an observer's synthesized `SystemDescriptor`.
6
+ * Both carry `spawns` + `transitions`. Seeds the worklist with every
7
+ * descriptor's `spawns`. Iteratively applies every descriptor's `transitions`
8
+ * to every discovered mask whose components cover the transition's `whenHas`.
9
+ * Returns the union of seeds + reachable targets, deduplicated by hash-bucketed
10
+ * mask equality.
11
+ *
12
+ * Termination: every transition either monotonically grows the mask (add
13
+ * outpacing remove), monotonically shrinks it, or returns a mask the
14
+ * `seen` map already holds. Because the universe of masks is bounded by
15
+ * `2^|components|` (and in practice the in-tree spawn and transition set is
16
+ * small), the worklist is finite and we exit when it empties.
17
+ *
18
+ * Liberal `whenHas`, over-approximation is fine. An
19
+ * unreachable transition target costs one descriptor row at the SAB tail,
20
+ * not column bytes. Empty `spawns` + `transitions` short-circuit to zero.
21
+ */
22
+ export declare function computeArchetypeClosure(descriptors: Iterable<SystemDescriptor>): BitSet[];
23
+ //# sourceMappingURL=archetype_closure.d.ts.map
@@ -0,0 +1,23 @@
1
+ import { BitSet } from '../../type_primitives/index.js';
2
+ import { SystemDescriptor } from './system.js';
3
+ /** Archetype closure from a descriptor set.
4
+ *
5
+ * Each descriptor is a system or an observer's synthesized `SystemDescriptor`.
6
+ * Both carry `spawns` + `transitions`. Seeds the worklist with every
7
+ * descriptor's `spawns`. Iteratively applies every descriptor's `transitions`
8
+ * to every discovered mask whose components cover the transition's `whenHas`.
9
+ * Returns the union of seeds + reachable targets, deduplicated by hash-bucketed
10
+ * mask equality.
11
+ *
12
+ * Termination: every transition either monotonically grows the mask (add
13
+ * outpacing remove), monotonically shrinks it, or returns a mask the
14
+ * `seen` map already holds. Because the universe of masks is bounded by
15
+ * `2^|components|` (and in practice the in-tree spawn and transition set is
16
+ * small), the worklist is finite and we exit when it empties.
17
+ *
18
+ * Liberal `whenHas`, over-approximation is fine. An
19
+ * unreachable transition target costs one descriptor row at the SAB tail,
20
+ * not column bytes. Empty `spawns` + `transitions` short-circuit to zero.
21
+ */
22
+ export declare function computeArchetypeClosure(descriptors: Iterable<SystemDescriptor>): BitSet[];
23
+ //# sourceMappingURL=archetype_closure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archetype_closure.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/archetype_closure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;KAYK;AAEL,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,MAAM,EAAE,CAgFzF"}
@@ -1,20 +1,20 @@
1
1
  import { BitSet } from '../../type_primitives/index.cjs';
2
2
  import { Archetype, ArchetypeColumnLayout, ArchetypeID } from './archetype.cjs';
3
3
  import { ComponentID } from './component.cjs';
4
- import { ComponentMeta } from './store.cjs';
4
+ import { ComponentMeta } from './store_types.cjs';
5
5
  import { ArchetypeSpec } from '../store/index.cjs';
6
- /** What the graph needs from `Store` closure-injected. `extendStore` and
6
+ /** What the graph needs from `Store`, closure-injected. `extendStore` and
7
7
  * `materialize` bind the storage lifecycle (SAB extend + column-store views
8
- * + grow handler) on the Store side; `fanIntoQueries` binds query-registry
9
- * state. All are creation-path only never called on an edge-cache hit. */
8
+ * + grow handler) on the Store side. `fanIntoQueries` binds query-registry
9
+ * state. All are creation-path only, never called on an edge-cache hit. */
10
10
  export interface ArchetypeGraphHost {
11
- /** Component field metadata, indexed by ComponentID for building a new
11
+ /** Component field metadata, indexed by ComponentID, for building a new
12
12
  * archetype's column layouts. */
13
13
  readonly componentMetas: () => readonly ComponentMeta[];
14
14
  /** Row capacity for a new archetype's column region. */
15
15
  readonly initialCapacity: () => number;
16
16
  /** Extend the SAB with the new archetypes' column regions (one call for
17
- * the whole batch the bulk path's O(N²)→O(N) win). */
17
+ * the whole batch, the bulk path's O(N²)→O(N) win). */
18
18
  readonly extendStore: (specs: ArchetypeSpec[]) => void;
19
19
  /** Materialise the `Archetype` over the live column store and attach the
20
20
  * store's grow handler. */
@@ -28,69 +28,69 @@ export declare class ArchetypeGraph {
28
28
  * and never removed). Store's flush loops hoist this array to a local. */
29
29
  readonly archetypes: Archetype[];
30
30
  /** Inverted index: ComponentID → ascending list of ArchetypeIDs that contain
31
- * that component. Indexed POSITIONALLY by component id (a small, dense id
31
+ * that component. Indexed positionally by component id (a small, dense id
32
32
  * space, 0..STORE_DESCRIPTOR_COMPONENT_LIMIT-1), so a lookup is an array
33
33
  * index, not a Map hash. Used by `getMatchingArchetypes` to start the
34
34
  * superset scan from the smallest bucket. Each bucket is a plain push-only
35
- * array NOT a Set and deliberately does NOT dedup: a (component,
35
+ * array. Not a Set, and deliberately does not dedup: a (component,
36
36
  * archetype) pair can be inserted here at most once (see the "no duplicate
37
- * pair" invariant on `install`), so there is nothing for a Set
37
+ * pair" invariant on `_install`), so there is nothing for a Set
38
38
  * to collapse. Archetypes are never removed from a Store, so buckets only
39
- * grow, in ascending archetype-id order which is canonical order,
40
- * exploited by `_forEachChangedArchetype` to skip a sort. */
39
+ * grow, in ascending archetype-id order, which is canonical order,
40
+ * exploited by `forEachChangedArchetype` to skip a sort. */
41
41
  readonly componentIndex: ArchetypeID[][];
42
- private readonly archetypeMap;
43
- private nextArchetypeId;
44
- private readonly host;
42
+ private readonly _archetypeMap;
43
+ private _nextArchetypeId;
44
+ private readonly _host;
45
45
  constructor(host: ArchetypeGraphHost);
46
46
  get(id: ArchetypeID): Archetype;
47
47
  /**
48
48
  * Find or create an archetype for the given component mask.
49
49
  * Also updates the componentIndex and pushes into matching registered queries.
50
50
  *
51
- * Hot single-mask path. The bulk batched variant used by the prewarm
52
- * pass at `ecs.startup()` is `createManyFromMasks`;
53
- * see `ECS.startup()` for how it gets called and why.
51
+ * Hot single-mask path. The bulk batched variant, used by the prewarm
52
+ * pass at `ecs.startup()`, is `getOrCreateFromMasks`. See `ECS.startup()`
53
+ * for how it gets called and why.
54
54
  */
55
55
  getOrCreateFromMask(mask: BitSet): ArchetypeID;
56
56
  /**
57
- * Bulk variant of `getOrCreateFromMask` the archetype prewarm pass.
57
+ * Bulk variant of `getOrCreateFromMask`, the archetype prewarm pass.
58
58
  *
59
59
  * Given a set of masks, creates Archetypes for the ones not already
60
- * planted, in a SINGLE `extendColumnStore` call (instead of one per
61
- * archetype). Single-mask creation is O(N) in archetypes-so-far because
62
- * the extend has to copy every existing archetype's live rows forward;
60
+ * planted, in a single `extendColumnStore` call (instead of one per
61
+ * archetype). Single-mask creation is O(N) in archetypes-so-far, because
62
+ * the extend has to copy every existing archetype's live rows forward.
63
63
  * N such calls compound to O(N²). Batching collapses the per-archetype
64
- * setup-and-copy down to one pass the per-startup cost goes from
64
+ * setup-and-copy down to one pass, the per-startup cost goes from
65
65
  * O(N²) to O(N) for in-tree systems whose archetype
66
66
  * set is known at registration time via `spawns` + `transitions`.
67
67
  *
68
68
  * Masks already in the map are skipped. Returns the resolved
69
- * `ArchetypeID` per input mask in input order callers that don't need
69
+ * `ArchetypeID` per input mask in input order, callers that don't need
70
70
  * the ids can ignore the return value.
71
71
  */
72
- createManyFromMasks(masks: readonly BitSet[]): ArchetypeID[];
73
- /** Hash-bucketed mask → ArchetypeID lookup; null when the mask isn't planted. */
74
- private lookup;
72
+ getOrCreateFromMasks(masks: readonly BitSet[]): ArchetypeID[];
73
+ /** Hash-bucketed mask → ArchetypeID lookup. Null when the mask isn't planted. */
74
+ private _lookup;
75
75
  /** Walk the mask's set bits and resolve each non-tag component to its
76
76
  * layout. Used by both single and bulk archetype-create paths. */
77
- private buildLayouts;
77
+ private _createLayouts;
78
78
  /** Materialise the `Archetype` for `id` (via the host, which binds the
79
79
  * live column store + grow handler), register in the archetype map +
80
80
  * component index, and fan into any matching registered queries.
81
81
  *
82
- * Clones `mask` before storing callers may pass scratch BitSets that
83
- * they intend to reuse (e.g. `addComponents` / `removeComponents`'s
82
+ * Clones `mask` before storing, callers may pass scratch BitSets that
83
+ * they intend to reuse (e.g. the `addComponents` and `removeComponents`
84
84
  * `_scratchTargetMask`). The Archetype and the archetypeMap bucket
85
85
  * both keep references long-term, so the clone is required for
86
- * correctness and is the previously-implicit guarantee made by the
86
+ * correctness, and is the previously-implicit guarantee made by the
87
87
  * mask-allocating callers (`copyWithSet`, `copyWithClear`, etc.). */
88
- private install;
88
+ private _install;
89
89
  /** Resolve "add component_id to archetype_id" → target ArchetypeID. Caches the edge. */
90
90
  resolveAdd(archetypeId: ArchetypeID, componentId: ComponentID): ArchetypeID;
91
91
  /** Resolve "remove component_id from archetype_id" → target ArchetypeID. Caches the edge. */
92
92
  resolveRemove(archetypeId: ArchetypeID, componentId: ComponentID): ArchetypeID;
93
- /** Cache a bidirectional add/remove edge between two archetypes. */
94
- private cacheEdge;
93
+ /** Cache a bidirectional add and remove edge between two archetypes. */
94
+ private _cacheEdge;
95
95
  }
96
96
  //# sourceMappingURL=archetype_graph.d.ts.map
@@ -1,20 +1,20 @@
1
1
  import { BitSet } from '../../type_primitives/index.js';
2
2
  import { Archetype, ArchetypeColumnLayout, ArchetypeID } from './archetype.js';
3
3
  import { ComponentID } from './component.js';
4
- import { ComponentMeta } from './store.js';
4
+ import { ComponentMeta } from './store_types.js';
5
5
  import { ArchetypeSpec } from '../store/index.js';
6
- /** What the graph needs from `Store` closure-injected. `extendStore` and
6
+ /** What the graph needs from `Store`, closure-injected. `extendStore` and
7
7
  * `materialize` bind the storage lifecycle (SAB extend + column-store views
8
- * + grow handler) on the Store side; `fanIntoQueries` binds query-registry
9
- * state. All are creation-path only never called on an edge-cache hit. */
8
+ * + grow handler) on the Store side. `fanIntoQueries` binds query-registry
9
+ * state. All are creation-path only, never called on an edge-cache hit. */
10
10
  export interface ArchetypeGraphHost {
11
- /** Component field metadata, indexed by ComponentID for building a new
11
+ /** Component field metadata, indexed by ComponentID, for building a new
12
12
  * archetype's column layouts. */
13
13
  readonly componentMetas: () => readonly ComponentMeta[];
14
14
  /** Row capacity for a new archetype's column region. */
15
15
  readonly initialCapacity: () => number;
16
16
  /** Extend the SAB with the new archetypes' column regions (one call for
17
- * the whole batch the bulk path's O(N²)→O(N) win). */
17
+ * the whole batch, the bulk path's O(N²)→O(N) win). */
18
18
  readonly extendStore: (specs: ArchetypeSpec[]) => void;
19
19
  /** Materialise the `Archetype` over the live column store and attach the
20
20
  * store's grow handler. */
@@ -28,69 +28,69 @@ export declare class ArchetypeGraph {
28
28
  * and never removed). Store's flush loops hoist this array to a local. */
29
29
  readonly archetypes: Archetype[];
30
30
  /** Inverted index: ComponentID → ascending list of ArchetypeIDs that contain
31
- * that component. Indexed POSITIONALLY by component id (a small, dense id
31
+ * that component. Indexed positionally by component id (a small, dense id
32
32
  * space, 0..STORE_DESCRIPTOR_COMPONENT_LIMIT-1), so a lookup is an array
33
33
  * index, not a Map hash. Used by `getMatchingArchetypes` to start the
34
34
  * superset scan from the smallest bucket. Each bucket is a plain push-only
35
- * array NOT a Set and deliberately does NOT dedup: a (component,
35
+ * array. Not a Set, and deliberately does not dedup: a (component,
36
36
  * archetype) pair can be inserted here at most once (see the "no duplicate
37
- * pair" invariant on `install`), so there is nothing for a Set
37
+ * pair" invariant on `_install`), so there is nothing for a Set
38
38
  * to collapse. Archetypes are never removed from a Store, so buckets only
39
- * grow, in ascending archetype-id order which is canonical order,
40
- * exploited by `_forEachChangedArchetype` to skip a sort. */
39
+ * grow, in ascending archetype-id order, which is canonical order,
40
+ * exploited by `forEachChangedArchetype` to skip a sort. */
41
41
  readonly componentIndex: ArchetypeID[][];
42
- private readonly archetypeMap;
43
- private nextArchetypeId;
44
- private readonly host;
42
+ private readonly _archetypeMap;
43
+ private _nextArchetypeId;
44
+ private readonly _host;
45
45
  constructor(host: ArchetypeGraphHost);
46
46
  get(id: ArchetypeID): Archetype;
47
47
  /**
48
48
  * Find or create an archetype for the given component mask.
49
49
  * Also updates the componentIndex and pushes into matching registered queries.
50
50
  *
51
- * Hot single-mask path. The bulk batched variant used by the prewarm
52
- * pass at `ecs.startup()` is `createManyFromMasks`;
53
- * see `ECS.startup()` for how it gets called and why.
51
+ * Hot single-mask path. The bulk batched variant, used by the prewarm
52
+ * pass at `ecs.startup()`, is `getOrCreateFromMasks`. See `ECS.startup()`
53
+ * for how it gets called and why.
54
54
  */
55
55
  getOrCreateFromMask(mask: BitSet): ArchetypeID;
56
56
  /**
57
- * Bulk variant of `getOrCreateFromMask` the archetype prewarm pass.
57
+ * Bulk variant of `getOrCreateFromMask`, the archetype prewarm pass.
58
58
  *
59
59
  * Given a set of masks, creates Archetypes for the ones not already
60
- * planted, in a SINGLE `extendColumnStore` call (instead of one per
61
- * archetype). Single-mask creation is O(N) in archetypes-so-far because
62
- * the extend has to copy every existing archetype's live rows forward;
60
+ * planted, in a single `extendColumnStore` call (instead of one per
61
+ * archetype). Single-mask creation is O(N) in archetypes-so-far, because
62
+ * the extend has to copy every existing archetype's live rows forward.
63
63
  * N such calls compound to O(N²). Batching collapses the per-archetype
64
- * setup-and-copy down to one pass the per-startup cost goes from
64
+ * setup-and-copy down to one pass, the per-startup cost goes from
65
65
  * O(N²) to O(N) for in-tree systems whose archetype
66
66
  * set is known at registration time via `spawns` + `transitions`.
67
67
  *
68
68
  * Masks already in the map are skipped. Returns the resolved
69
- * `ArchetypeID` per input mask in input order callers that don't need
69
+ * `ArchetypeID` per input mask in input order, callers that don't need
70
70
  * the ids can ignore the return value.
71
71
  */
72
- createManyFromMasks(masks: readonly BitSet[]): ArchetypeID[];
73
- /** Hash-bucketed mask → ArchetypeID lookup; null when the mask isn't planted. */
74
- private lookup;
72
+ getOrCreateFromMasks(masks: readonly BitSet[]): ArchetypeID[];
73
+ /** Hash-bucketed mask → ArchetypeID lookup. Null when the mask isn't planted. */
74
+ private _lookup;
75
75
  /** Walk the mask's set bits and resolve each non-tag component to its
76
76
  * layout. Used by both single and bulk archetype-create paths. */
77
- private buildLayouts;
77
+ private _createLayouts;
78
78
  /** Materialise the `Archetype` for `id` (via the host, which binds the
79
79
  * live column store + grow handler), register in the archetype map +
80
80
  * component index, and fan into any matching registered queries.
81
81
  *
82
- * Clones `mask` before storing callers may pass scratch BitSets that
83
- * they intend to reuse (e.g. `addComponents` / `removeComponents`'s
82
+ * Clones `mask` before storing, callers may pass scratch BitSets that
83
+ * they intend to reuse (e.g. the `addComponents` and `removeComponents`
84
84
  * `_scratchTargetMask`). The Archetype and the archetypeMap bucket
85
85
  * both keep references long-term, so the clone is required for
86
- * correctness and is the previously-implicit guarantee made by the
86
+ * correctness, and is the previously-implicit guarantee made by the
87
87
  * mask-allocating callers (`copyWithSet`, `copyWithClear`, etc.). */
88
- private install;
88
+ private _install;
89
89
  /** Resolve "add component_id to archetype_id" → target ArchetypeID. Caches the edge. */
90
90
  resolveAdd(archetypeId: ArchetypeID, componentId: ComponentID): ArchetypeID;
91
91
  /** Resolve "remove component_id from archetype_id" → target ArchetypeID. Caches the edge. */
92
92
  resolveRemove(archetypeId: ArchetypeID, componentId: ComponentID): ArchetypeID;
93
- /** Cache a bidirectional add/remove edge between two archetypes. */
94
- private cacheEdge;
93
+ /** Cache a bidirectional add and remove edge between two archetypes. */
94
+ private _cacheEdge;
95
95
  }
96
96
  //# sourceMappingURL=archetype_graph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"archetype_graph.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/archetype_graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,MAAM,EAAsB,MAAM,uBAAuB,CAAC;AACnE,OAAO,EACN,SAAS,EAGT,KAAK,qBAAqB,EAE1B,KAAK,WAAW,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAG7C,OAAO,EAGN,KAAK,aAAa,EAElB,MAAM,UAAU,CAAC;AAGlB;;;4EAG4E;AAC5E,MAAM,WAAW,kBAAkB;IAClC;qCACiC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,SAAS,aAAa,EAAE,CAAC;IACxD,wDAAwD;IACxD,QAAQ,CAAC,eAAe,EAAE,MAAM,MAAM,CAAC;IACvC;4DACwD;IACxD,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;IACvD;+BAC2B;IAC3B,QAAQ,CAAC,WAAW,EAAE,CACrB,EAAE,EAAE,WAAW,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,qBAAqB,EAAE,KAC5B,SAAS,CAAC;IACf;6BACyB;IACzB,QAAQ,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;CACxD;AAED,qBAAa,cAAc;IAC1B;8EAC0E;IAC1E,SAAgB,UAAU,EAAE,SAAS,EAAE,CAAM;IAC7C;;;;;;;;;;iEAU6D;IAC7D,SAAgB,cAAc,EAAE,WAAW,EAAE,EAAE,CAAM;IAErD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyC;IACtE,OAAO,CAAC,eAAe,CAAK;IAE5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;gBAE9B,IAAI,EAAE,kBAAkB;IAI7B,GAAG,CAAC,EAAE,EAAE,WAAW,GAAG,SAAS;IAStC;;;;;;;OAOG;IACI,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAkBrD;;;;;;;;;;;;;;;OAeG;IACI,mBAAmB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,EAAE;IA4DnE,iFAAiF;IACjF,OAAO,CAAC,MAAM;IASd;sEACkE;IAClE,OAAO,CAAC,YAAY;IAkBpB;;;;;;;;;yEASqE;IACrE,OAAO,CAAC,OAAO;IA0Df,wFAAwF;IACjF,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,WAAW;IAYlF,6FAA6F;IACtF,aAAa,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,WAAW;IAYrF,oEAAoE;IACpE,OAAO,CAAC,SAAS;CAuBjB"}
1
+ {"version":3,"file":"archetype_graph.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/archetype_graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,MAAM,EAAsB,MAAM,uBAAuB,CAAC;AACnE,OAAO,EACN,SAAS,EAGT,KAAK,qBAAqB,EAE1B,KAAK,WAAW,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,EAGN,KAAK,aAAa,EAElB,MAAM,UAAU,CAAC;AAGlB;;;2EAG2E;AAC3E,MAAM,WAAW,kBAAkB;IAClC;qCACiC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,SAAS,aAAa,EAAE,CAAC;IACxD,wDAAwD;IACxD,QAAQ,CAAC,eAAe,EAAE,MAAM,MAAM,CAAC;IACvC;2DACuD;IACvD,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;IACvD;+BAC2B;IAC3B,QAAQ,CAAC,WAAW,EAAE,CACrB,EAAE,EAAE,WAAW,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,qBAAqB,EAAE,KAC5B,SAAS,CAAC;IACf;6BACyB;IACzB,QAAQ,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;CACxD;AAED,qBAAa,cAAc;IAC1B;8EAC0E;IAC1E,SAAgB,UAAU,EAAE,SAAS,EAAE,CAAM;IAC7C;;;;;;;;;;gEAU4D;IAC5D,SAAgB,cAAc,EAAE,WAAW,EAAE,EAAE,CAAM;IAErD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyC;IACvE,OAAO,CAAC,gBAAgB,CAAK;IAE7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;gBAE/B,IAAI,EAAE,kBAAkB;IAI7B,GAAG,CAAC,EAAE,EAAE,WAAW,GAAG,SAAS;IAStC;;;;;;;OAOG;IACI,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAgBrD;;;;;;;;;;;;;;;OAeG;IACI,oBAAoB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,EAAE;IA4DpE,iFAAiF;IACjF,OAAO,CAAC,OAAO;IASf;sEACkE;IAClE,OAAO,CAAC,cAAc;IAmBtB;;;;;;;;;yEASqE;IACrE,OAAO,CAAC,QAAQ;IA0DhB,wFAAwF;IACjF,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,WAAW;IAUlF,6FAA6F;IACtF,aAAa,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,WAAW;IAUrF,wEAAwE;IACxE,OAAO,CAAC,UAAU;CAuBlB"}
@@ -0,0 +1,55 @@
1
+ import { Brand } from '../../type_primitives/index.cjs';
2
+ import { ComponentID, ComponentDef, ComponentSchema, SchemaOf, DeclaredQueryTerm, ReadonlyColumn } from './component.cjs';
3
+ import { ReadonlyEntityIDArray } from './entity.cjs';
4
+ export type ArchetypeID = Brand<number, "archetype_id">;
5
+ /**
6
+ * Public, read-only window onto an archetype's rows. This is the only
7
+ * surface `Query.archetypes`, `Query.forEach`, and `ChangedQuery.forEach`
8
+ * hand to callers, the concrete `Archetype` (with its structural mutators
9
+ * `swapRemoveRow`, `moveEntityFrom`, `writeFields`, `setEdge`, and the
10
+ * mutable `getColumnMut`) stays internal so query iteration can't bypass the
11
+ * deferred-flush path that prevents iterator invalidation. This is the same
12
+ * back door that is closed for `Store` and closed again for `Query`.
13
+ *
14
+ * `id` is the archetype's opaque identity (not a mutator), exposed so the
15
+ * public `ECS.batchAddComponent` and `batchRemoveComponent` API can target an
16
+ * archetype without the caller holding a concrete `Archetype` reference.
17
+ */
18
+ export interface ArchetypeView<out Defs extends readonly ComponentDef<any>[] = readonly ComponentDef<any>[]> {
19
+ /** Opaque archetype identity. Pass to `ECS.batchAddComponent` and
20
+ * `ECS.batchRemoveComponent`. */
21
+ readonly id: ArchetypeID;
22
+ /** Number of **enabled** entities, the default-iteration bound. Rows
23
+ * `0..entityCount-1` are enabled. Disabled rows (if any) sit contiguously at
24
+ * `entityCount..totalCount-1`. `forEach` SoA loops read this, so they skip
25
+ * disabled rows for free. Use `totalCount` to span disabled rows too. */
26
+ readonly entityCount: number;
27
+ /** Total live rows, enabled + disabled. Equal to `entityCount` unless
28
+ * some rows are disabled. Use for full-state work (serialization, snapshot,
29
+ * determinism) that must see every entity regardless of enabled state. */
30
+ readonly totalCount: number;
31
+ /** Number of disabled rows = `totalCount - entityCount`. */
32
+ readonly disabledCount: number;
33
+ /** Raw entity ID buffer (packed `EntityID`s). Valid data at indices
34
+ * 0..totalCount-1 (enabled rows first, then disabled). */
35
+ readonly entityIds: ReadonlyEntityIDArray;
36
+ /** True if this archetype's mask includes the given component. */
37
+ hasComponent(id: ComponentID): boolean;
38
+ /** Get a single field's column (read-only). Valid data: indices
39
+ * 0..entityCount-1. `def` must be a term of the iterating query. The
40
+ * bare-`ArchetypeView` default stays permissive. */
41
+ getColumnRead<D extends ComponentDef<any>, K extends string & keyof SchemaOf<D>>(def: D & DeclaredQueryTerm<Defs, D>, field: K): ReadonlyColumn;
42
+ /** Tuple fetch of several of one component's columns,
43
+ * `const [q, r] = arch.getColumnsRead(HexPos, "q", "r")`. One small
44
+ * array allocation per call. See the class doc on `Archetype`. */
45
+ getColumnsRead<D extends ComponentDef<any>, const K extends readonly (string & keyof SchemaOf<D>)[]>(def: D & DeclaredQueryTerm<Defs, D>, ...fields: K): {
46
+ [I in keyof K]: ReadonlyColumn;
47
+ };
48
+ /** Get a single field's column **if this archetype has the component**,
49
+ * else `undefined`, the optional-query fetch-if-present accessor.
50
+ * The absent branch is expected (resolve the column pointer per archetype
51
+ * span: present ⇒ column, absent ⇒ `undefined`), not an error. Same
52
+ * advisory-readonly view and `reads`-access-check as `getColumnRead`. */
53
+ getOptionalColumnRead<S extends ComponentSchema, K extends string & keyof S>(def: ComponentDef<S>, field: K): ReadonlyColumn | undefined;
54
+ }
55
+ //# sourceMappingURL=archetype_types.d.ts.map
@@ -0,0 +1,55 @@
1
+ import { Brand } from '../../type_primitives/index.js';
2
+ import { ComponentID, ComponentDef, ComponentSchema, SchemaOf, DeclaredQueryTerm, ReadonlyColumn } from './component.js';
3
+ import { ReadonlyEntityIDArray } from './entity.js';
4
+ export type ArchetypeID = Brand<number, "archetype_id">;
5
+ /**
6
+ * Public, read-only window onto an archetype's rows. This is the only
7
+ * surface `Query.archetypes`, `Query.forEach`, and `ChangedQuery.forEach`
8
+ * hand to callers, the concrete `Archetype` (with its structural mutators
9
+ * `swapRemoveRow`, `moveEntityFrom`, `writeFields`, `setEdge`, and the
10
+ * mutable `getColumnMut`) stays internal so query iteration can't bypass the
11
+ * deferred-flush path that prevents iterator invalidation. This is the same
12
+ * back door that is closed for `Store` and closed again for `Query`.
13
+ *
14
+ * `id` is the archetype's opaque identity (not a mutator), exposed so the
15
+ * public `ECS.batchAddComponent` and `batchRemoveComponent` API can target an
16
+ * archetype without the caller holding a concrete `Archetype` reference.
17
+ */
18
+ export interface ArchetypeView<out Defs extends readonly ComponentDef<any>[] = readonly ComponentDef<any>[]> {
19
+ /** Opaque archetype identity. Pass to `ECS.batchAddComponent` and
20
+ * `ECS.batchRemoveComponent`. */
21
+ readonly id: ArchetypeID;
22
+ /** Number of **enabled** entities, the default-iteration bound. Rows
23
+ * `0..entityCount-1` are enabled. Disabled rows (if any) sit contiguously at
24
+ * `entityCount..totalCount-1`. `forEach` SoA loops read this, so they skip
25
+ * disabled rows for free. Use `totalCount` to span disabled rows too. */
26
+ readonly entityCount: number;
27
+ /** Total live rows, enabled + disabled. Equal to `entityCount` unless
28
+ * some rows are disabled. Use for full-state work (serialization, snapshot,
29
+ * determinism) that must see every entity regardless of enabled state. */
30
+ readonly totalCount: number;
31
+ /** Number of disabled rows = `totalCount - entityCount`. */
32
+ readonly disabledCount: number;
33
+ /** Raw entity ID buffer (packed `EntityID`s). Valid data at indices
34
+ * 0..totalCount-1 (enabled rows first, then disabled). */
35
+ readonly entityIds: ReadonlyEntityIDArray;
36
+ /** True if this archetype's mask includes the given component. */
37
+ hasComponent(id: ComponentID): boolean;
38
+ /** Get a single field's column (read-only). Valid data: indices
39
+ * 0..entityCount-1. `def` must be a term of the iterating query. The
40
+ * bare-`ArchetypeView` default stays permissive. */
41
+ getColumnRead<D extends ComponentDef<any>, K extends string & keyof SchemaOf<D>>(def: D & DeclaredQueryTerm<Defs, D>, field: K): ReadonlyColumn;
42
+ /** Tuple fetch of several of one component's columns,
43
+ * `const [q, r] = arch.getColumnsRead(HexPos, "q", "r")`. One small
44
+ * array allocation per call. See the class doc on `Archetype`. */
45
+ getColumnsRead<D extends ComponentDef<any>, const K extends readonly (string & keyof SchemaOf<D>)[]>(def: D & DeclaredQueryTerm<Defs, D>, ...fields: K): {
46
+ [I in keyof K]: ReadonlyColumn;
47
+ };
48
+ /** Get a single field's column **if this archetype has the component**,
49
+ * else `undefined`, the optional-query fetch-if-present accessor.
50
+ * The absent branch is expected (resolve the column pointer per archetype
51
+ * span: present ⇒ column, absent ⇒ `undefined`), not an error. Same
52
+ * advisory-readonly view and `reads`-access-check as `getColumnRead`. */
53
+ getOptionalColumnRead<S extends ComponentSchema, K extends string & keyof S>(def: ComponentDef<S>, field: K): ReadonlyColumn | undefined;
54
+ }
55
+ //# sourceMappingURL=archetype_types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archetype_types.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/archetype_types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;KAaK;AAEL,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EACX,WAAW,EACX,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEtD,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAExD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,aAAa,CAC7B,GAAG,CAAC,IAAI,SAAS,SAAS,YAAY,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,YAAY,CAAC,GAAG,CAAC,EAAE;IAE5E;qCACiC;IACjC,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;IACzB;;;6EAGyE;IACzE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;8EAE0E;IAC1E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,4DAA4D;IAC5D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B;8DAC0D;IAC1D,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAC1C,kEAAkE;IAClE,YAAY,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC;IACvC;;wDAEoD;IACpD,aAAa,CAAC,CAAC,SAAS,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,QAAQ,CAAC,CAAC,CAAC,EAC9E,GAAG,EAAE,CAAC,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,EACnC,KAAK,EAAE,CAAC,GACN,cAAc,CAAC;IAClB;;sEAEkE;IAClE,cAAc,CACb,CAAC,SAAS,YAAY,CAAC,GAAG,CAAC,EAC3B,KAAK,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,GAAG,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAEvD,GAAG,EAAE,CAAC,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,EACnC,GAAG,MAAM,EAAE,CAAC,GACV;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,cAAc;KAAE,CAAC;IACtC;;;;6EAIyE;IACzE,qBAAqB,CAAC,CAAC,SAAS,eAAe,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,EAC1E,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,EACpB,KAAK,EAAE,CAAC,GACN,cAAc,GAAG,SAAS,CAAC;CAC9B"}
@@ -0,0 +1,53 @@
1
+ import { ArchetypeView } from './archetype_types.cjs';
2
+ import { ComponentHandle } from './component.cjs';
3
+ import { EntityID } from './entity.cjs';
4
+ import { DrainResult, ObservationFlags, StructuralObserverEvents } from './store_types.cjs';
5
+ /** The store's record of what changed, opened to more than one consumer.
6
+ *
7
+ * A plugin asks the store to record a grain, then drains what the store
8
+ * recorded. Several plugins share the feed. The store merges every
9
+ * consumer's ask by OR, and the drains are memoized on their run, so one
10
+ * consumer never takes a record away from another.
11
+ *
12
+ * Two costs a consumer plans around. Asking for the row grain of a component
13
+ * turns on its row tick plane and its dirty list, which every by-id write to
14
+ * that component then pays. Draining hands back store-owned arrays that the
15
+ * next drain reuses, so a consumer copies whatever it keeps past the call. */
16
+ export interface ChangeFeed {
17
+ /** Record what this consumer wants collected for `cid`. `consumer` is the
18
+ * plugin name, and it keys the record the store merges. All-false is
19
+ * the same as never asking. Cold path. */
20
+ configureObservation(consumer: string, cid: number, flags: ObservationFlags): void;
21
+ /** The sparse form: the entity grain of sparse component `sid`, on or off
22
+ * for this consumer. Cold path. */
23
+ configureSparseObservation(consumer: string, sid: number, hasSet: boolean): void;
24
+ /** The rows of `cid` recorded since the last drain. `run` is the change
25
+ * tick of this pass, and it memoizes the drain: two calls at one run give
26
+ * the same object. Once per run per component. */
27
+ drainSet(cid: number, run: number): DrainResult;
28
+ /** The members of sparse component `sid` recorded since the last drain,
29
+ * alive and enabled, in member order. Memoized on `run` like `drainSet`,
30
+ * and the array is store-owned. */
31
+ drainSparseSet(sid: number, run: number): EntityID[];
32
+ /** Visit every non-empty archetype whose `cid` column changed after
33
+ * `baseline`, in canonical order. The archetype grain. Costs one compare
34
+ * per archetype that holds `cid`, and no write path pays for it. */
35
+ forEachChangedArchetype(cid: number, baseline: number, cb: (arch: ArchetypeView) => void): void;
36
+ /** Every live enabled entity that holds `cid`, for a consumer seeding
37
+ * itself with what already exists. Allocates, and walks every row. Cold
38
+ * path. */
39
+ collectEnabledWith(cid: number): EntityID[];
40
+ /** Take one round's structural events. Every hook runs, in install order,
41
+ * on each round of the observed flush. The batch is store-owned scratch
42
+ * that the next round overwrites. Cold path to install, hot per round. */
43
+ addStructuralHook(fn: (ev: StructuralObserverEvents) => void): void;
44
+ /** Tell the store that a component's row ticks changed outside the dirty
45
+ * list, so the next entity-level drain scans the plane. A consumer that
46
+ * stamps a whole archetype at once calls it, because no dirty list saw
47
+ * those rows. */
48
+ noteScan(componentId: number): void;
49
+ isAlive(id: EntityID): boolean;
50
+ isDisabled(id: EntityID): boolean;
51
+ hasComponent(entityId: EntityID, def: ComponentHandle): boolean;
52
+ }
53
+ //# sourceMappingURL=change_feed.d.ts.map
@@ -0,0 +1,53 @@
1
+ import { ArchetypeView } from './archetype_types.js';
2
+ import { ComponentHandle } from './component.js';
3
+ import { EntityID } from './entity.js';
4
+ import { DrainResult, ObservationFlags, StructuralObserverEvents } from './store_types.js';
5
+ /** The store's record of what changed, opened to more than one consumer.
6
+ *
7
+ * A plugin asks the store to record a grain, then drains what the store
8
+ * recorded. Several plugins share the feed. The store merges every
9
+ * consumer's ask by OR, and the drains are memoized on their run, so one
10
+ * consumer never takes a record away from another.
11
+ *
12
+ * Two costs a consumer plans around. Asking for the row grain of a component
13
+ * turns on its row tick plane and its dirty list, which every by-id write to
14
+ * that component then pays. Draining hands back store-owned arrays that the
15
+ * next drain reuses, so a consumer copies whatever it keeps past the call. */
16
+ export interface ChangeFeed {
17
+ /** Record what this consumer wants collected for `cid`. `consumer` is the
18
+ * plugin name, and it keys the record the store merges. All-false is
19
+ * the same as never asking. Cold path. */
20
+ configureObservation(consumer: string, cid: number, flags: ObservationFlags): void;
21
+ /** The sparse form: the entity grain of sparse component `sid`, on or off
22
+ * for this consumer. Cold path. */
23
+ configureSparseObservation(consumer: string, sid: number, hasSet: boolean): void;
24
+ /** The rows of `cid` recorded since the last drain. `run` is the change
25
+ * tick of this pass, and it memoizes the drain: two calls at one run give
26
+ * the same object. Once per run per component. */
27
+ drainSet(cid: number, run: number): DrainResult;
28
+ /** The members of sparse component `sid` recorded since the last drain,
29
+ * alive and enabled, in member order. Memoized on `run` like `drainSet`,
30
+ * and the array is store-owned. */
31
+ drainSparseSet(sid: number, run: number): EntityID[];
32
+ /** Visit every non-empty archetype whose `cid` column changed after
33
+ * `baseline`, in canonical order. The archetype grain. Costs one compare
34
+ * per archetype that holds `cid`, and no write path pays for it. */
35
+ forEachChangedArchetype(cid: number, baseline: number, cb: (arch: ArchetypeView) => void): void;
36
+ /** Every live enabled entity that holds `cid`, for a consumer seeding
37
+ * itself with what already exists. Allocates, and walks every row. Cold
38
+ * path. */
39
+ collectEnabledWith(cid: number): EntityID[];
40
+ /** Take one round's structural events. Every hook runs, in install order,
41
+ * on each round of the observed flush. The batch is store-owned scratch
42
+ * that the next round overwrites. Cold path to install, hot per round. */
43
+ addStructuralHook(fn: (ev: StructuralObserverEvents) => void): void;
44
+ /** Tell the store that a component's row ticks changed outside the dirty
45
+ * list, so the next entity-level drain scans the plane. A consumer that
46
+ * stamps a whole archetype at once calls it, because no dirty list saw
47
+ * those rows. */
48
+ noteScan(componentId: number): void;
49
+ isAlive(id: EntityID): boolean;
50
+ isDisabled(id: EntityID): boolean;
51
+ hasComponent(entityId: EntityID, def: ComponentHandle): boolean;
52
+ }
53
+ //# sourceMappingURL=change_feed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change_feed.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/change_feed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;KAUK;AAEL,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAE7F;;;;;;;;;;8EAU8E;AAC9E,MAAM,WAAW,UAAU;IAC1B;;8CAE0C;IAC1C,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnF;uCACmC;IACnC,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACjF;;sDAEkD;IAClD,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC;IAChD;;uCAEmC;IACnC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC;IACrD;;wEAEoE;IACpE,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI,CAAC;IAChG;;eAEW;IACX,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC;IAC5C;;8EAE0E;IAC1E,iBAAiB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,wBAAwB,KAAK,IAAI,GAAG,IAAI,CAAC;IACpE;;;qBAGiB;IACjB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,OAAO,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC/B,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC;IAClC,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC;CAChE"}