@woosh/meep-engine 2.169.4 → 2.170.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 (1559) hide show
  1. package/build/bundle-worker-terrain.js +1 -1
  2. package/editor/Editor.d.ts +161 -65
  3. package/editor/Editor.d.ts.map +1 -1
  4. package/editor/Editor.js +669 -794
  5. package/editor/EditorCameraNavigation.d.ts +21 -0
  6. package/editor/EditorCameraNavigation.d.ts.map +1 -0
  7. package/editor/EditorCameraNavigation.js +191 -0
  8. package/editor/EditorKeyMap.d.ts +28 -0
  9. package/editor/EditorKeyMap.d.ts.map +1 -0
  10. package/editor/EditorKeyMap.js +182 -0
  11. package/editor/REWORK_PLAN_2026_08.md +692 -0
  12. package/editor/SelectionVisualizer.d.ts +48 -19
  13. package/editor/SelectionVisualizer.d.ts.map +1 -1
  14. package/editor/SelectionVisualizer.js +163 -156
  15. package/editor/actions/concrete/ActionUpdateTexture.d.ts +11 -11
  16. package/editor/actions/concrete/ArrayCopyAction.d.ts +19 -19
  17. package/editor/actions/concrete/ArrayCopyAction.d.ts.map +1 -1
  18. package/editor/actions/concrete/ArrayCopyAction.js +7 -7
  19. package/editor/actions/concrete/ComponentAddAction.d.ts +14 -14
  20. package/editor/actions/concrete/ComponentAddAction.d.ts.map +1 -1
  21. package/editor/actions/concrete/ComponentAddAction.js +6 -5
  22. package/editor/actions/concrete/ComponentRemoveAction.d.ts +10 -10
  23. package/editor/actions/concrete/ComponentRemoveAction.d.ts.map +1 -1
  24. package/editor/actions/concrete/ComponentRemoveAction.js +10 -12
  25. package/editor/actions/concrete/EntityCreateAction.d.ts +17 -17
  26. package/editor/actions/concrete/EntityCreateAction.d.ts.map +1 -1
  27. package/editor/actions/concrete/EntityCreateAction.js +11 -14
  28. package/editor/actions/concrete/EntityRemoveAction.d.ts +10 -10
  29. package/editor/actions/concrete/EntityRemoveAction.d.ts.map +1 -1
  30. package/editor/actions/concrete/EntityRemoveAction.js +2 -1
  31. package/editor/actions/concrete/ModifyPatchSampler2DAction.d.ts +46 -46
  32. package/editor/actions/concrete/ModifyPatchTextureArray2DAction.d.ts +37 -37
  33. package/editor/actions/concrete/ModifyPatchTextureArray2DAction.d.ts.map +1 -1
  34. package/editor/actions/concrete/ModifyPatchTextureArray2DAction.js +3 -1
  35. package/editor/actions/concrete/PaintTerrainOverlayAction.d.ts +22 -22
  36. package/editor/actions/concrete/PaintTerrainOverlayAction.d.ts.map +1 -1
  37. package/editor/actions/concrete/PaintTerrainOverlayAction.js +3 -3
  38. package/editor/actions/concrete/PatchTerrainHeightAction.d.ts +31 -18
  39. package/editor/actions/concrete/PatchTerrainHeightAction.d.ts.map +1 -1
  40. package/editor/actions/concrete/PatchTerrainHeightAction.js +28 -9
  41. package/editor/actions/concrete/SelectionAddAction.d.ts +18 -18
  42. package/editor/actions/concrete/SelectionAddAction.d.ts.map +1 -1
  43. package/editor/actions/concrete/SelectionAddAction.js +2 -1
  44. package/editor/actions/concrete/SelectionClearAction.d.ts +8 -8
  45. package/editor/actions/concrete/SelectionClearAction.d.ts.map +1 -1
  46. package/editor/actions/concrete/SelectionClearAction.js +1 -4
  47. package/editor/actions/concrete/SelectionRemoveAction.d.ts +9 -9
  48. package/editor/actions/concrete/SelectionRemoveAction.d.ts.map +1 -1
  49. package/editor/actions/concrete/SelectionRemoveAction.js +2 -1
  50. package/editor/actions/concrete/TransformModifyAction.d.ts +16 -16
  51. package/editor/actions/concrete/TransformModifyAction.d.ts.map +1 -1
  52. package/editor/actions/concrete/TransformModifyAction.js +8 -8
  53. package/editor/actions/concrete/WriteGridValueAction.d.ts +13 -14
  54. package/editor/actions/concrete/WriteGridValueAction.d.ts.map +1 -1
  55. package/editor/actions/concrete/WriteGridValueAction.js +3 -3
  56. package/editor/camera/camera_framing.d.ts +30 -0
  57. package/editor/camera/camera_framing.d.ts.map +1 -0
  58. package/editor/camera/camera_framing.js +98 -0
  59. package/editor/clipboard.d.ts +19 -0
  60. package/editor/clipboard.d.ts.map +1 -0
  61. package/editor/clipboard.js +184 -0
  62. package/editor/ecs/EditorEntity.d.ts +15 -15
  63. package/editor/ecs/EditorEntitySystem.d.ts +7 -7
  64. package/editor/ecs/EditorEntitySystem.d.ts.map +1 -1
  65. package/editor/ecs/EditorEntitySystem.js +1 -6
  66. package/editor/ecs/component/FieldDescriptor.d.ts +26 -26
  67. package/editor/ecs/component/FieldDescriptor.d.ts.map +1 -1
  68. package/editor/ecs/component/FieldDescriptor.js +20 -22
  69. package/editor/ecs/component/FieldValueAdapter.d.ts +6 -6
  70. package/editor/ecs/component/FieldValueAdapter.d.ts.map +1 -1
  71. package/editor/ecs/component/FieldValueAdapter.js +2 -5
  72. package/editor/ecs/component/TypeEditor.d.ts +24 -24
  73. package/editor/ecs/component/createFieldEditor.d.ts +8 -8
  74. package/editor/ecs/component/createObjectEditor.d.ts +13 -13
  75. package/editor/ecs/component/editors/ColorEditor.d.ts +6 -6
  76. package/editor/ecs/component/editors/HTMLElementEditor.d.ts +6 -6
  77. package/editor/ecs/component/editors/HTMLElementEditor.d.ts.map +1 -1
  78. package/editor/ecs/component/editors/ImagePathEditor.d.ts +6 -6
  79. package/editor/ecs/component/editors/LargeStringEditor.d.ts +15 -15
  80. package/editor/ecs/component/editors/NumericIntervalEditor.d.ts +6 -6
  81. package/editor/ecs/component/editors/NumericIntervalEditor.d.ts.map +1 -1
  82. package/editor/ecs/component/editors/ObservedBooleanEditor.d.ts +6 -6
  83. package/editor/ecs/component/editors/ObservedEnumEditor.d.ts +6 -6
  84. package/editor/ecs/component/editors/ObservedIntegerEditor.d.ts +6 -6
  85. package/editor/ecs/component/editors/ObservedIntegerEditor.d.ts.map +1 -1
  86. package/editor/ecs/component/editors/ObservedStringEditor.d.ts +6 -6
  87. package/editor/ecs/component/editors/ObservedStringEditor.d.ts.map +1 -1
  88. package/editor/ecs/component/editors/Sampler2DEditor.d.ts +6 -6
  89. package/editor/ecs/component/editors/collection/ListEditor.d.ts +7 -7
  90. package/editor/ecs/component/editors/common/BitFlagsEditor.d.ts +11 -11
  91. package/editor/ecs/component/editors/common/EnumEditor.d.ts +7 -7
  92. package/editor/ecs/component/editors/common/makeV3_editor.d.ts +14 -14
  93. package/editor/ecs/component/editors/common/makeV3_editor.d.ts.map +1 -1
  94. package/editor/ecs/component/editors/common/noEditor.d.ts +2 -2
  95. package/editor/ecs/component/editors/common/two_way_sync.d.ts +22 -0
  96. package/editor/ecs/component/editors/common/two_way_sync.d.ts.map +1 -0
  97. package/editor/ecs/component/editors/ecs/GridObstacleEditor.d.ts +6 -6
  98. package/editor/ecs/component/editors/ecs/GridObstacleEditor.js +1 -1
  99. package/editor/ecs/component/editors/ecs/ParameterLookupTableEditor.d.ts +19 -66
  100. package/editor/ecs/component/editors/ecs/ParameterLookupTableEditor.d.ts.map +1 -1
  101. package/editor/ecs/component/editors/ecs/ParameterLookupTableEditor.js +35 -239
  102. package/editor/ecs/component/editors/ecs/ParameterTrackEditor.d.ts +11 -11
  103. package/editor/ecs/component/editors/ecs/ParameterTrackEditor.d.ts.map +1 -1
  104. package/editor/ecs/component/editors/ecs/ParameterTrackEditor.js +17 -17
  105. package/editor/ecs/component/editors/ecs/ParameterTrackSetEditor.d.ts +13 -13
  106. package/editor/ecs/component/editors/ecs/ParticleEmitterEditor.d.ts +51 -51
  107. package/editor/ecs/component/editors/ecs/ParticleEmitterEditor.js +1 -1
  108. package/editor/ecs/component/editors/ecs/ParticleEmitterLayerEditor.d.ts +46 -47
  109. package/editor/ecs/component/editors/ecs/ParticleEmitterLayerEditor.d.ts.map +1 -1
  110. package/editor/ecs/component/editors/ecs/SimulationStepDefinitionEditor.d.ts +15 -15
  111. package/editor/ecs/component/editors/ecs/Trail2DEditor.d.ts +29 -29
  112. package/editor/ecs/component/editors/ecs/Trail3DEditor.d.ts +42 -0
  113. package/editor/ecs/component/editors/ecs/Trail3DEditor.d.ts.map +1 -0
  114. package/editor/ecs/component/editors/ecs/TransformEditor.d.ts +19 -19
  115. package/editor/ecs/component/editors/ecs/buildGridObstaclePreview.d.ts +8 -0
  116. package/editor/ecs/component/editors/ecs/buildGridObstaclePreview.d.ts.map +1 -0
  117. package/editor/ecs/component/editors/ecs/buildGridObstaclePreview.js +19 -0
  118. package/editor/ecs/component/editors/ecs/terrain/SplatMappingEditor.d.ts +18 -18
  119. package/editor/ecs/component/editors/ecs/terrain/TerrainEditor.d.ts +38 -38
  120. package/editor/ecs/component/editors/ecs/terrain/TerrainLayerEditor.d.ts +15 -15
  121. package/editor/ecs/component/editors/ecs/terrain/TerrainLayersEditor.d.ts +18 -18
  122. package/editor/ecs/component/editors/ecs/terrain/TerrainOverlayEditor.d.ts +17 -17
  123. package/editor/ecs/component/editors/geom/QuaternionEditor.d.ts +5 -5
  124. package/editor/ecs/component/editors/geom/QuaternionEditor.d.ts.map +1 -1
  125. package/editor/ecs/component/editors/geom/Vector1Editor.d.ts +6 -6
  126. package/editor/ecs/component/editors/geom/Vector1Editor.d.ts.map +1 -1
  127. package/editor/ecs/component/editors/geom/Vector2Editor.d.ts +5 -5
  128. package/editor/ecs/component/editors/geom/Vector3Editor.d.ts +5 -5
  129. package/editor/ecs/component/editors/geom/Vector4Editor.d.ts +5 -5
  130. package/editor/ecs/component/editors/primitive/ArrayEditor.d.ts +7 -7
  131. package/editor/ecs/component/editors/primitive/BooleanEditor.d.ts +6 -6
  132. package/editor/ecs/component/editors/primitive/FunctionEditor.d.ts +6 -6
  133. package/editor/ecs/component/editors/primitive/NumberEditor.d.ts +7 -7
  134. package/editor/ecs/component/editors/primitive/NumberEditor.d.ts.map +1 -1
  135. package/editor/ecs/component/editors/primitive/ObjectEditor.d.ts +5 -5
  136. package/editor/ecs/component/editors/primitive/StringEditor.d.ts +6 -6
  137. package/editor/ecs/component/editors/three/BufferGeometryEditor.d.ts +6 -6
  138. package/editor/ecs/component/editors/three/MaterialEditor.d.ts +6 -6
  139. package/editor/ecs/component/editors/three/MeshEditor.d.ts +6 -6
  140. package/editor/ecs/component/editors/three/TextureEditor.d.ts +6 -6
  141. package/editor/ecs/component/findNearestRegisteredType.d.ts +7 -7
  142. package/editor/ecs/component/registerEngineComponentEditors.d.ts +8 -0
  143. package/editor/ecs/component/registerEngineComponentEditors.d.ts.map +1 -0
  144. package/editor/ecs/component/registerEngineComponentEditors.js +85 -0
  145. package/editor/enableEditor.d.ts +13 -13
  146. package/editor/enableEditor.d.ts.map +1 -1
  147. package/editor/enableEditor.js +14 -4
  148. package/editor/library/MeshLibrary.d.ts +12 -12
  149. package/editor/library/MeshLibrary.d.ts.map +1 -1
  150. package/editor/library/MeshLibrary.js +4 -7
  151. package/editor/particles/lut_ops.d.ts +34 -0
  152. package/editor/particles/lut_ops.d.ts.map +1 -0
  153. package/editor/particles/lut_ops.js +148 -0
  154. package/editor/particles/particleEditEvents.d.ts +11 -0
  155. package/editor/particles/particleEditEvents.d.ts.map +1 -0
  156. package/editor/particles/particleEditEvents.js +12 -0
  157. package/editor/particles/rebuildParticleEmitter.d.ts +11 -0
  158. package/editor/particles/rebuildParticleEmitter.d.ts.map +1 -0
  159. package/editor/particles/rebuildParticleEmitter.js +49 -0
  160. package/editor/persistence/EditorLayoutStore.d.ts +30 -0
  161. package/editor/persistence/EditorLayoutStore.d.ts.map +1 -0
  162. package/editor/persistence/EditorLayoutStore.js +71 -0
  163. package/editor/persistence/SceneMetadata.d.ts +38 -0
  164. package/editor/persistence/SceneMetadata.d.ts.map +1 -0
  165. package/editor/persistence/SceneMetadata.js +52 -0
  166. package/editor/persistence/SceneSlotManager.d.ts +40 -0
  167. package/editor/persistence/SceneSlotManager.d.ts.map +1 -0
  168. package/editor/persistence/SceneSlotManager.js +144 -0
  169. package/editor/persistence/buildNewSceneDataset.d.ts +10 -0
  170. package/editor/persistence/buildNewSceneDataset.d.ts.map +1 -0
  171. package/editor/persistence/buildNewSceneDataset.js +67 -0
  172. package/editor/persistence/files.d.ts +24 -0
  173. package/editor/persistence/files.d.ts.map +1 -0
  174. package/editor/persistence/files.js +68 -0
  175. package/editor/persistence/scene_import.d.ts +45 -0
  176. package/editor/persistence/scene_import.d.ts.map +1 -0
  177. package/editor/persistence/scene_import.js +143 -0
  178. package/editor/persistence/scene_serialization.d.ts +36 -0
  179. package/editor/persistence/scene_serialization.d.ts.map +1 -0
  180. package/editor/persistence/scene_serialization.js +79 -0
  181. package/editor/persistence/string_buffer_codec.d.ts +20 -0
  182. package/editor/persistence/string_buffer_codec.d.ts.map +1 -0
  183. package/editor/persistence/string_buffer_codec.js +41 -0
  184. package/editor/process/DisableGameUIProcess.d.ts +7 -7
  185. package/editor/process/DisableGameUIProcess.d.ts.map +1 -1
  186. package/editor/process/DisableGameUIProcess.js +1 -5
  187. package/editor/process/EditorProcess.d.ts +18 -18
  188. package/editor/process/GridDisplayProcess.d.ts +16 -0
  189. package/editor/process/GridDisplayProcess.d.ts.map +1 -0
  190. package/editor/process/GridDisplayProcess.js +53 -0
  191. package/editor/process/ObstacleGridDisplayProcess.d.ts +12 -12
  192. package/editor/process/ObstacleGridDisplayProcess.d.ts.map +1 -1
  193. package/editor/process/ObstacleGridDisplayProcess.js +7 -9
  194. package/editor/process/ParticleEmitterRebuildProcess.d.ts +66 -0
  195. package/editor/process/ParticleEmitterRebuildProcess.d.ts.map +1 -0
  196. package/editor/process/ParticleEmitterRebuildProcess.js +217 -0
  197. package/editor/process/ProcessEngine.d.ts +29 -29
  198. package/editor/process/ProcessEngine.d.ts.map +1 -1
  199. package/editor/process/ProcessEngine.js +11 -4
  200. package/editor/process/SymbolicDisplayProcess.d.ts +18 -18
  201. package/editor/process/SymbolicDisplayProcess.js +2 -2
  202. package/editor/process/symbolic/ComponentSymbolicDisplay.d.ts +10 -10
  203. package/editor/process/symbolic/SymbolicDisplayInternalAPI.d.ts +67 -64
  204. package/editor/process/symbolic/SymbolicDisplayInternalAPI.d.ts.map +1 -1
  205. package/editor/process/symbolic/SymbolicDisplayInternalAPI.js +42 -45
  206. package/editor/process/symbolic/buildThreeJSHelperEntity.d.ts +8 -8
  207. package/editor/process/symbolic/make3DSymbolicDisplay.d.ts +9 -9
  208. package/editor/process/symbolic/makeCameraSymbolicDisplay.d.ts +6 -6
  209. package/editor/process/symbolic/makeGridPositionSymbolDisplay.d.ts +5 -5
  210. package/editor/process/symbolic/makeHelperBoxGeometry.d.ts +2 -2
  211. package/editor/process/symbolic/makeHelperSphereGeometry.d.ts +8 -8
  212. package/editor/process/symbolic/makeLightSymbolicDisplay.d.ts +6 -6
  213. package/editor/process/symbolic/makeParticleEmitterSymbolicDisplay.d.ts +5 -5
  214. package/editor/process/symbolic/makeParticleEmitterSymbolicDisplay.d.ts.map +1 -1
  215. package/editor/process/symbolic/makeParticleEmitterSymbolicDisplay.js +21 -1
  216. package/editor/process/symbolic/makePathSymbolicDisplay.d.ts +6 -6
  217. package/editor/process/symbolic/makePositionedIconDisplaySymbol.d.ts +8 -8
  218. package/editor/process/symbolic/makePositionedIconDisplaySymbol.d.ts.map +1 -1
  219. package/editor/process/symbolic/makePositionedIconDisplaySymbol.js +3 -0
  220. package/editor/process/symbolic/makeSocketsSymbolicDisplay.d.ts +6 -6
  221. package/editor/process/symbolic/makeSolidArrowGeometry.d.ts +25 -25
  222. package/editor/process/symbolic/makeSoundEmitterSymbolicDisplay.d.ts +5 -5
  223. package/editor/process/symbolic/synchronizeTransform.d.ts +11 -11
  224. package/editor/prototypeEditorShell.js +102 -0
  225. package/editor/style/controls.scss +168 -0
  226. package/editor/style/editor.scss +313 -0
  227. package/editor/style/inspector.scss +223 -0
  228. package/editor/templates/entity_templates.d.ts +19 -0
  229. package/editor/templates/entity_templates.d.ts.map +1 -0
  230. package/editor/templates/entity_templates.js +167 -0
  231. package/editor/tools/GridPaintTool.d.ts +17 -16
  232. package/editor/tools/GridPaintTool.d.ts.map +1 -1
  233. package/editor/tools/GridPaintTool.js +13 -14
  234. package/editor/tools/SelectionTool.d.ts +25 -26
  235. package/editor/tools/SelectionTool.d.ts.map +1 -1
  236. package/editor/tools/SelectionTool.js +46 -13
  237. package/editor/tools/TransformToolV2.d.ts +76 -0
  238. package/editor/tools/TransformToolV2.d.ts.map +1 -0
  239. package/editor/tools/TransformToolV2.js +396 -0
  240. package/editor/tools/engine/Tool.d.ts +87 -63
  241. package/editor/tools/engine/Tool.d.ts.map +1 -1
  242. package/editor/tools/engine/Tool.js +72 -28
  243. package/editor/tools/engine/ToolEngine.d.ts +21 -22
  244. package/editor/tools/engine/ToolEngine.d.ts.map +1 -1
  245. package/editor/tools/engine/ToolEngine.js +52 -54
  246. package/editor/tools/engine/ToolState.d.ts +6 -6
  247. package/editor/tools/paint/TerrainHeightPaintTool.d.ts +17 -17
  248. package/editor/tools/paint/TerrainHeightPaintTool.d.ts.map +1 -1
  249. package/editor/tools/paint/TerrainHeightPaintTool.js +12 -7
  250. package/editor/tools/paint/TerrainPaintTool.d.ts +81 -30
  251. package/editor/tools/paint/TerrainPaintTool.d.ts.map +1 -1
  252. package/editor/tools/paint/TerrainPaintTool.js +58 -21
  253. package/editor/tools/paint/TerrainTexturePaintTool.d.ts +18 -17
  254. package/editor/tools/paint/TerrainTexturePaintTool.d.ts.map +1 -1
  255. package/editor/tools/paint/TerrainTexturePaintTool.js +75 -12
  256. package/editor/tools/v2/BlenderCameraOrientationGizmo.js +24 -26
  257. package/editor/tools/v2/GizmoNode.d.ts.map +1 -1
  258. package/editor/tools/v2/GizmoNode.js +14 -13
  259. package/editor/tools/v2/TransformControls.d.ts.map +1 -1
  260. package/editor/tools/v2/TransformControls.js +18 -45
  261. package/editor/tools/v2/TransformControlsGizmo.d.ts.map +1 -1
  262. package/editor/tools/v2/TransformControlsGizmo.js +3 -6
  263. package/editor/tools/v2/TransformControlsPlane.d.ts.map +1 -1
  264. package/editor/tools/v2/TransformControlsPlane.js +3 -5
  265. package/editor/tools/v2/TransformMode.d.ts +6 -6
  266. package/editor/view/ecs/ComponentControlView.d.ts +23 -23
  267. package/editor/view/ecs/ComponentControlView.d.ts.map +1 -1
  268. package/editor/view/ecs/ComponentControlView.js +4 -4
  269. package/editor/view/ecs/EntityEditor.d.ts +24 -29
  270. package/editor/view/ecs/EntityEditor.d.ts.map +1 -1
  271. package/editor/view/ecs/EntityEditor.js +34 -10
  272. package/editor/view/ecs/EntityList.js +2 -3
  273. package/editor/view/ecs/HierarchicalEntityListView.d.ts +24 -7
  274. package/editor/view/ecs/HierarchicalEntityListView.d.ts.map +1 -1
  275. package/editor/view/ecs/HierarchicalEntityListView.js +339 -191
  276. package/editor/view/ecs/components/DatGuiController.js +2 -216
  277. package/editor/view/ecs/components/color/GaugeView.d.ts +12 -12
  278. package/editor/view/ecs/components/common/AutoCanvasView.d.ts +29 -19
  279. package/editor/view/ecs/components/common/AutoCanvasView.d.ts.map +1 -1
  280. package/editor/view/ecs/components/common/LineView.d.ts +11 -11
  281. package/editor/view/ecs/components/common/LineView.d.ts.map +1 -1
  282. package/editor/view/ecs/components/common/LineView.js +2 -1
  283. package/editor/view/ecs/components/common/NumberController.d.ts +17 -17
  284. package/editor/view/ecs/components/common/TextController.d.ts +21 -0
  285. package/editor/view/ecs/components/common/TextController.d.ts.map +1 -0
  286. package/editor/view/library/MeshLibraryView.d.ts +17 -0
  287. package/editor/view/library/MeshLibraryView.d.ts.map +1 -0
  288. package/editor/view/library/MeshLibraryView.js +35 -20
  289. package/editor/view/node-graph/NodeGraphCamera.d.ts +48 -0
  290. package/editor/view/node-graph/NodeGraphCamera.d.ts.map +1 -0
  291. package/editor/view/node-graph/NodeGraphCamera.js +88 -90
  292. package/editor/view/node-graph/NodeGraphEditorView.d.ts +25 -2
  293. package/editor/view/node-graph/NodeGraphEditorView.d.ts.map +1 -1
  294. package/editor/view/node-graph/NodeGraphSelection.d.ts +56 -0
  295. package/editor/view/node-graph/NodeGraphSelection.d.ts.map +1 -0
  296. package/editor/view/node-graph/NodeGraphView.d.ts +35 -18
  297. package/editor/view/node-graph/NodeGraphView.d.ts.map +1 -1
  298. package/editor/view/node-graph/NodeGraphView.js +666 -669
  299. package/editor/view/node-graph/NodeView.d.ts +3 -2
  300. package/editor/view/node-graph/NodeView.d.ts.map +1 -1
  301. package/editor/view/node-graph/PortView.d.ts +2 -2
  302. package/editor/view/node-graph/PortView.d.ts.map +1 -1
  303. package/editor/view/node-graph/PortView.js +2 -2
  304. package/editor/view/node-graph/actions/ConnectionCreateAction.d.ts +34 -0
  305. package/editor/view/node-graph/actions/ConnectionCreateAction.d.ts.map +1 -0
  306. package/editor/view/node-graph/actions/ConnectionCreateAction.js +53 -53
  307. package/editor/view/node-graph/actions/ConnectionDeleteAction.d.ts +26 -0
  308. package/editor/view/node-graph/actions/ConnectionDeleteAction.d.ts.map +1 -0
  309. package/editor/view/node-graph/actions/NodeDeleteAction.d.ts +47 -0
  310. package/editor/view/node-graph/actions/NodeDeleteAction.d.ts.map +1 -0
  311. package/editor/view/node-graph/actions/NodeDeleteAction.js +88 -88
  312. package/editor/view/node-graph/actions/NodeParameterSetAction.d.ts +34 -0
  313. package/editor/view/node-graph/actions/NodeParameterSetAction.d.ts.map +1 -0
  314. package/editor/view/node-graph/actions/NodeParameterSetAction.js +52 -52
  315. package/editor/view/node-graph/actions/NodesMoveAction.d.ts +38 -0
  316. package/editor/view/node-graph/actions/NodesMoveAction.d.ts.map +1 -0
  317. package/editor/view/node-graph/actions/SelectionSetAction.d.ts +38 -0
  318. package/editor/view/node-graph/actions/SelectionSetAction.d.ts.map +1 -0
  319. package/editor/view/node-graph/actions/SelectionSetAction.js +60 -60
  320. package/editor/view/node-graph/connection_wire_geometry.d.ts +46 -0
  321. package/editor/view/node-graph/connection_wire_geometry.d.ts.map +1 -0
  322. package/editor/view/particles/ColorLutGradientView.d.ts +19 -0
  323. package/editor/view/particles/ColorLutGradientView.d.ts.map +1 -0
  324. package/editor/view/particles/ColorLutGradientView.js +291 -0
  325. package/editor/view/particles/ScalarLutCurveView.d.ts +19 -0
  326. package/editor/view/particles/ScalarLutCurveView.d.ts.map +1 -0
  327. package/editor/view/particles/ScalarLutCurveView.js +279 -0
  328. package/editor/view/prepareMeshLibrary.d.ts +7 -0
  329. package/editor/view/prepareMeshLibrary.d.ts.map +1 -0
  330. package/editor/view/prepareMeshLibrary.js +34 -14
  331. package/editor/view/shell/EditorShellView.d.ts +18 -0
  332. package/editor/view/shell/EditorShellView.d.ts.map +1 -0
  333. package/editor/view/shell/EditorShellView.js +442 -0
  334. package/editor/view/shell/SceneTreePanelView.d.ts +17 -0
  335. package/editor/view/shell/SceneTreePanelView.d.ts.map +1 -0
  336. package/editor/view/shell/SceneTreePanelView.js +119 -0
  337. package/editor/view/shell/ViewportPanelView.d.ts +18 -0
  338. package/editor/view/shell/ViewportPanelView.d.ts.map +1 -0
  339. package/editor/view/shell/ViewportPanelView.js +64 -0
  340. package/editor/view/tools/ToolSettingsView.d.ts +21 -10
  341. package/editor/view/tools/ToolSettingsView.d.ts.map +1 -1
  342. package/editor/view/tools/ToolSettingsView.js +114 -100
  343. package/editor/view/tools/ToolView.d.ts +12 -12
  344. package/editor/view/v2/SplitView.js +2 -104
  345. package/package.json +7 -1
  346. package/samples/terrain/editor.js +9 -13
  347. package/src/core/binary/BitSet.d.ts.map +1 -1
  348. package/src/core/binary/BitSet.js +7 -7
  349. package/src/core/binary/type/Field.d.ts +2 -2
  350. package/src/core/binary/type/Field.d.ts.map +1 -1
  351. package/src/core/binary/type/Field.js +3 -2
  352. package/src/core/binary/type/Type.d.ts +5 -5
  353. package/src/core/binary/type/Type.d.ts.map +1 -1
  354. package/src/core/binary/type/Type.js +18 -15
  355. package/src/core/binary/type/TypeBuilder.d.ts +1 -1
  356. package/src/core/binary/type/TypeBuilder.d.ts.map +1 -1
  357. package/src/core/binary/type/TypeBuilder.js +2 -1
  358. package/src/core/binary/type/TypeRegistry.d.ts.map +1 -1
  359. package/src/core/binary/type/TypeRegistry.js +1 -3
  360. package/src/core/cache/Cache.d.ts +8 -8
  361. package/src/core/cache/Cache.d.ts.map +1 -1
  362. package/src/core/cache/Cache.js +14 -15
  363. package/src/core/cache/CacheV2.d.ts.map +1 -1
  364. package/src/core/cache/CacheV2.js +15 -20
  365. package/src/core/cache/LoadingCache.d.ts.map +1 -1
  366. package/src/core/cache/LoadingCache.js +3 -2
  367. package/src/core/collection/CuckooFilter.d.ts +23 -23
  368. package/src/core/collection/CuckooFilter.d.ts.map +1 -1
  369. package/src/core/collection/CuckooFilter.js +27 -26
  370. package/src/core/collection/PairUint32Map.d.ts +1 -1
  371. package/src/core/collection/PairUint32Map.d.ts.map +1 -1
  372. package/src/core/collection/PairUint32Map.js +322 -321
  373. package/src/core/collection/RingBuffer.d.ts +5 -5
  374. package/src/core/collection/RingBuffer.d.ts.map +1 -1
  375. package/src/core/collection/RingBuffer.js +18 -18
  376. package/src/core/collection/Uint32Map.d.ts +5 -5
  377. package/src/core/collection/Uint32Map.d.ts.map +1 -1
  378. package/src/core/collection/Uint32Map.js +346 -345
  379. package/src/core/collection/Uint32MinHeap.d.ts +4 -4
  380. package/src/core/collection/Uint32MinHeap.d.ts.map +1 -1
  381. package/src/core/collection/Uint32MinHeap.js +109 -109
  382. package/src/core/collection/array/iterator/ArrayIteratorRandom.d.ts.map +1 -1
  383. package/src/core/collection/array/iterator/ArrayIteratorRandom.js +3 -8
  384. package/src/core/collection/heap/FibonacciHeap.d.ts +6 -6
  385. package/src/core/collection/heap/FibonacciHeap.d.ts.map +1 -1
  386. package/src/core/collection/heap/FibonacciHeap.js +586 -586
  387. package/src/core/collection/heap/IndexedFloatMaxHeap.d.ts +1 -1
  388. package/src/core/collection/heap/IndexedFloatMaxHeap.d.ts.map +1 -1
  389. package/src/core/collection/heap/IndexedFloatMaxHeap.js +261 -261
  390. package/src/core/collection/heap/IndexedFloatMinHeap.d.ts +1 -1
  391. package/src/core/collection/heap/IndexedFloatMinHeap.d.ts.map +1 -1
  392. package/src/core/collection/heap/IndexedFloatMinHeap.js +268 -268
  393. package/src/core/collection/heap/Uint32Heap.d.ts +6 -6
  394. package/src/core/collection/heap/Uint32Heap.d.ts.map +1 -1
  395. package/src/core/collection/heap/Uint32Heap.js +7 -7
  396. package/src/core/collection/heap/Uint32Heap4.d.ts +6 -6
  397. package/src/core/collection/heap/Uint32Heap4.d.ts.map +1 -1
  398. package/src/core/collection/heap/Uint32Heap4.js +490 -490
  399. package/src/core/collection/list/FilteredListProjection.d.ts +7 -7
  400. package/src/core/collection/list/FilteredListProjection.d.ts.map +1 -1
  401. package/src/core/collection/list/FilteredListProjection.js +12 -12
  402. package/src/core/collection/list/SortedListProjection.d.ts +2 -2
  403. package/src/core/collection/list/SortedListProjection.d.ts.map +1 -1
  404. package/src/core/collection/list/SortedListProjection.js +6 -6
  405. package/src/core/collection/table/RowFirstTable.d.ts +5 -5
  406. package/src/core/collection/table/RowFirstTable.d.ts.map +1 -1
  407. package/src/core/collection/table/RowFirstTable.js +6 -7
  408. package/src/core/collection/table/RowFirstTableSpec.d.ts +10 -2
  409. package/src/core/collection/table/RowFirstTableSpec.d.ts.map +1 -1
  410. package/src/core/collection/table/RowFirstTableSpec.js +10 -1
  411. package/src/core/function/FunctionCompiler.d.ts.map +1 -1
  412. package/src/core/function/FunctionCompiler.js +13 -15
  413. package/src/core/geom/3d/shape/BoxShape3D.d.ts.map +1 -1
  414. package/src/core/geom/3d/shape/BoxShape3D.js +171 -175
  415. package/src/core/geom/3d/shape/CapsuleShape3D.d.ts.map +1 -1
  416. package/src/core/geom/3d/shape/CapsuleShape3D.js +238 -242
  417. package/src/core/geom/3d/shape/ConvexHullShape3D.d.ts.map +1 -1
  418. package/src/core/geom/3d/shape/ConvexHullShape3D.js +43 -44
  419. package/src/core/geom/3d/shape/CylinderShape3D.d.ts.map +1 -1
  420. package/src/core/geom/3d/shape/CylinderShape3D.js +220 -224
  421. package/src/core/geom/3d/shape/HeightMapShape3D.d.ts.map +1 -1
  422. package/src/core/geom/3d/shape/HeightMapShape3D.js +58 -61
  423. package/src/core/geom/3d/shape/MeshShape3D.d.ts.map +1 -1
  424. package/src/core/geom/3d/shape/MeshShape3D.js +76 -80
  425. package/src/core/geom/3d/shape/PosedShape3D.d.ts.map +1 -1
  426. package/src/core/geom/3d/shape/PosedShape3D.js +160 -159
  427. package/src/core/geom/3d/shape/SphereShape3D.d.ts.map +1 -1
  428. package/src/core/geom/3d/shape/SphereShape3D.js +143 -146
  429. package/src/core/geom/3d/shape/TransformedShape3D.d.ts.map +1 -1
  430. package/src/core/geom/3d/shape/TransformedShape3D.js +20 -24
  431. package/src/core/geom/3d/shape/Triangle3D.d.ts.map +1 -1
  432. package/src/core/geom/3d/shape/Triangle3D.js +293 -297
  433. package/src/core/geom/3d/shape/UnionShape3D.d.ts.map +1 -1
  434. package/src/core/geom/3d/shape/UnionShape3D.js +15 -19
  435. package/src/core/geom/3d/tetrahedra/TetrahedralMesh.d.ts +15 -15
  436. package/src/core/geom/3d/tetrahedra/TetrahedralMesh.d.ts.map +1 -1
  437. package/src/core/geom/3d/tetrahedra/TetrahedralMesh.js +21 -21
  438. package/src/core/geom/3d/topology/simplify/EdgeCollapseCandidate.d.ts.map +1 -1
  439. package/src/core/geom/3d/topology/simplify/EdgeCollapseCandidate.js +36 -36
  440. package/src/core/geom/packing/max-rect/MaxRectanglesPacker.d.ts +6 -6
  441. package/src/core/geom/packing/max-rect/MaxRectanglesPacker.d.ts.map +1 -1
  442. package/src/core/geom/packing/max-rect/MaxRectanglesPacker.js +8 -8
  443. package/src/core/graph/layout/Connection.d.ts +2 -2
  444. package/src/core/graph/layout/Connection.d.ts.map +1 -1
  445. package/src/core/graph/layout/Connection.js +6 -6
  446. package/src/core/graph/metis/native/MetisGraph.d.ts.map +1 -1
  447. package/src/core/graph/metis/native/MetisGraph.js +232 -231
  448. package/src/core/graph/metis/native/bisection/BisectionScratch.d.ts +3 -3
  449. package/src/core/graph/metis/native/bisection/BisectionScratch.d.ts.map +1 -1
  450. package/src/core/graph/metis/native/bisection/BisectionScratch.js +104 -103
  451. package/src/core/localization/Localization.d.ts.map +1 -1
  452. package/src/core/localization/Localization.js +35 -37
  453. package/src/core/model/BooleanVector3.d.ts +1 -1
  454. package/src/core/model/BooleanVector3.d.ts.map +1 -1
  455. package/src/core/model/BooleanVector3.js +2 -2
  456. package/src/core/model/ObservedValue.d.ts +2 -2
  457. package/src/core/model/ObservedValue.d.ts.map +1 -1
  458. package/src/core/model/ObservedValue.js +8 -6
  459. package/src/core/model/object/ImmutableObjectPool.d.ts +5 -5
  460. package/src/core/model/object/ImmutableObjectPool.d.ts.map +1 -1
  461. package/src/core/model/object/ImmutableObjectPool.js +6 -7
  462. package/src/core/model/reactive/evaluation/MultiPredicateEvaluator.d.ts +5 -5
  463. package/src/core/model/reactive/evaluation/MultiPredicateEvaluator.d.ts.map +1 -1
  464. package/src/core/model/reactive/evaluation/MultiPredicateEvaluator.js +93 -96
  465. package/src/core/model/reactive/model/terminal/ReactiveReference.d.ts +4 -4
  466. package/src/core/model/reactive/model/terminal/ReactiveReference.d.ts.map +1 -1
  467. package/src/core/model/reactive/model/terminal/ReactiveReference.js +6 -6
  468. package/src/core/model/stat/LinearModifier.d.ts +10 -10
  469. package/src/core/model/stat/LinearModifier.d.ts.map +1 -1
  470. package/src/core/model/stat/LinearModifier.js +12 -12
  471. package/src/core/process/Future.d.ts +1 -1
  472. package/src/core/process/Future.d.ts.map +1 -1
  473. package/src/core/process/Future.js +6 -7
  474. package/src/core/process/action/AsynchronousActionSequence.d.ts +5 -5
  475. package/src/core/process/action/AsynchronousActionSequence.d.ts.map +1 -1
  476. package/src/core/process/action/AsynchronousActionSequence.js +9 -9
  477. package/src/core/process/executor/profile/ConcurrentExecutorProfiler.d.ts.map +1 -1
  478. package/src/core/process/executor/profile/ConcurrentExecutorProfiler.js +19 -20
  479. package/src/core/process/filter/MutableFilter.d.ts.map +1 -1
  480. package/src/core/process/filter/MutableFilter.js +1 -6
  481. package/src/core/process/task/RemainingTimeEstimator.d.ts +1 -1
  482. package/src/core/process/task/RemainingTimeEstimator.d.ts.map +1 -1
  483. package/src/core/process/task/RemainingTimeEstimator.js +2 -1
  484. package/src/core/process/undo/ActionProcessor.d.ts +36 -17
  485. package/src/core/process/undo/ActionProcessor.d.ts.map +1 -1
  486. package/src/core/process/undo/ActionProcessor.js +131 -136
  487. package/src/core/science/units/UnitMatrix.d.ts.map +1 -1
  488. package/src/core/science/units/UnitMatrix.js +249 -251
  489. package/src/engine/EngineHarness.d.ts +5 -5
  490. package/src/engine/EngineHarness.d.ts.map +1 -1
  491. package/src/engine/EngineHarness.js +6 -6
  492. package/src/engine/achievements/Achievement.d.ts.map +1 -1
  493. package/src/engine/achievements/Achievement.js +35 -35
  494. package/src/engine/achievements/AchievementManager.d.ts.map +1 -1
  495. package/src/engine/achievements/AchievementManager.js +33 -35
  496. package/src/engine/achievements/gateway/StorageAchievementGateway.d.ts +1 -1
  497. package/src/engine/achievements/gateway/StorageAchievementGateway.d.ts.map +1 -1
  498. package/src/engine/achievements/gateway/StorageAchievementGateway.js +2 -2
  499. package/src/engine/animation/EntityAnimation.d.ts +5 -5
  500. package/src/engine/animation/EntityAnimation.d.ts.map +1 -1
  501. package/src/engine/animation/EntityAnimation.js +6 -6
  502. package/src/engine/animation/curve/editor/CurveEditorView.d.ts +2 -2
  503. package/src/engine/animation/curve/editor/CurveEditorView.d.ts.map +1 -1
  504. package/src/engine/animation/curve/editor/CurveEditorView.js +3 -3
  505. package/src/engine/animation/curve/editor/DragHandler.d.ts +1 -1
  506. package/src/engine/animation/curve/editor/DragHandler.d.ts.map +1 -1
  507. package/src/engine/animation/curve/editor/DragHandler.js +2 -2
  508. package/src/engine/animation/curve/editor/OperationRouter.d.ts +1 -1
  509. package/src/engine/animation/curve/editor/OperationRouter.d.ts.map +1 -1
  510. package/src/engine/animation/curve/editor/OperationRouter.js +2 -2
  511. package/src/engine/animation/keyed2/AnimationTrack.d.ts +10 -10
  512. package/src/engine/animation/keyed2/AnimationTrack.d.ts.map +1 -1
  513. package/src/engine/animation/keyed2/AnimationTrack.js +27 -27
  514. package/src/engine/animation/keyed2/AnimationTrackPlayback.d.ts +4 -4
  515. package/src/engine/animation/keyed2/AnimationTrackPlayback.d.ts.map +1 -1
  516. package/src/engine/animation/keyed2/AnimationTrackPlayback.js +6 -9
  517. package/src/engine/asset/Asset.d.ts +10 -10
  518. package/src/engine/asset/Asset.d.ts.map +1 -1
  519. package/src/engine/asset/Asset.js +13 -14
  520. package/src/engine/asset/AssetRequest.d.ts +14 -14
  521. package/src/engine/asset/AssetRequest.d.ts.map +1 -1
  522. package/src/engine/asset/AssetRequest.js +18 -18
  523. package/src/engine/asset/PendingAsset.d.ts +5 -5
  524. package/src/engine/asset/PendingAsset.d.ts.map +1 -1
  525. package/src/engine/asset/PendingAsset.js +108 -108
  526. package/src/engine/asset/loaders/GLTFAssetLoader.d.ts +2 -2
  527. package/src/engine/asset/loaders/GLTFAssetLoader.d.ts.map +1 -1
  528. package/src/engine/asset/loaders/GLTFAssetLoader.js +16 -18
  529. package/src/engine/asset/loaders/JavascriptAssetLoader.d.ts.map +1 -1
  530. package/src/engine/asset/loaders/JavascriptAssetLoader.js +30 -31
  531. package/src/engine/asset/loaders/gltf/extensions/MSFT_texture_dds.d.ts.map +1 -1
  532. package/src/engine/asset/loaders/gltf/extensions/MSFT_texture_dds.js +2 -2
  533. package/src/engine/asset/loaders/material/StaticMaterialCache.d.ts.map +1 -1
  534. package/src/engine/asset/loaders/material/StaticMaterialCache.js +9 -12
  535. package/src/engine/control/StatefulController.d.ts +4 -4
  536. package/src/engine/control/StatefulController.d.ts.map +1 -1
  537. package/src/engine/control/StatefulController.js +6 -6
  538. package/src/engine/control/first-person/FirstPersonPlayerController.d.ts.map +1 -1
  539. package/src/engine/control/first-person/FirstPersonPlayerController.js +31 -33
  540. package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts.map +1 -1
  541. package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.js +2052 -2028
  542. package/src/engine/control/first-person/abilities/Ability.d.ts.map +1 -1
  543. package/src/engine/control/first-person/abilities/Ability.js +117 -119
  544. package/src/engine/control/first-person/abilities/AbilitySet.d.ts.map +1 -1
  545. package/src/engine/control/first-person/abilities/AbilitySet.js +183 -185
  546. package/src/engine/control/first-person/abilities/LedgeGrab.d.ts.map +1 -1
  547. package/src/engine/control/first-person/abilities/LedgeGrab.js +404 -405
  548. package/src/engine/control/first-person/abilities/Mantle.d.ts.map +1 -1
  549. package/src/engine/control/first-person/abilities/Mantle.js +24 -23
  550. package/src/engine/control/first-person/abilities/ScrambleUp.d.ts.map +1 -1
  551. package/src/engine/control/first-person/abilities/ScrambleUp.js +181 -182
  552. package/src/engine/control/first-person/abilities/Slide.d.ts.map +1 -1
  553. package/src/engine/control/first-person/abilities/Slide.js +164 -166
  554. package/src/engine/control/first-person/abilities/WallJump.d.ts.map +1 -1
  555. package/src/engine/control/first-person/abilities/WallJump.js +136 -139
  556. package/src/engine/control/first-person/abilities/WallRun.d.ts.map +1 -1
  557. package/src/engine/control/first-person/abilities/WallRun.js +7 -9
  558. package/src/engine/control/first-person/collision/KinematicMover.d.ts +7 -13
  559. package/src/engine/control/first-person/collision/KinematicMover.d.ts.map +1 -1
  560. package/src/engine/control/first-person/collision/KinematicMover.js +11 -10
  561. package/src/engine/control/first-person/composer/EyeOffsetStack.d.ts.map +1 -1
  562. package/src/engine/control/first-person/composer/EyeOffsetStack.js +58 -60
  563. package/src/engine/control/first-person/mastery/BreathRhythmEvaluator.d.ts +2 -2
  564. package/src/engine/control/first-person/mastery/BreathRhythmEvaluator.d.ts.map +1 -1
  565. package/src/engine/control/first-person/mastery/BreathRhythmEvaluator.js +133 -133
  566. package/src/engine/control/first-person/mastery/FootAsymmetryTurnEvaluator.d.ts.map +1 -1
  567. package/src/engine/control/first-person/mastery/FootAsymmetryTurnEvaluator.js +106 -109
  568. package/src/engine/control/first-person/mastery/MasteryEvaluator.d.ts.map +1 -1
  569. package/src/engine/control/first-person/mastery/MasteryEvaluator.js +43 -45
  570. package/src/engine/control/first-person/mastery/MasteryScore.d.ts +6 -6
  571. package/src/engine/control/first-person/mastery/MasteryScore.d.ts.map +1 -1
  572. package/src/engine/control/first-person/mastery/MasteryScore.js +100 -100
  573. package/src/engine/control/first-person/mastery/MasterySet.d.ts.map +1 -1
  574. package/src/engine/control/first-person/mastery/MasterySet.js +84 -86
  575. package/src/engine/control/first-person/mastery/SlideInitiationTimingEvaluator.d.ts.map +1 -1
  576. package/src/engine/control/first-person/mastery/SlideInitiationTimingEvaluator.js +80 -83
  577. package/src/engine/control/first-person/mastery/StrideTimingJumpEvaluator.d.ts.map +1 -1
  578. package/src/engine/control/first-person/mastery/StrideTimingJumpEvaluator.js +106 -109
  579. package/src/engine/control/first-person/sensors/FirstPersonSensors.d.ts.map +1 -1
  580. package/src/engine/control/first-person/sensors/FirstPersonSensors.js +45 -40
  581. package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.d.ts.map +1 -1
  582. package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.js +35 -39
  583. package/src/engine/development/performance/monitor/PeriodicConsolePrinter.d.ts +1 -1
  584. package/src/engine/development/performance/monitor/PeriodicConsolePrinter.d.ts.map +1 -1
  585. package/src/engine/development/performance/monitor/PeriodicConsolePrinter.js +2 -2
  586. package/src/engine/ecs/ASYNC_SYSTEMS_PROPOSAL.md +531 -0
  587. package/src/engine/ecs/EntityManager.d.ts +16 -0
  588. package/src/engine/ecs/EntityManager.d.ts.map +1 -1
  589. package/src/engine/ecs/EntityManager.js +81 -0
  590. package/src/engine/ecs/animation/Animation.d.ts.map +1 -1
  591. package/src/engine/ecs/animation/Animation.js +8 -8
  592. package/src/engine/ecs/async/SystemWorkerHost.d.ts +98 -0
  593. package/src/engine/ecs/async/SystemWorkerHost.d.ts.map +1 -0
  594. package/src/engine/ecs/async/SystemWorkerHost.js +329 -0
  595. package/src/engine/ecs/async/SystemWorkerLoopback.d.ts +80 -0
  596. package/src/engine/ecs/async/SystemWorkerLoopback.d.ts.map +1 -0
  597. package/src/engine/ecs/async/SystemWorkerLoopback.js +143 -0
  598. package/src/engine/ecs/async/WORKER_SYSTEM_PLAN.md +246 -0
  599. package/src/engine/ecs/async/WorkerSystem.d.ts +173 -0
  600. package/src/engine/ecs/async/WorkerSystem.d.ts.map +1 -0
  601. package/src/engine/ecs/async/WorkerSystem.js +702 -0
  602. package/src/engine/ecs/async/WorkerSystemProtocol.d.ts +62 -0
  603. package/src/engine/ecs/async/WorkerSystemProtocol.d.ts.map +1 -0
  604. package/src/engine/ecs/async/WorkerSystemProtocol.js +150 -0
  605. package/src/engine/ecs/binding/EntityProxyScope.d.ts.map +1 -1
  606. package/src/engine/ecs/binding/EntityProxyScope.js +11 -12
  607. package/src/engine/ecs/components/PropertySet.d.ts.map +1 -1
  608. package/src/engine/ecs/components/PropertySet.js +2 -2
  609. package/src/engine/ecs/components/TagSerializationUpgrader_0_1.d.ts.map +1 -1
  610. package/src/engine/ecs/components/TagSerializationUpgrader_0_1.js +2 -6
  611. package/src/engine/ecs/components/Timer.d.ts +7 -7
  612. package/src/engine/ecs/components/Timer.d.ts.map +1 -1
  613. package/src/engine/ecs/components/Timer.js +18 -18
  614. package/src/engine/ecs/dynamic_actions/DataScope.d.ts.map +1 -1
  615. package/src/engine/ecs/dynamic_actions/DataScope.js +6 -8
  616. package/src/engine/ecs/evaluation/PointFitnessBinary.d.ts.map +1 -1
  617. package/src/engine/ecs/evaluation/PointFitnessBinary.js +10 -13
  618. package/src/engine/ecs/evaluation/PointFitnessConstant.d.ts.map +1 -1
  619. package/src/engine/ecs/evaluation/PointFitnessConstant.js +5 -9
  620. package/src/engine/ecs/evaluation/world/ReadTerrainLayerWeightPointFitness.d.ts.map +1 -1
  621. package/src/engine/ecs/evaluation/world/ReadTerrainLayerWeightPointFitness.js +5 -9
  622. package/src/engine/ecs/fow/FogOfWarRevealerSystem.d.ts.map +1 -1
  623. package/src/engine/ecs/fow/FogOfWarRevealerSystem.js +6 -8
  624. package/src/engine/ecs/fow/FogOfWarSystem.d.ts +2 -2
  625. package/src/engine/ecs/fow/FogOfWarSystem.d.ts.map +1 -1
  626. package/src/engine/ecs/fow/FogOfWarSystem.js +5 -6
  627. package/src/engine/ecs/fow/FogOfWarVisibilityPredicate.d.ts.map +1 -1
  628. package/src/engine/ecs/fow/FogOfWarVisibilityPredicate.js +11 -14
  629. package/src/engine/ecs/fow/serialization/FogOfWarSerializationUpdater_0_1.d.ts.map +1 -1
  630. package/src/engine/ecs/fow/serialization/FogOfWarSerializationUpdater_0_1.js +2 -6
  631. package/src/engine/ecs/gui/position/ViewportPositionSystem.d.ts.map +1 -1
  632. package/src/engine/ecs/gui/position/ViewportPositionSystem.js +5 -6
  633. package/src/engine/ecs/gui/view/LocalizedLabelViewEntity.d.ts.map +1 -1
  634. package/src/engine/ecs/gui/view/LocalizedLabelViewEntity.js +2 -2
  635. package/src/engine/ecs/parent/ChildEntities.d.ts.map +1 -1
  636. package/src/engine/ecs/parent/ChildEntities.js +6 -8
  637. package/src/engine/ecs/parent/FaceEditor.d.ts.map +1 -1
  638. package/src/engine/ecs/parent/FaceEditor.js +42 -41
  639. package/src/engine/ecs/parent/ParentEntity.d.ts.map +1 -1
  640. package/src/engine/ecs/parent/ParentEntity.js +4 -9
  641. package/src/engine/ecs/parent/ParentEntitySystem.d.ts.map +1 -1
  642. package/src/engine/ecs/parent/ParentEntitySystem.js +2 -2
  643. package/src/engine/ecs/sockets/AttachmentSocket.d.ts.map +1 -1
  644. package/src/engine/ecs/sockets/AttachmentSocket.js +12 -14
  645. package/src/engine/ecs/sockets/AttachmentSockets.d.ts.map +1 -1
  646. package/src/engine/ecs/sockets/AttachmentSockets.js +5 -7
  647. package/src/engine/ecs/sockets/BoneAttachmentSocket.d.ts.map +1 -1
  648. package/src/engine/ecs/sockets/BoneAttachmentSocket.js +1 -5
  649. package/src/engine/ecs/speaker/VoiceSystem.d.ts +5 -5
  650. package/src/engine/ecs/speaker/VoiceSystem.d.ts.map +1 -1
  651. package/src/engine/ecs/speaker/VoiceSystem.js +42 -45
  652. package/src/engine/ecs/storage/binary/object/BinaryObjectSerializationAdapter.d.ts.map +1 -1
  653. package/src/engine/ecs/storage/binary/object/BinaryObjectSerializationAdapter.js +17 -19
  654. package/src/engine/ecs/storage/populateEngineSerializationRegistry.d.ts +11 -0
  655. package/src/engine/ecs/storage/populateEngineSerializationRegistry.d.ts.map +1 -0
  656. package/src/engine/ecs/storage/populateEngineSerializationRegistry.js +260 -0
  657. package/src/engine/ecs/system/AbstractContextSystem.d.ts +8 -8
  658. package/src/engine/ecs/system/AbstractContextSystem.d.ts.map +1 -1
  659. package/src/engine/ecs/system/AbstractContextSystem.js +14 -14
  660. package/src/engine/ecs/systems/AnimationSystem.d.ts.map +1 -1
  661. package/src/engine/ecs/systems/AnimationSystem.js +2 -2
  662. package/src/engine/ecs/systems/ScriptSystem.d.ts.map +1 -1
  663. package/src/engine/ecs/systems/ScriptSystem.js +3 -6
  664. package/src/engine/ecs/terrain/ecs/Terrain.d.ts +27 -27
  665. package/src/engine/ecs/terrain/ecs/Terrain.d.ts.map +1 -1
  666. package/src/engine/ecs/terrain/ecs/Terrain.js +35 -38
  667. package/src/engine/ecs/terrain/ecs/layers/TerrainLayers.d.ts.map +1 -1
  668. package/src/engine/ecs/terrain/ecs/layers/TerrainLayers.js +68 -31
  669. package/src/engine/ecs/terrain/ecs/makeTerrainWorkerProxy.d.ts.map +1 -1
  670. package/src/engine/ecs/terrain/ecs/makeTerrainWorkerProxy.js +4 -2
  671. package/src/engine/ecs/terrain/ecs/splat/SplatMapping.d.ts +5 -5
  672. package/src/engine/ecs/terrain/ecs/splat/SplatMapping.d.ts.map +1 -1
  673. package/src/engine/ecs/terrain/ecs/splat/SplatMapping.js +6 -7
  674. package/src/engine/ecs/terrain/overlay/TerrainOverlay.d.ts +9 -9
  675. package/src/engine/ecs/terrain/overlay/TerrainOverlay.d.ts.map +1 -1
  676. package/src/engine/ecs/terrain/overlay/TerrainOverlay.js +13 -12
  677. package/src/engine/ecs/terrain/serialization/TerrainSerializationUpgrader_0_1.d.ts.map +1 -1
  678. package/src/engine/ecs/terrain/serialization/TerrainSerializationUpgrader_0_1.js +2 -6
  679. package/src/engine/ecs/terrain/serialization/TerrainSerializationUpgrader_1_2.d.ts.map +1 -1
  680. package/src/engine/ecs/terrain/serialization/TerrainSerializationUpgrader_1_2.js +2 -6
  681. package/src/engine/ecs/terrain/tiles/TerrainTileManager.d.ts +44 -3
  682. package/src/engine/ecs/terrain/tiles/TerrainTileManager.d.ts.map +1 -1
  683. package/src/engine/ecs/terrain/tiles/TerrainTileManager.js +81 -17
  684. package/src/engine/ecs/terrain/util/obtainTerrain.d.ts.map +1 -1
  685. package/src/engine/ecs/terrain/util/obtainTerrain.js +2 -0
  686. package/src/engine/ecs/tooltip/TooltipComponentSystem.d.ts +20 -20
  687. package/src/engine/ecs/tooltip/TooltipComponentSystem.d.ts.map +1 -1
  688. package/src/engine/ecs/tooltip/TooltipComponentSystem.js +36 -38
  689. package/src/engine/ecs/transform/TransformSerializationUpgrader_0_1.d.ts.map +1 -1
  690. package/src/engine/ecs/transform/TransformSerializationUpgrader_0_1.js +2 -6
  691. package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.d.ts.map +1 -1
  692. package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.js +34 -41
  693. package/src/engine/graphics/camera/CameraShake.d.ts.map +1 -1
  694. package/src/engine/graphics/camera/CameraShake.js +12 -16
  695. package/src/engine/graphics/camera/CameraShakeBehavior.d.ts +2 -2
  696. package/src/engine/graphics/camera/CameraShakeBehavior.d.ts.map +1 -1
  697. package/src/engine/graphics/camera/CameraShakeBehavior.js +3 -4
  698. package/src/engine/graphics/camera/CameraShakeTraumaBehavior.d.ts +2 -2
  699. package/src/engine/graphics/camera/CameraShakeTraumaBehavior.d.ts.map +1 -1
  700. package/src/engine/graphics/camera/CameraShakeTraumaBehavior.js +3 -5
  701. package/src/engine/graphics/composit/CompositLayer.d.ts.map +1 -1
  702. package/src/engine/graphics/composit/CompositLayer.js +6 -6
  703. package/src/engine/graphics/composit/LayerCompositer.d.ts.map +1 -1
  704. package/src/engine/graphics/composit/LayerCompositer.js +17 -19
  705. package/src/engine/graphics/debug/VisualSymbolLine.d.ts.map +1 -1
  706. package/src/engine/graphics/debug/VisualSymbolLine.js +11 -13
  707. package/src/engine/graphics/ecs/animation/AnimationControllerSystem.d.ts.map +1 -1
  708. package/src/engine/graphics/ecs/animation/AnimationControllerSystem.js +2 -5
  709. package/src/engine/graphics/ecs/animation/AnimationRule.d.ts +2 -2
  710. package/src/engine/graphics/ecs/animation/AnimationRule.d.ts.map +1 -1
  711. package/src/engine/graphics/ecs/animation/AnimationRule.js +3 -2
  712. package/src/engine/graphics/ecs/animation/animator/AnimationClip.d.ts.map +1 -1
  713. package/src/engine/graphics/ecs/animation/animator/AnimationClip.js +20 -22
  714. package/src/engine/graphics/ecs/animation/animator/AnimationClipDefinition.d.ts.map +1 -1
  715. package/src/engine/graphics/ecs/animation/animator/AnimationClipDefinition.js +23 -25
  716. package/src/engine/graphics/ecs/animation/animator/AnimationGraphSystem.d.ts +4 -4
  717. package/src/engine/graphics/ecs/animation/animator/AnimationGraphSystem.d.ts.map +1 -1
  718. package/src/engine/graphics/ecs/animation/animator/AnimationGraphSystem.js +32 -33
  719. package/src/engine/graphics/ecs/animation/animator/AnimationNotification.d.ts.map +1 -1
  720. package/src/engine/graphics/ecs/animation/animator/AnimationNotification.js +10 -12
  721. package/src/engine/graphics/ecs/animation/animator/AnimationNotificationDefinition.d.ts.map +1 -1
  722. package/src/engine/graphics/ecs/animation/animator/AnimationNotificationDefinition.js +10 -12
  723. package/src/engine/graphics/ecs/animation/animator/blending/BlendSpace.d.ts +1 -1
  724. package/src/engine/graphics/ecs/animation/animator/blending/BlendSpace.d.ts.map +1 -1
  725. package/src/engine/graphics/ecs/animation/animator/blending/BlendSpace.js +10 -12
  726. package/src/engine/graphics/ecs/animation/animator/blending/BlendSpaceDefinition.d.ts.map +1 -1
  727. package/src/engine/graphics/ecs/animation/animator/blending/BlendSpaceDefinition.js +5 -7
  728. package/src/engine/graphics/ecs/animation/animator/blending/BlendSpacePoint.d.ts.map +1 -1
  729. package/src/engine/graphics/ecs/animation/animator/blending/BlendSpacePoint.js +10 -12
  730. package/src/engine/graphics/ecs/animation/animator/blending/BlendState.d.ts.map +1 -1
  731. package/src/engine/graphics/ecs/animation/animator/blending/BlendState.js +5 -7
  732. package/src/engine/graphics/ecs/animation/animator/blending/BlendStateDatabase.d.ts.map +1 -1
  733. package/src/engine/graphics/ecs/animation/animator/blending/BlendStateDatabase.js +18 -21
  734. package/src/engine/graphics/ecs/animation/animator/graph/AnimationGraph.d.ts.map +1 -1
  735. package/src/engine/graphics/ecs/animation/animator/graph/AnimationGraph.js +75 -77
  736. package/src/engine/graphics/ecs/animation/animator/graph/AnimationState.d.ts.map +1 -1
  737. package/src/engine/graphics/ecs/animation/animator/graph/AnimationState.js +35 -38
  738. package/src/engine/graphics/ecs/animation/animator/graph/AnimationTransition.d.ts.map +1 -1
  739. package/src/engine/graphics/ecs/animation/animator/graph/AnimationTransition.js +30 -32
  740. package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationStateDefinition.d.ts.map +1 -1
  741. package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationStateDefinition.js +31 -33
  742. package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationTransitionDefinition.d.ts.map +1 -1
  743. package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationTransitionDefinition.js +20 -23
  744. package/src/engine/graphics/ecs/camera/Camera.d.ts.map +1 -1
  745. package/src/engine/graphics/ecs/camera/Camera.js +45 -47
  746. package/src/engine/graphics/ecs/camera/CameraSystem.d.ts +1 -1
  747. package/src/engine/graphics/ecs/camera/CameraSystem.d.ts.map +1 -1
  748. package/src/engine/graphics/ecs/camera/CameraSystem.js +8 -9
  749. package/src/engine/graphics/ecs/camera/serialization/CameraSerializationUpgrader_0_1.d.ts.map +1 -1
  750. package/src/engine/graphics/ecs/camera/serialization/CameraSerializationUpgrader_0_1.js +37 -41
  751. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.d.ts.map +1 -1
  752. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.js +8 -10
  753. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSerializationUpgrader_0_1.d.ts.map +1 -1
  754. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSerializationUpgrader_0_1.js +2 -6
  755. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.d.ts.map +1 -1
  756. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.js +5 -10
  757. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraLanderSystem.d.ts.map +1 -1
  758. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraLanderSystem.js +20 -25
  759. package/src/engine/graphics/ecs/decal/v2/FPDecalSystem.d.ts.map +1 -1
  760. package/src/engine/graphics/ecs/decal/v2/FPDecalSystem.js +2 -2
  761. package/src/engine/graphics/ecs/highlight/HighlightSerializationUpgrader_0_1.d.ts.map +1 -1
  762. package/src/engine/graphics/ecs/highlight/HighlightSerializationUpgrader_0_1.js +2 -6
  763. package/src/engine/graphics/ecs/highlight/plugin/OutlineRenderPlugin.d.ts.map +1 -1
  764. package/src/engine/graphics/ecs/highlight/plugin/OutlineRenderPlugin.js +23 -25
  765. package/src/engine/graphics/ecs/highlight/renderer/HighlightRenderElement.d.ts.map +1 -1
  766. package/src/engine/graphics/ecs/highlight/renderer/HighlightRenderElement.js +13 -16
  767. package/src/engine/graphics/ecs/highlight/renderer/HighlightRenderGroup.d.ts.map +1 -1
  768. package/src/engine/graphics/ecs/highlight/renderer/HighlightRenderGroup.js +5 -7
  769. package/src/engine/graphics/ecs/highlight/renderer/OutlineRenderer.d.ts +12 -12
  770. package/src/engine/graphics/ecs/highlight/renderer/OutlineRenderer.d.ts.map +1 -1
  771. package/src/engine/graphics/ecs/highlight/renderer/OutlineRenderer.js +54 -57
  772. package/src/engine/graphics/ecs/highlight/system/HighlightSystemBase.js +205 -205
  773. package/src/engine/graphics/ecs/light/Light.d.ts.map +1 -1
  774. package/src/engine/graphics/ecs/light/Light.js +59 -65
  775. package/src/engine/graphics/ecs/light/LightSystem.d.ts +16 -16
  776. package/src/engine/graphics/ecs/light/LightSystem.d.ts.map +1 -1
  777. package/src/engine/graphics/ecs/light/LightSystem.js +23 -25
  778. package/src/engine/graphics/ecs/light/binding/LightBinding.d.ts.map +1 -1
  779. package/src/engine/graphics/ecs/light/binding/LightBinding.js +13 -14
  780. package/src/engine/graphics/ecs/light/binding/fp/FPLightBinding.d.ts.map +1 -1
  781. package/src/engine/graphics/ecs/light/binding/fp/FPLightBinding.js +11 -15
  782. package/src/engine/graphics/ecs/light/shadow/ShadowMap.d.ts.map +1 -1
  783. package/src/engine/graphics/ecs/light/shadow/ShadowMap.js +5 -9
  784. package/src/engine/graphics/ecs/light/three/ThreeLightCache.d.ts.map +1 -1
  785. package/src/engine/graphics/ecs/light/three/ThreeLightCache.js +20 -22
  786. package/src/engine/graphics/ecs/mesh/Mesh.d.ts.map +1 -1
  787. package/src/engine/graphics/ecs/mesh/Mesh.js +35 -37
  788. package/src/engine/graphics/ecs/mesh/MeshSystem.d.ts +15 -15
  789. package/src/engine/graphics/ecs/mesh/MeshSystem.d.ts.map +1 -1
  790. package/src/engine/graphics/ecs/mesh/MeshSystem.js +21 -22
  791. package/src/engine/graphics/ecs/mesh/skeleton/BoneMapping.d.ts.map +1 -1
  792. package/src/engine/graphics/ecs/mesh/skeleton/BoneMapping.js +1 -3
  793. package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.d.ts.map +1 -1
  794. package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.js +51 -52
  795. package/src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.d.ts +6 -6
  796. package/src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.d.ts.map +1 -1
  797. package/src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.js +37 -37
  798. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshAnimationControllerSystem.d.ts +1 -1
  799. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshAnimationControllerSystem.d.ts.map +1 -1
  800. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshAnimationControllerSystem.js +9 -11
  801. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshHighlightSystem.d.ts.map +1 -1
  802. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshHighlightSystem.js +1 -5
  803. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshSystem.d.ts +10 -10
  804. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshSystem.d.ts.map +1 -1
  805. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshSystem.js +22 -22
  806. package/src/engine/graphics/ecs/mesh-v2/render/SGThreeObjectCache.d.ts.map +1 -1
  807. package/src/engine/graphics/ecs/mesh-v2/render/SGThreeObjectCache.js +6 -8
  808. package/src/engine/graphics/ecs/mesh-v2/render/ShadedGeometryRendererContext.d.ts.map +1 -1
  809. package/src/engine/graphics/ecs/mesh-v2/render/ShadedGeometryRendererContext.js +8 -10
  810. package/src/engine/graphics/ecs/mesh-v2/render/adapters/AbstractRenderAdapter.d.ts.map +1 -1
  811. package/src/engine/graphics/ecs/mesh-v2/render/adapters/AbstractRenderAdapter.js +12 -15
  812. package/src/engine/graphics/ecs/mesh-v2/render/adapters/GenericRendererAdapter.d.ts.map +1 -1
  813. package/src/engine/graphics/ecs/mesh-v2/render/adapters/GenericRendererAdapter.js +6 -10
  814. package/src/engine/graphics/ecs/mesh-v2/render/optimization/RuntimeDrawMethodOptimizer.d.ts.map +1 -1
  815. package/src/engine/graphics/ecs/mesh-v2/render/optimization/RuntimeDrawMethodOptimizer.js +12 -15
  816. package/src/engine/graphics/ecs/path/PathDisplay.d.ts.map +1 -1
  817. package/src/engine/graphics/ecs/path/PathDisplay.js +5 -7
  818. package/src/engine/graphics/ecs/path/PathDisplaySpec.d.ts.map +1 -1
  819. package/src/engine/graphics/ecs/path/PathDisplaySpec.js +10 -12
  820. package/src/engine/graphics/ecs/path/PathDisplaySystem.d.ts +6 -6
  821. package/src/engine/graphics/ecs/path/PathDisplaySystem.d.ts.map +1 -1
  822. package/src/engine/graphics/ecs/path/PathDisplaySystem.js +12 -17
  823. package/src/engine/graphics/ecs/path/entity/EntityPath.d.ts.map +1 -1
  824. package/src/engine/graphics/ecs/path/entity/EntityPath.js +15 -17
  825. package/src/engine/graphics/ecs/path/entity/EntityPathMarker.d.ts.map +1 -1
  826. package/src/engine/graphics/ecs/path/entity/EntityPathMarker.js +15 -17
  827. package/src/engine/graphics/ecs/path/entity/EntityPathMarkerDefinition.d.ts.map +1 -1
  828. package/src/engine/graphics/ecs/path/entity/EntityPathMarkerDefinition.js +15 -17
  829. package/src/engine/graphics/ecs/path/entity/EntityPathStyle.d.ts.map +1 -1
  830. package/src/engine/graphics/ecs/path/entity/EntityPathStyle.js +20 -23
  831. package/src/engine/graphics/ecs/path/highlight/PathDisplayHighlightSystem.d.ts.map +1 -1
  832. package/src/engine/graphics/ecs/path/highlight/PathDisplayHighlightSystem.js +1 -5
  833. package/src/engine/graphics/ecs/path/ribbon/RibbonPathBuilder.d.ts.map +1 -1
  834. package/src/engine/graphics/ecs/path/ribbon/RibbonPathBuilder.js +15 -17
  835. package/src/engine/graphics/ecs/path/ribbon/RibbonPathStyle.d.ts.map +1 -1
  836. package/src/engine/graphics/ecs/path/ribbon/RibbonPathStyle.js +15 -17
  837. package/src/engine/graphics/ecs/path/tube/MatcapMaterialDefinition.d.ts.map +1 -1
  838. package/src/engine/graphics/ecs/path/tube/MatcapMaterialDefinition.js +5 -7
  839. package/src/engine/graphics/ecs/path/tube/StandardMaterialDefinition.d.ts.map +1 -1
  840. package/src/engine/graphics/ecs/path/tube/StandardMaterialDefinition.js +2 -4
  841. package/src/engine/graphics/ecs/path/tube/TubePathStyle.d.ts.map +1 -1
  842. package/src/engine/graphics/ecs/path/tube/TubePathStyle.js +84 -86
  843. package/src/engine/graphics/ecs/path/tube/build/StreamGeometryBuilder.d.ts.map +1 -1
  844. package/src/engine/graphics/ecs/path/tube/build/StreamGeometryBuilder.js +37 -36
  845. package/src/engine/graphics/ecs/path/tube/build/TubePathBuilder.d.ts.map +1 -1
  846. package/src/engine/graphics/ecs/path/tube/build/TubePathBuilder.js +23 -25
  847. package/src/engine/graphics/ecs/sprite/SpriteSystemPE.d.ts.map +1 -1
  848. package/src/engine/graphics/ecs/sprite/SpriteSystemPE.js +2 -3
  849. package/src/engine/graphics/ecs/trail2d/Trail2DSystem.d.ts +5 -5
  850. package/src/engine/graphics/ecs/trail2d/Trail2DSystem.d.ts.map +1 -1
  851. package/src/engine/graphics/ecs/trail2d/Trail2DSystem.js +6 -9
  852. package/src/engine/graphics/ecs/trail3d/Trail3DSystem.d.ts +4 -4
  853. package/src/engine/graphics/ecs/trail3d/Trail3DSystem.d.ts.map +1 -1
  854. package/src/engine/graphics/ecs/trail3d/Trail3DSystem.js +5 -5
  855. package/src/engine/graphics/ecs/water/WaterSerializationUpgrader_0_1.d.ts.map +1 -1
  856. package/src/engine/graphics/ecs/water/WaterSerializationUpgrader_0_1.js +2 -6
  857. package/src/engine/graphics/ecs/water/WaterSystem.d.ts +1 -1
  858. package/src/engine/graphics/ecs/water/WaterSystem.d.ts.map +1 -1
  859. package/src/engine/graphics/ecs/water/WaterSystem.js +13 -15
  860. package/src/engine/graphics/geometry/MikkT/MikkTSpace.d.ts.map +1 -1
  861. package/src/engine/graphics/geometry/MikkT/MikkTSpace.js +97 -95
  862. package/src/engine/graphics/geometry/MikkT/SSubGroup.d.ts.map +1 -1
  863. package/src/engine/graphics/geometry/MikkT/SSubGroup.js +10 -12
  864. package/src/engine/graphics/geometry/instancing/InstancedMeshGroup.d.ts.map +1 -1
  865. package/src/engine/graphics/geometry/instancing/InstancedMeshGroup.js +103 -110
  866. package/src/engine/graphics/geometry/optimization/geometry_optimize_uv_tension.d.ts +18 -3
  867. package/src/engine/graphics/geometry/optimization/geometry_optimize_uv_tension.d.ts.map +1 -1
  868. package/src/engine/graphics/geometry/optimization/geometry_optimize_uv_tension.js +135 -85
  869. package/src/engine/graphics/geometry/optimization/merge/merge_geometry_hierarchy.d.ts.map +1 -1
  870. package/src/engine/graphics/geometry/optimization/merge/merge_geometry_hierarchy.js +3 -5
  871. package/src/engine/graphics/geometry/ribbon/Quad.d.ts +2 -2
  872. package/src/engine/graphics/geometry/ribbon/Quad.d.ts.map +1 -1
  873. package/src/engine/graphics/geometry/ribbon/Quad.js +17 -17
  874. package/src/engine/graphics/material/manager/ManagedMaterial.d.ts +6 -6
  875. package/src/engine/graphics/material/manager/ManagedMaterial.d.ts.map +1 -1
  876. package/src/engine/graphics/material/manager/ManagedMaterial.js +20 -20
  877. package/src/engine/graphics/material/optimization/MaterialDescriptor.d.ts.map +1 -1
  878. package/src/engine/graphics/material/optimization/MaterialDescriptor.js +11 -14
  879. package/src/engine/graphics/material/optimization/MaterialOptimizationContext.d.ts.map +1 -1
  880. package/src/engine/graphics/material/optimization/MaterialOptimizationContext.js +20 -23
  881. package/src/engine/graphics/material/optimization/UvContext.d.ts.map +1 -1
  882. package/src/engine/graphics/material/optimization/UvContext.js +10 -12
  883. package/src/engine/graphics/particles/node-based/editor/ParticleSpecificationEditorView.d.ts.map +1 -1
  884. package/src/engine/graphics/particles/node-based/editor/ParticleSpecificationEditorView.js +23 -23
  885. package/src/engine/graphics/particles/node-based/rendering/AbstractParticleRenderer.d.ts.map +1 -1
  886. package/src/engine/graphics/particles/node-based/rendering/AbstractParticleRenderer.js +5 -7
  887. package/src/engine/graphics/particles/node-based/rendering/billboard/BillboardParticleRenderer.d.ts +11 -11
  888. package/src/engine/graphics/particles/node-based/rendering/billboard/BillboardParticleRenderer.d.ts.map +1 -1
  889. package/src/engine/graphics/particles/node-based/rendering/billboard/BillboardParticleRenderer.js +21 -23
  890. package/src/engine/graphics/particles/node-based/simulation/EmitterAttributeData.d.ts.map +1 -1
  891. package/src/engine/graphics/particles/node-based/simulation/EmitterAttributeData.js +17 -19
  892. package/src/engine/graphics/particles/node-based/simulation/GLDataBuffer.d.ts.map +1 -1
  893. package/src/engine/graphics/particles/node-based/simulation/GLDataBuffer.js +25 -27
  894. package/src/engine/graphics/particles/node-based/simulation/GLSLSimulationShader.d.ts.map +1 -1
  895. package/src/engine/graphics/particles/node-based/simulation/GLSLSimulationShader.js +12 -16
  896. package/src/engine/graphics/particles/node-based/simulation/TransformFeedback.d.ts.map +1 -1
  897. package/src/engine/graphics/particles/node-based/simulation/TransformFeedback.js +64 -67
  898. package/src/engine/graphics/particles/particular/engine/MovingBoundingBox.d.ts +3 -0
  899. package/src/engine/graphics/particles/particular/engine/MovingBoundingBox.d.ts.map +1 -1
  900. package/src/engine/graphics/particles/particular/engine/MovingBoundingBox.js +36 -39
  901. package/src/engine/graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationUpgrader_0_1.d.ts.map +1 -1
  902. package/src/engine/graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationUpgrader_0_1.js +2 -6
  903. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.d.ts.map +1 -1
  904. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.js +5 -7
  905. package/src/engine/graphics/particles/particular/engine/shader/ShaderManager.d.ts +10 -10
  906. package/src/engine/graphics/particles/particular/engine/shader/ShaderManager.d.ts.map +1 -1
  907. package/src/engine/graphics/particles/particular/engine/shader/ShaderManager.js +12 -12
  908. package/src/engine/graphics/particles/particular/engine/simulator/AbstractSimulationStep.d.ts.map +1 -1
  909. package/src/engine/graphics/particles/particular/engine/simulator/AbstractSimulationStep.js +35 -37
  910. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseVelocity.d.ts.map +1 -1
  911. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseVelocity.js +1 -5
  912. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepDefinition.d.ts.map +1 -1
  913. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepDefinition.js +11 -12
  914. package/src/engine/graphics/particles/particular/engine/utils/volume/AttributeValue.d.ts.map +1 -1
  915. package/src/engine/graphics/particles/particular/engine/utils/volume/AttributeValue.js +199 -201
  916. package/src/engine/graphics/particles/particular/engine/utils/volume/ParticleVolume.d.ts +11 -11
  917. package/src/engine/graphics/particles/particular/engine/utils/volume/ParticleVolume.d.ts.map +1 -1
  918. package/src/engine/graphics/particles/particular/engine/utils/volume/ParticleVolume.js +13 -13
  919. package/src/engine/graphics/particles/particular/group/ParticleGroup.d.ts +6 -6
  920. package/src/engine/graphics/particles/particular/group/ParticleGroup.d.ts.map +1 -1
  921. package/src/engine/graphics/particles/particular/group/ParticleGroup.js +33 -34
  922. package/src/engine/graphics/particles/particular/group/ParticleSpecification.d.ts.map +1 -1
  923. package/src/engine/graphics/particles/particular/group/ParticleSpecification.js +2 -8
  924. package/src/engine/graphics/render/Lines.d.ts.map +1 -1
  925. package/src/engine/graphics/render/Lines.js +2 -2
  926. package/src/engine/graphics/render/buffer/FrameBufferManager.d.ts.map +1 -1
  927. package/src/engine/graphics/render/buffer/FrameBufferManager.js +20 -22
  928. package/src/engine/graphics/render/buffer/simple-fx/DepthLimitedBlur.d.ts +2 -2
  929. package/src/engine/graphics/render/buffer/simple-fx/DepthLimitedBlur.d.ts.map +1 -1
  930. package/src/engine/graphics/render/buffer/simple-fx/DepthLimitedBlur.js +16 -19
  931. package/src/engine/graphics/render/buffer/simple-fx/SimplePostProcessEffect.d.ts.map +1 -1
  932. package/src/engine/graphics/render/buffer/simple-fx/SimplePostProcessEffect.js +5 -8
  933. package/src/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.d.ts +2 -2
  934. package/src/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.d.ts.map +1 -1
  935. package/src/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.js +37 -38
  936. package/src/engine/graphics/render/buffer/slot/ProgramSlotValue.d.ts +5 -5
  937. package/src/engine/graphics/render/buffer/slot/ProgramSlotValue.d.ts.map +1 -1
  938. package/src/engine/graphics/render/buffer/slot/ProgramSlotValue.js +8 -6
  939. package/src/engine/graphics/render/buffer/slot/ProgramValueSlotDefinition.d.ts +5 -5
  940. package/src/engine/graphics/render/buffer/slot/ProgramValueSlotDefinition.d.ts.map +1 -1
  941. package/src/engine/graphics/render/buffer/slot/ProgramValueSlotDefinition.js +6 -6
  942. package/src/engine/graphics/render/buffer/slot/parameter/ProgramValueSlotParameterSet.d.ts.map +1 -1
  943. package/src/engine/graphics/render/buffer/slot/parameter/ProgramValueSlotParameterSet.js +11 -13
  944. package/src/engine/graphics/render/forward_plus/LightManager.d.ts +6 -6
  945. package/src/engine/graphics/render/forward_plus/LightManager.d.ts.map +1 -1
  946. package/src/engine/graphics/render/forward_plus/LightManager.js +15 -18
  947. package/src/engine/graphics/render/forward_plus/LightRenderMetadata.d.ts +5 -5
  948. package/src/engine/graphics/render/forward_plus/LightRenderMetadata.d.ts.map +1 -1
  949. package/src/engine/graphics/render/forward_plus/LightRenderMetadata.js +7 -8
  950. package/src/engine/graphics/render/forward_plus/model/Decal.d.ts +1 -1
  951. package/src/engine/graphics/render/forward_plus/model/Decal.d.ts.map +1 -1
  952. package/src/engine/graphics/render/forward_plus/model/Decal.js +22 -22
  953. package/src/engine/graphics/render/gizmo/GizmoShapeRenderingInterface.d.ts.map +1 -1
  954. package/src/engine/graphics/render/gizmo/GizmoShapeRenderingInterface.js +8 -8
  955. package/src/engine/graphics/render/layers/RenderLayerManager.d.ts.map +1 -1
  956. package/src/engine/graphics/render/layers/RenderLayerManager.js +10 -12
  957. package/src/engine/graphics/render/layers/RenderLayerManagerState.d.ts.map +1 -1
  958. package/src/engine/graphics/render/layers/RenderLayerManagerState.js +5 -9
  959. package/src/engine/graphics/render/layers/RenderLayerState.d.ts.map +1 -1
  960. package/src/engine/graphics/render/layers/RenderLayerState.js +5 -7
  961. package/src/engine/graphics/render/utils/ThreeBypassRenderer.d.ts.map +1 -1
  962. package/src/engine/graphics/render/utils/ThreeBypassRenderer.js +6 -9
  963. package/src/engine/graphics/render/view/CameraView.d.ts.map +1 -1
  964. package/src/engine/graphics/render/view/CameraView.js +56 -59
  965. package/src/engine/graphics/render/view/CameraViewManager.d.ts.map +1 -1
  966. package/src/engine/graphics/render/view/CameraViewManager.js +18 -20
  967. package/src/engine/graphics/render/visibility/IncrementalDeltaSet.d.ts +6 -6
  968. package/src/engine/graphics/render/visibility/IncrementalDeltaSet.d.ts.map +1 -1
  969. package/src/engine/graphics/render/visibility/IncrementalDeltaSet.js +40 -39
  970. package/src/engine/graphics/render/visibility/VisibilityComputer.d.ts.map +1 -1
  971. package/src/engine/graphics/render/visibility/VisibilityComputer.js +19 -22
  972. package/src/engine/graphics/render/visibility/VisibilityFilter.d.ts +5 -5
  973. package/src/engine/graphics/render/visibility/VisibilityFilter.d.ts.map +1 -1
  974. package/src/engine/graphics/render/visibility/VisibilityFilter.js +6 -6
  975. package/src/engine/graphics/render/visibility/hiz/buffer/HierarchicalZBuffer.d.ts.map +1 -1
  976. package/src/engine/graphics/render/visibility/hiz/buffer/HierarchicalZBuffer.js +40 -43
  977. package/src/engine/graphics/render/visibility/hiz/query/BatchOcclusionQuery.d.ts +1 -1
  978. package/src/engine/graphics/render/visibility/hiz/query/BatchOcclusionQuery.d.ts.map +1 -1
  979. package/src/engine/graphics/render/visibility/hiz/query/BatchOcclusionQuery.js +2 -2
  980. package/src/engine/graphics/sh3/lpv/WebGLCubeProbeRenderer.d.ts.map +1 -1
  981. package/src/engine/graphics/sh3/lpv/WebGLCubeProbeRenderer.js +7 -9
  982. package/src/engine/graphics/sh3/path_tracer/BufferedGeometryBVH.d.ts.map +1 -1
  983. package/src/engine/graphics/sh3/path_tracer/BufferedGeometryBVH.js +24 -28
  984. package/src/engine/graphics/shaders/TerrainShader.js +5 -18
  985. package/src/engine/graphics/shadows/ShadowMapRenderer.d.ts.map +1 -1
  986. package/src/engine/graphics/shadows/ShadowMapRenderer.js +11 -15
  987. package/src/engine/graphics/texture/AttributeDataTexture.d.ts +11 -11
  988. package/src/engine/graphics/texture/AttributeDataTexture.d.ts.map +1 -1
  989. package/src/engine/graphics/texture/AttributeDataTexture.js +14 -14
  990. package/src/engine/graphics/texture/TextureBackedMemoryRegion.d.ts +6 -6
  991. package/src/engine/graphics/texture/TextureBackedMemoryRegion.d.ts.map +1 -1
  992. package/src/engine/graphics/texture/TextureBackedMemoryRegion.js +33 -32
  993. package/src/engine/graphics/texture/atlas/AtlasLookupTexture.d.ts.map +1 -1
  994. package/src/engine/graphics/texture/atlas/AtlasLookupTexture.js +12 -12
  995. package/src/engine/graphics/texture/atlas/CachingTextureAtlas.d.ts.map +1 -1
  996. package/src/engine/graphics/texture/atlas/CachingTextureAtlas.js +17 -20
  997. package/src/engine/graphics/texture/atlas/ReferencedTextureAtlas.d.ts +1 -1
  998. package/src/engine/graphics/texture/atlas/ReferencedTextureAtlas.d.ts.map +1 -1
  999. package/src/engine/graphics/texture/atlas/ReferencedTextureAtlas.js +14 -14
  1000. package/src/engine/graphics/texture/atlas/TextureAtlas.d.ts +10 -10
  1001. package/src/engine/graphics/texture/atlas/TextureAtlas.d.ts.map +1 -1
  1002. package/src/engine/graphics/texture/atlas/TextureAtlas.js +13 -14
  1003. package/src/engine/graphics/texture/atlas/gpu/WebGLTextureAtlas.d.ts.map +1 -1
  1004. package/src/engine/graphics/texture/atlas/gpu/WebGLTextureAtlas.js +49 -49
  1005. package/src/engine/graphics/texture/sampler/Sampler2D.d.ts +5 -5
  1006. package/src/engine/graphics/texture/sampler/Sampler2D.d.ts.map +1 -1
  1007. package/src/engine/graphics/texture/sampler/Sampler2D.js +6 -6
  1008. package/src/engine/graphics/texture/sampler/sampler2d_linear_f16_to_srgb_u8.d.ts +16 -0
  1009. package/src/engine/graphics/texture/sampler/sampler2d_linear_f16_to_srgb_u8.d.ts.map +1 -0
  1010. package/src/engine/graphics/texture/sampler/sampler2d_linear_f16_to_srgb_u8.js +54 -0
  1011. package/src/engine/graphics/texture/sampler/sampler2d_srgb_u8_to_linear_f16.d.ts +22 -0
  1012. package/src/engine/graphics/texture/sampler/sampler2d_srgb_u8_to_linear_f16.d.ts.map +1 -0
  1013. package/src/engine/graphics/texture/sampler/sampler2d_srgb_u8_to_linear_f16.js +68 -0
  1014. package/src/engine/graphics/trail/tube/TubeX.d.ts +6 -6
  1015. package/src/engine/graphics/trail/tube/TubeX.d.ts.map +1 -1
  1016. package/src/engine/graphics/trail/tube/TubeX.js +3 -3
  1017. package/src/engine/graphics/trail/x/RibbonX.d.ts.map +1 -1
  1018. package/src/engine/graphics/trail/x/RibbonX.js +36 -39
  1019. package/src/engine/grid/area/AreaTrigger.d.ts +1 -1
  1020. package/src/engine/grid/area/AreaTrigger.d.ts.map +1 -1
  1021. package/src/engine/grid/area/AreaTrigger.js +8 -7
  1022. package/src/engine/grid/area/TriggerAction.d.ts.map +1 -1
  1023. package/src/engine/grid/area/TriggerAction.js +2 -4
  1024. package/src/engine/grid/grid2transform/GridPosition2TransformSerializationUpgrader_0_1.d.ts.map +1 -1
  1025. package/src/engine/grid/grid2transform/GridPosition2TransformSerializationUpgrader_0_1.js +3 -6
  1026. package/src/engine/grid/grid2transform/GridPosition2TransformSystem.d.ts +3 -3
  1027. package/src/engine/grid/grid2transform/GridPosition2TransformSystem.d.ts.map +1 -1
  1028. package/src/engine/grid/grid2transform/GridPosition2TransformSystem.js +6 -9
  1029. package/src/engine/grid/position/GridPositionSerializationUpdater_0_1.d.ts.map +1 -1
  1030. package/src/engine/grid/position/GridPositionSerializationUpdater_0_1.js +2 -6
  1031. package/src/engine/grid/position/GridPositionSystem.d.ts.map +1 -1
  1032. package/src/engine/grid/position/GridPositionSystem.js +7 -11
  1033. package/src/engine/grid/transform2grid/Transform2GridPositionSystem.d.ts.map +1 -1
  1034. package/src/engine/grid/transform2grid/Transform2GridPositionSystem.js +32 -40
  1035. package/src/engine/input/devices/PointerDevice.d.ts +8 -0
  1036. package/src/engine/input/devices/PointerDevice.d.ts.map +1 -1
  1037. package/src/engine/input/devices/PointerDevice.js +10 -4
  1038. package/src/engine/input/ecs/systems/InputControllerSystem.d.ts.map +1 -1
  1039. package/src/engine/input/ecs/systems/InputControllerSystem.js +9 -13
  1040. package/src/engine/input/ecs/systems/InputSystem.d.ts +1 -1
  1041. package/src/engine/input/ecs/systems/InputSystem.d.ts.map +1 -1
  1042. package/src/engine/input/ecs/systems/InputSystem.js +8 -8
  1043. package/src/engine/intelligence/behavior/SelectorBehavior.d.ts.map +1 -1
  1044. package/src/engine/intelligence/behavior/SelectorBehavior.js +13 -17
  1045. package/src/engine/intelligence/behavior/composite/ParallelBehavior.d.ts +10 -10
  1046. package/src/engine/intelligence/behavior/composite/ParallelBehavior.d.ts.map +1 -1
  1047. package/src/engine/intelligence/behavior/composite/ParallelBehavior.js +12 -11
  1048. package/src/engine/intelligence/behavior/composite/ParallelBehaviorSerializationAdapter.d.ts.map +1 -1
  1049. package/src/engine/intelligence/behavior/composite/ParallelBehaviorSerializationAdapter.js +2 -6
  1050. package/src/engine/intelligence/behavior/composite/SequenceBehavior.d.ts.map +1 -1
  1051. package/src/engine/intelligence/behavior/composite/SequenceBehavior.js +19 -22
  1052. package/src/engine/intelligence/behavior/composite/SequenceBehaviorSerializationAdapter.d.ts.map +1 -1
  1053. package/src/engine/intelligence/behavior/composite/SequenceBehaviorSerializationAdapter.js +2 -6
  1054. package/src/engine/intelligence/behavior/decorator/AbstractDecoratorBehavior.d.ts.map +1 -1
  1055. package/src/engine/intelligence/behavior/decorator/AbstractDecoratorBehavior.js +6 -10
  1056. package/src/engine/intelligence/behavior/decorator/InvertStatusBehaviorSerializationAdapter.d.ts.map +1 -1
  1057. package/src/engine/intelligence/behavior/decorator/InvertStatusBehaviorSerializationAdapter.js +2 -6
  1058. package/src/engine/intelligence/behavior/decorator/RepeatBehavior.d.ts +5 -5
  1059. package/src/engine/intelligence/behavior/decorator/RepeatBehavior.d.ts.map +1 -1
  1060. package/src/engine/intelligence/behavior/decorator/RepeatBehavior.js +7 -7
  1061. package/src/engine/intelligence/behavior/decorator/RepeatBehaviorSerializationAdapter.d.ts.map +1 -1
  1062. package/src/engine/intelligence/behavior/decorator/RepeatBehaviorSerializationAdapter.js +2 -6
  1063. package/src/engine/intelligence/behavior/decorator/RepeatUntilSuccessBehavior.d.ts +2 -2
  1064. package/src/engine/intelligence/behavior/decorator/RepeatUntilSuccessBehavior.d.ts.map +1 -1
  1065. package/src/engine/intelligence/behavior/decorator/RepeatUntilSuccessBehavior.js +7 -7
  1066. package/src/engine/intelligence/behavior/ecs/BehaviorSystem.d.ts.map +1 -1
  1067. package/src/engine/intelligence/behavior/ecs/BehaviorSystem.js +3 -5
  1068. package/src/engine/intelligence/behavior/primitive/PromiseBehavior.d.ts +2 -2
  1069. package/src/engine/intelligence/behavior/primitive/PromiseBehavior.d.ts.map +1 -1
  1070. package/src/engine/intelligence/behavior/primitive/PromiseBehavior.js +3 -4
  1071. package/src/engine/intelligence/behavior/util/RotationBehavior.d.ts.map +1 -1
  1072. package/src/engine/intelligence/behavior/util/RotationBehavior.js +8 -13
  1073. package/src/engine/intelligence/blackboard/Blackboard.d.ts.map +1 -1
  1074. package/src/engine/intelligence/blackboard/Blackboard.js +14 -14
  1075. package/src/engine/intelligence/blackboard/BlackboardDynamicStorageAdapter.d.ts.map +1 -1
  1076. package/src/engine/intelligence/blackboard/BlackboardDynamicStorageAdapter.js +52 -55
  1077. package/src/engine/intelligence/blackboard/BlackboardStack.d.ts.map +1 -1
  1078. package/src/engine/intelligence/blackboard/BlackboardStack.js +12 -16
  1079. package/src/engine/intelligence/blackboard/BlackboardValue.d.ts.map +1 -1
  1080. package/src/engine/intelligence/blackboard/BlackboardValue.js +6 -5
  1081. package/src/engine/intelligence/controller/graph/StateGraph.d.ts +1 -1
  1082. package/src/engine/intelligence/controller/graph/StateGraph.d.ts.map +1 -1
  1083. package/src/engine/intelligence/controller/graph/StateGraph.js +2 -2
  1084. package/src/engine/intelligence/controller/graph/StateGraphDescription.js +6 -8
  1085. package/src/engine/intelligence/controller/graph/StateGraphSystem.d.ts.map +1 -1
  1086. package/src/engine/intelligence/controller/graph/StateGraphSystem.js +1 -5
  1087. package/src/engine/intelligence/mcts/MoveEdge.d.ts.map +1 -1
  1088. package/src/engine/intelligence/mcts/MoveEdge.js +5 -8
  1089. package/src/engine/intelligence/resource/ResourceAllocationBid.d.ts +5 -5
  1090. package/src/engine/intelligence/resource/ResourceAllocationBid.d.ts.map +1 -1
  1091. package/src/engine/intelligence/resource/ResourceAllocationBid.js +6 -6
  1092. package/src/engine/interpolation/InterpolationLog.d.ts.map +1 -1
  1093. package/src/engine/interpolation/InterpolationLog.js +564 -583
  1094. package/src/engine/interpolation/InterpolationSystem.d.ts.map +1 -1
  1095. package/src/engine/interpolation/InterpolationSystem.js +232 -233
  1096. package/src/engine/knowledge/database/StaticKnowledgeDataTableDescriptor.d.ts.map +1 -1
  1097. package/src/engine/knowledge/database/StaticKnowledgeDataTableDescriptor.js +17 -20
  1098. package/src/engine/logging/elastic/ElasticSearchLogger.d.ts +6 -6
  1099. package/src/engine/logging/elastic/ElasticSearchLogger.d.ts.map +1 -1
  1100. package/src/engine/logging/elastic/ElasticSearchLogger.js +31 -32
  1101. package/src/engine/metrics/ProxyMetricsGateway.d.ts.map +1 -1
  1102. package/src/engine/metrics/ProxyMetricsGateway.js +5 -9
  1103. package/src/engine/navigation/ecs/components/Path.d.ts.map +1 -1
  1104. package/src/engine/navigation/ecs/components/Path.js +30 -32
  1105. package/src/engine/navigation/ecs/components/PathSerializationUpgrader_0_1.d.ts.map +1 -1
  1106. package/src/engine/navigation/ecs/components/PathSerializationUpgrader_0_1.js +2 -6
  1107. package/src/engine/navigation/ecs/components/PathSerializationUpgrader_1_2.d.ts.map +1 -1
  1108. package/src/engine/navigation/ecs/components/PathSerializationUpgrader_1_2.js +2 -6
  1109. package/src/engine/navigation/ecs/components/PathSerializationUpgrader_2_3.d.ts.map +1 -1
  1110. package/src/engine/navigation/ecs/components/PathSerializationUpgrader_2_3.js +34 -38
  1111. package/src/engine/navigation/ecs/path_following/PathFollowerSerializationUpgrader_0_1.d.ts.map +1 -1
  1112. package/src/engine/navigation/ecs/path_following/PathFollowerSerializationUpgrader_0_1.js +2 -6
  1113. package/src/engine/navigation/ecs/path_following/PathFollowerSerializationUpgrader_1_2.d.ts.map +1 -1
  1114. package/src/engine/navigation/ecs/path_following/PathFollowerSerializationUpgrader_1_2.js +2 -6
  1115. package/src/engine/navigation/ecs/path_following/PathFollowingSystem.d.ts.map +1 -1
  1116. package/src/engine/navigation/ecs/path_following/PathFollowingSystem.js +12 -17
  1117. package/src/engine/network/NetworkSession.d.ts.map +1 -1
  1118. package/src/engine/network/NetworkSession.js +2037 -2036
  1119. package/src/engine/network/PriorityFetch.d.ts +6 -6
  1120. package/src/engine/network/PriorityFetch.d.ts.map +1 -1
  1121. package/src/engine/network/PriorityFetch.js +14 -14
  1122. package/src/engine/network/diagnostics/BandwidthMeter.d.ts.map +1 -1
  1123. package/src/engine/network/diagnostics/BandwidthMeter.js +150 -155
  1124. package/src/engine/network/diagnostics/ReplayLog.d.ts +2 -2
  1125. package/src/engine/network/diagnostics/ReplayLog.d.ts.map +1 -1
  1126. package/src/engine/network/diagnostics/ReplayLog.js +132 -137
  1127. package/src/engine/network/diagnostics/SyncTest.d.ts.map +1 -1
  1128. package/src/engine/network/diagnostics/SyncTest.js +146 -151
  1129. package/src/engine/network/orchestrator/NetworkPeer.d.ts.map +1 -1
  1130. package/src/engine/network/orchestrator/NetworkPeer.js +1202 -1209
  1131. package/src/engine/network/orchestrator/ServerAuthoritativeClient.d.ts +4 -4
  1132. package/src/engine/network/orchestrator/ServerAuthoritativeClient.d.ts.map +1 -1
  1133. package/src/engine/network/orchestrator/ServerAuthoritativeClient.js +8 -10
  1134. package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts +7 -7
  1135. package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts.map +1 -1
  1136. package/src/engine/network/orchestrator/ServerAuthoritativeServer.js +643 -654
  1137. package/src/engine/network/replication/Replicator.d.ts +24 -24
  1138. package/src/engine/network/replication/Replicator.d.ts.map +1 -1
  1139. package/src/engine/network/replication/Replicator.js +405 -410
  1140. package/src/engine/network/sim/ReplicatedComponentRegistry.d.ts.map +1 -1
  1141. package/src/engine/network/sim/ReplicatedComponentRegistry.js +133 -140
  1142. package/src/engine/network/sim/RewindEngine.d.ts.map +1 -1
  1143. package/src/engine/network/sim/RewindEngine.js +179 -182
  1144. package/src/engine/network/sim/SimActionExecutor.d.ts +34 -34
  1145. package/src/engine/network/sim/SimActionExecutor.d.ts.map +1 -1
  1146. package/src/engine/network/sim/SimActionExecutor.js +305 -306
  1147. package/src/engine/network/sim/SimActionRegistry.d.ts.map +1 -1
  1148. package/src/engine/network/sim/SimActionRegistry.js +121 -128
  1149. package/src/engine/network/sim/SmoothingState.d.ts.map +1 -1
  1150. package/src/engine/network/sim/SmoothingState.js +220 -222
  1151. package/src/engine/network/sim/SpeculationLog.d.ts.map +1 -1
  1152. package/src/engine/network/sim/SpeculationLog.js +79 -84
  1153. package/src/engine/network/state/Baseline.d.ts.map +1 -1
  1154. package/src/engine/network/state/Baseline.js +78 -83
  1155. package/src/engine/network/state/ChangedEntitySet.d.ts.map +1 -1
  1156. package/src/engine/network/state/ChangedEntitySet.js +253 -256
  1157. package/src/engine/network/state/MutationLedger.d.ts.map +1 -1
  1158. package/src/engine/network/state/MutationLedger.js +179 -182
  1159. package/src/engine/network/state/ReplicationSlotTable.d.ts.map +1 -1
  1160. package/src/engine/network/state/ReplicationSlotTable.js +206 -211
  1161. package/src/engine/network/time/AdaptiveRenderDelay.d.ts.map +1 -1
  1162. package/src/engine/network/time/AdaptiveRenderDelay.js +250 -258
  1163. package/src/engine/network/time/JitterBuffer.d.ts.map +1 -1
  1164. package/src/engine/network/time/JitterBuffer.js +113 -116
  1165. package/src/engine/network/time/TimeSync.d.ts.map +1 -1
  1166. package/src/engine/network/time/TimeSync.js +145 -152
  1167. package/src/engine/network/transport/LoopbackTransport.d.ts.map +1 -1
  1168. package/src/engine/network/transport/LoopbackTransport.js +165 -173
  1169. package/src/engine/network/transport/ReliableCommandPipeline.d.ts.map +1 -1
  1170. package/src/engine/network/transport/ReliableCommandPipeline.js +315 -320
  1171. package/src/engine/network/transport/adapters/SimulatedTransport.d.ts.map +1 -1
  1172. package/src/engine/network/transport/adapters/SimulatedTransport.js +235 -241
  1173. package/src/engine/network/transport/adapters/WebSocketTransport.d.ts.map +1 -1
  1174. package/src/engine/network/transport/adapters/WebSocketTransport.js +154 -154
  1175. package/src/engine/network/transport/adapters/WebTransportTransport.d.ts.map +1 -1
  1176. package/src/engine/network/transport/adapters/WebTransportTransport.js +195 -199
  1177. package/src/engine/network/transport/fragments/FragmentAssembler.d.ts.map +1 -1
  1178. package/src/engine/network/transport/fragments/FragmentAssembler.js +286 -291
  1179. package/src/engine/network/transport/fragments/FragmentRetention.d.ts.map +1 -1
  1180. package/src/engine/network/transport/fragments/FragmentRetention.js +191 -194
  1181. package/src/engine/physics/body/BodyStorage.d.ts +2 -2
  1182. package/src/engine/physics/body/BodyStorage.d.ts.map +1 -1
  1183. package/src/engine/physics/body/BodyStorage.js +406 -406
  1184. package/src/engine/physics/body/SolverBodyState.d.ts +8 -8
  1185. package/src/engine/physics/body/SolverBodyState.d.ts.map +1 -1
  1186. package/src/engine/physics/body/SolverBodyState.js +10 -10
  1187. package/src/engine/physics/broadphase/PairList.d.ts +1 -1
  1188. package/src/engine/physics/broadphase/PairList.d.ts.map +1 -1
  1189. package/src/engine/physics/broadphase/PairList.js +98 -97
  1190. package/src/engine/physics/contact/ManifoldStore.d.ts +2 -2
  1191. package/src/engine/physics/contact/ManifoldStore.d.ts.map +1 -1
  1192. package/src/engine/physics/contact/ManifoldStore.js +3 -4
  1193. package/src/engine/physics/ecs/ColliderObserverSystem.d.ts +2 -2
  1194. package/src/engine/physics/ecs/ColliderObserverSystem.d.ts.map +1 -1
  1195. package/src/engine/physics/ecs/ColliderObserverSystem.js +102 -103
  1196. package/src/engine/physics/ecs/PhysicsSystem.d.ts +2 -2
  1197. package/src/engine/physics/ecs/PhysicsSystem.d.ts.map +1 -1
  1198. package/src/engine/physics/ecs/PhysicsSystem.js +248 -249
  1199. package/src/engine/physics/events/ContactEventBuffer.d.ts +1 -1
  1200. package/src/engine/physics/events/ContactEventBuffer.d.ts.map +1 -1
  1201. package/src/engine/physics/events/ContactEventBuffer.js +2 -1
  1202. package/src/engine/physics/fluid/FluidField.d.ts +54 -0
  1203. package/src/engine/physics/fluid/FluidField.d.ts.map +1 -1
  1204. package/src/engine/physics/fluid/FluidField.js +198 -15
  1205. package/src/engine/physics/fluid/FluidSimulator.d.ts.map +1 -1
  1206. package/src/engine/physics/fluid/FluidSimulator.js +14 -4
  1207. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  1208. package/src/engine/physics/fluid/ecs/FluidSystem.d.ts +0 -45
  1209. package/src/engine/physics/fluid/ecs/FluidSystem.d.ts.map +1 -1
  1210. package/src/engine/physics/fluid/ecs/FluidSystem.js +8 -144
  1211. package/src/engine/physics/fluid/ecs/FluidWorkerCore.d.ts +43 -0
  1212. package/src/engine/physics/fluid/ecs/FluidWorkerCore.d.ts.map +1 -0
  1213. package/src/engine/physics/fluid/ecs/FluidWorkerCore.js +123 -0
  1214. package/src/engine/physics/fluid/ecs/WorkerFluidSystem.d.ts +119 -0
  1215. package/src/engine/physics/fluid/ecs/WorkerFluidSystem.d.ts.map +1 -0
  1216. package/src/engine/physics/fluid/ecs/WorkerFluidSystem.js +395 -0
  1217. package/src/engine/physics/fluid/ecs/fluid.worker.d.ts +2 -0
  1218. package/src/engine/physics/fluid/ecs/fluid.worker.d.ts.map +1 -0
  1219. package/src/engine/physics/fluid/ecs/fluid.worker.js +12 -0
  1220. package/src/engine/physics/fluid/ecs/fluid_build_world_to_grid.d.ts +20 -0
  1221. package/src/engine/physics/fluid/ecs/fluid_build_world_to_grid.d.ts.map +1 -0
  1222. package/src/engine/physics/fluid/ecs/fluid_build_world_to_grid.js +32 -0
  1223. package/src/engine/physics/fluid/ecs/fluid_gather_visible_effectors.d.ts +22 -0
  1224. package/src/engine/physics/fluid/ecs/fluid_gather_visible_effectors.d.ts.map +1 -0
  1225. package/src/engine/physics/fluid/ecs/fluid_gather_visible_effectors.js +47 -0
  1226. package/src/engine/physics/fluid/ecs/fluid_reanchor_field.d.ts +28 -0
  1227. package/src/engine/physics/fluid/ecs/fluid_reanchor_field.d.ts.map +1 -0
  1228. package/src/engine/physics/fluid/ecs/fluid_reanchor_field.js +85 -0
  1229. package/src/engine/physics/fluid/ecs/fluid_sync_effectors_from_transform.d.ts +11 -0
  1230. package/src/engine/physics/fluid/ecs/fluid_sync_effectors_from_transform.d.ts.map +1 -0
  1231. package/src/engine/physics/fluid/ecs/fluid_sync_effectors_from_transform.js +16 -0
  1232. package/src/engine/physics/fluid/ecs/fluid_worker_protocol.d.ts +51 -0
  1233. package/src/engine/physics/fluid/ecs/fluid_worker_protocol.d.ts.map +1 -0
  1234. package/src/engine/physics/fluid/ecs/fluid_worker_protocol.js +111 -0
  1235. package/src/engine/physics/fluid/ecs/makeFluidWorker.d.ts +17 -0
  1236. package/src/engine/physics/fluid/ecs/makeFluidWorker.d.ts.map +1 -0
  1237. package/src/engine/physics/fluid/ecs/makeFluidWorker.js +18 -0
  1238. package/src/engine/physics/island/IslandBuilder.d.ts.map +1 -1
  1239. package/src/engine/physics/island/IslandBuilder.js +84 -86
  1240. package/src/engine/physics/mls-mpm/MLS_MPM.d.ts.map +1 -1
  1241. package/src/engine/physics/mls-mpm/MLS_MPM.js +24 -26
  1242. package/src/engine/physics/queries/PhysicsSurfacePoint.d.ts.map +1 -1
  1243. package/src/engine/physics/queries/PhysicsSurfacePoint.js +98 -100
  1244. package/src/engine/physics/vehicle/RaycastVehicle.d.ts +6 -6
  1245. package/src/engine/physics/vehicle/RaycastVehicle.d.ts.map +1 -1
  1246. package/src/engine/physics/vehicle/RaycastVehicle.js +357 -344
  1247. package/src/engine/plugin/PluginReferenceContext.d.ts +12 -12
  1248. package/src/engine/plugin/PluginReferenceContext.d.ts.map +1 -1
  1249. package/src/engine/plugin/PluginReferenceContext.js +24 -25
  1250. package/src/engine/scene/Scene.d.ts +5 -5
  1251. package/src/engine/scene/Scene.d.ts.map +1 -1
  1252. package/src/engine/scene/Scene.js +24 -23
  1253. package/src/engine/scene/SceneManager.d.ts +5 -5
  1254. package/src/engine/scene/SceneManager.d.ts.map +1 -1
  1255. package/src/engine/scene/SceneManager.js +13 -14
  1256. package/src/engine/sound/SoundEngine.d.ts +2 -2
  1257. package/src/engine/sound/SoundEngine.d.ts.map +1 -1
  1258. package/src/engine/sound/SoundEngine.js +7 -8
  1259. package/src/engine/sound/asset/SoundAssetPlaybackSpec.d.ts.map +1 -1
  1260. package/src/engine/sound/asset/SoundAssetPlaybackSpec.js +16 -20
  1261. package/src/engine/sound/ecs/SoundController.d.ts.map +1 -1
  1262. package/src/engine/sound/ecs/SoundController.js +37 -33
  1263. package/src/engine/sound/ecs/SoundControllerSystem.d.ts.map +1 -1
  1264. package/src/engine/sound/ecs/SoundControllerSystem.js +5 -11
  1265. package/src/engine/sound/ecs/SoundListener.d.ts.map +1 -1
  1266. package/src/engine/sound/ecs/SoundListener.js +4 -6
  1267. package/src/engine/sound/ecs/SoundListenerSystem.d.ts +6 -6
  1268. package/src/engine/sound/ecs/SoundListenerSystem.d.ts.map +1 -1
  1269. package/src/engine/sound/ecs/SoundListenerSystem.js +22 -23
  1270. package/src/engine/sound/ecs/audio/AudioEmitter.d.ts +10 -4
  1271. package/src/engine/sound/ecs/audio/AudioEmitter.d.ts.map +1 -1
  1272. package/src/engine/sound/ecs/audio/AudioEmitter.js +131 -122
  1273. package/src/engine/sound/ecs/audio/AudioEmitterSerializationAdapter.d.ts +34 -0
  1274. package/src/engine/sound/ecs/audio/AudioEmitterSerializationAdapter.d.ts.map +1 -0
  1275. package/src/engine/sound/ecs/audio/AudioEmitterSerializationAdapter.js +68 -0
  1276. package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts +6 -6
  1277. package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts.map +1 -1
  1278. package/src/engine/sound/ecs/audio/AudioEmitterSystem.js +314 -316
  1279. package/src/engine/sound/ecs/emitter/SoundEmitterComponentContext.d.ts.map +1 -1
  1280. package/src/engine/sound/ecs/emitter/SoundEmitterComponentContext.js +31 -1
  1281. package/src/engine/sound/ecs/emitter/SoundEmitterSerializationUpgrader_0_1.d.ts.map +1 -1
  1282. package/src/engine/sound/ecs/emitter/SoundEmitterSerializationUpgrader_0_1.js +2 -6
  1283. package/src/engine/sound/ecs/emitter/SoundEmitterSerializationUpgrader_1_2.d.ts.map +1 -1
  1284. package/src/engine/sound/ecs/emitter/SoundEmitterSerializationUpgrader_1_2.js +2 -6
  1285. package/src/engine/sound/ecs/emitter/SoundEmitterSystem.d.ts +5 -5
  1286. package/src/engine/sound/ecs/emitter/SoundEmitterSystem.d.ts.map +1 -1
  1287. package/src/engine/sound/ecs/emitter/SoundEmitterSystem.js +159 -159
  1288. package/src/engine/sound/material/concrete/RandomSoundMaterial.d.ts.map +1 -1
  1289. package/src/engine/sound/material/concrete/RandomSoundMaterial.js +5 -9
  1290. package/src/engine/sound/material/concrete/SingleSoundMaterial.d.ts.map +1 -1
  1291. package/src/engine/sound/material/concrete/SingleSoundMaterial.js +1 -6
  1292. package/src/engine/sound/material/concrete/SoundMaterialComposition.d.ts.map +1 -1
  1293. package/src/engine/sound/material/concrete/SoundMaterialComposition.js +18 -21
  1294. package/src/engine/sound/material/detector/terrain/TerrainSoundMaterialSurfaceDetector.d.ts.map +1 -1
  1295. package/src/engine/sound/material/detector/terrain/TerrainSoundMaterialSurfaceDetector.js +13 -15
  1296. package/src/engine/sound/simulation/core/OccluderBody.d.ts +12 -12
  1297. package/src/engine/sound/simulation/core/OccluderBody.d.ts.map +1 -1
  1298. package/src/engine/sound/simulation/core/OccluderBody.js +74 -74
  1299. package/src/engine/sound/simulation/prototypeAcousticSolver.js +5 -4
  1300. package/src/engine/sound/sopra/definition/SopraPanningModel.d.ts +7 -3
  1301. package/src/engine/sound/sopra/definition/SopraPanningModel.d.ts.map +1 -1
  1302. package/src/engine/sound/sopra/definition/SopraPanningModel.js +34 -20
  1303. package/src/engine/sound/sopra/legacy/soundEmitterToEventDescription.d.ts +15 -0
  1304. package/src/engine/sound/sopra/legacy/soundEmitterToEventDescription.d.ts.map +1 -1
  1305. package/src/engine/sound/sopra/legacy/soundEmitterToEventDescription.js +122 -106
  1306. package/src/engine/sound/sopra/runtime/EventInstance.d.ts.map +1 -1
  1307. package/src/engine/sound/sopra/runtime/EventInstance.js +852 -815
  1308. package/src/engine/sound/sopra/util/buildAttenuationCurve.d.ts +20 -6
  1309. package/src/engine/sound/sopra/util/buildAttenuationCurve.d.ts.map +1 -1
  1310. package/src/engine/sound/sopra/util/buildAttenuationCurve.js +56 -21
  1311. package/src/engine/ui/bindings/DomElementBinding.d.ts.map +1 -1
  1312. package/src/engine/ui/bindings/DomElementBinding.js +15 -18
  1313. package/src/engine/ui/bindings/DomElementBindingDescription.d.ts.map +1 -1
  1314. package/src/engine/ui/bindings/DomElementBindingDescription.js +10 -14
  1315. package/src/engine/ui/bindings/DomElementProcessor.d.ts.map +1 -1
  1316. package/src/engine/ui/bindings/DomElementProcessor.js +5 -7
  1317. package/src/engine/ui/bindings/DomElementProcessorManager.d.ts.map +1 -1
  1318. package/src/engine/ui/bindings/DomElementProcessorManager.js +26 -26
  1319. package/src/engine/ui/bindings/processors/DomElementProcessorTilt3D.d.ts.map +1 -1
  1320. package/src/engine/ui/bindings/processors/DomElementProcessorTilt3D.js +15 -19
  1321. package/src/engine/ui/cursor/CursorCoalescence.d.ts.map +1 -1
  1322. package/src/engine/ui/cursor/CursorCoalescence.js +11 -14
  1323. package/src/engine/ui/modal/ModalStack.d.ts.map +1 -1
  1324. package/src/engine/ui/modal/ModalStack.js +19 -22
  1325. package/src/engine/ui/notification/AnimatedObjectEmitter.d.ts +4 -4
  1326. package/src/engine/ui/notification/AnimatedObjectEmitter.d.ts.map +1 -1
  1327. package/src/engine/ui/notification/AnimatedObjectEmitter.js +68 -70
  1328. package/src/engine/ui/notification/NotificationManager.d.ts +4 -4
  1329. package/src/engine/ui/notification/NotificationManager.d.ts.map +1 -1
  1330. package/src/engine/ui/notification/NotificationManager.js +27 -29
  1331. package/src/engine/ui/notification/ViewEmitter.d.ts.map +1 -1
  1332. package/src/engine/ui/notification/ViewEmitter.js +2 -2
  1333. package/src/engine/ui/scene/SceneGUIContext.d.ts.map +1 -1
  1334. package/src/engine/ui/scene/SceneGUIContext.js +20 -22
  1335. package/src/engine/ui/tiles2d/TileMoveProgram.d.ts.map +1 -1
  1336. package/src/engine/ui/tiles2d/TileMoveProgram.js +5 -7
  1337. package/src/generation/GraphGenerationRule.d.ts.map +1 -1
  1338. package/src/generation/GraphGenerationRule.js +10 -14
  1339. package/src/generation/GridGeneratorConfig.d.ts.map +1 -1
  1340. package/src/generation/GridGeneratorConfig.js +15 -19
  1341. package/src/generation/filtering/CellFilterCellMatcher.d.ts.map +1 -1
  1342. package/src/generation/filtering/CellFilterCellMatcher.js +5 -9
  1343. package/src/generation/filtering/numeric/complex/CellFilterAngleToNormal.d.ts.map +1 -1
  1344. package/src/generation/filtering/numeric/complex/CellFilterAngleToNormal.js +11 -15
  1345. package/src/generation/grid/actions/ContinuousGridCellActionSetTerrainObstacle.d.ts.map +1 -1
  1346. package/src/generation/grid/actions/ContinuousGridCellActionSetTerrainObstacle.js +11 -15
  1347. package/src/generation/grid/actions/ContinuousGridCellActionWriteObstacle.d.ts +10 -10
  1348. package/src/generation/grid/actions/ContinuousGridCellActionWriteObstacle.d.ts.map +1 -1
  1349. package/src/generation/grid/actions/ContinuousGridCellActionWriteObstacle.js +20 -19
  1350. package/src/generation/markers/matcher/MarkerNodeMatcherByType.d.ts.map +1 -1
  1351. package/src/generation/markers/matcher/MarkerNodeMatcherByType.js +5 -9
  1352. package/src/generation/placement/action/random/CellActionSelectRandom.d.ts.map +1 -1
  1353. package/src/generation/placement/action/random/CellActionSelectRandom.js +11 -16
  1354. package/src/view/ViewGroup.d.ts.map +1 -1
  1355. package/src/view/ViewGroup.js +11 -14
  1356. package/src/view/common/HTMLElementCacheKey.d.ts.map +1 -1
  1357. package/src/view/common/HTMLElementCacheKey.js +21 -24
  1358. package/src/view/common/TabbedView.d.ts +56 -26
  1359. package/src/view/common/TabbedView.d.ts.map +1 -1
  1360. package/src/view/common/TabbedView.js +128 -30
  1361. package/src/view/common/dnd/DragAndDropContext.d.ts.map +1 -1
  1362. package/src/view/common/dnd/DragAndDropContext.js +11 -12
  1363. package/src/view/common/dnd/Draggable.d.ts +5 -5
  1364. package/src/view/common/dnd/Draggable.d.ts.map +1 -1
  1365. package/src/view/common/dnd/Draggable.js +6 -6
  1366. package/src/view/controller/GuiController.d.ts +1 -1
  1367. package/src/view/controller/GuiController.d.ts.map +1 -1
  1368. package/src/view/controller/GuiController.js +3 -3
  1369. package/src/view/controller/controls/BooleanVector3Control.d.ts.map +1 -1
  1370. package/src/view/controller/controls/BooleanVector3Control.js +2 -2
  1371. package/src/view/controller/controls/NumericIntervalControl.d.ts +1 -1
  1372. package/src/view/controller/controls/NumericIntervalControl.d.ts.map +1 -1
  1373. package/src/view/controller/controls/NumericIntervalControl.js +90 -90
  1374. package/src/view/controller/controls/Vector2Control.d.ts +1 -1
  1375. package/src/view/controller/controls/Vector2Control.d.ts.map +1 -1
  1376. package/src/view/controller/controls/Vector2Control.js +83 -83
  1377. package/src/view/controller/controls/Vector3Control.d.ts +1 -1
  1378. package/src/view/controller/controls/Vector3Control.d.ts.map +1 -1
  1379. package/src/view/controller/controls/Vector3Control.js +90 -90
  1380. package/{editor/view/ecs/components → src/view/controller/dat}/DatGuiController.d.ts +45 -45
  1381. package/src/view/controller/dat/DatGuiController.d.ts.map +1 -0
  1382. package/src/view/controller/dat/DatGuiController.js +216 -0
  1383. package/src/view/currency/CompositeCurrencyLabelView.d.ts.map +1 -1
  1384. package/src/view/currency/CompositeCurrencyLabelView.js +2 -2
  1385. package/src/view/currency/CurrencyDenominationLabelView.d.ts.map +1 -1
  1386. package/src/view/currency/CurrencyDenominationLabelView.js +2 -3
  1387. package/src/view/currency/CurrencyDenominationSpec.d.ts.map +1 -1
  1388. package/src/view/currency/CurrencyDenominationSpec.js +11 -12
  1389. package/src/view/currency/CurrencyDisplaySpec.d.ts.map +1 -1
  1390. package/src/view/currency/CurrencyDisplaySpec.js +5 -9
  1391. package/src/view/elements/ColorPickerView.js +1 -1
  1392. package/src/view/elements/EmptyView.js +1 -1
  1393. package/src/view/elements/MeshPreview.d.ts +1 -1
  1394. package/src/view/elements/MeshPreview.d.ts.map +1 -1
  1395. package/src/view/elements/MeshPreview.js +4 -10
  1396. package/{editor/view/ecs/components/particles/ColorParameterLUTController.d.ts → src/view/elements/drawCheckers.d.ts} +13 -14
  1397. package/src/view/elements/drawCheckers.d.ts.map +1 -0
  1398. package/src/view/elements/drawCheckers.js +33 -0
  1399. package/src/view/elements/progress/segmented/SegmentDefinition.d.ts.map +1 -1
  1400. package/src/view/elements/progress/segmented/SegmentDefinition.js +1 -3
  1401. package/src/view/elements/radial/RadialMenu.d.ts.map +1 -1
  1402. package/src/view/elements/radial/RadialMenu.js +18 -19
  1403. package/src/view/elements/radial/RadialMenuElementDefinition.d.ts.map +1 -1
  1404. package/src/view/elements/radial/RadialMenuElementDefinition.js +95 -87
  1405. package/src/view/elements/radial/RadialText.d.ts +3 -3
  1406. package/src/view/elements/radial/RadialText.d.ts.map +1 -1
  1407. package/src/view/elements/radial/RadialText.js +19 -22
  1408. package/src/view/elements/tiles2d/Tile.d.ts +1 -1
  1409. package/src/view/elements/tiles2d/Tile.d.ts.map +1 -1
  1410. package/src/view/elements/tiles2d/Tile.js +2 -2
  1411. package/src/view/elements/tiles2d/TileGrid.d.ts.map +1 -1
  1412. package/src/view/elements/tiles2d/TileGrid.js +1 -4
  1413. package/src/view/game/achievements/AchievementNotificationView.d.ts.map +1 -1
  1414. package/src/view/game/achievements/AchievementNotificationView.js +2 -3
  1415. package/src/view/interaction/InteractionCommandSet.d.ts.map +1 -1
  1416. package/src/view/interaction/InteractionCommandSet.js +5 -7
  1417. package/src/view/layout/DockDragOverlayView.d.ts +24 -0
  1418. package/src/view/layout/DockDragOverlayView.d.ts.map +1 -0
  1419. package/src/view/layout/DockDragOverlayView.js +63 -0
  1420. package/src/view/layout/DockDropPlan.d.ts +46 -0
  1421. package/src/view/layout/DockDropPlan.d.ts.map +1 -0
  1422. package/src/view/layout/DockDropPlan.js +53 -0
  1423. package/src/view/layout/DockGroupNode.d.ts +29 -0
  1424. package/src/view/layout/DockGroupNode.d.ts.map +1 -0
  1425. package/src/view/layout/DockGroupNode.js +38 -0
  1426. package/src/view/layout/DockLayoutView.d.ts +125 -0
  1427. package/src/view/layout/DockLayoutView.d.ts.map +1 -0
  1428. package/src/view/layout/DockLayoutView.js +1193 -0
  1429. package/src/view/layout/DockPanel.d.ts +38 -0
  1430. package/src/view/layout/DockPanel.d.ts.map +1 -0
  1431. package/src/view/layout/DockPanel.js +51 -0
  1432. package/src/view/layout/DockSide.d.ts +48 -0
  1433. package/src/view/layout/DockSide.d.ts.map +1 -0
  1434. package/src/view/layout/DockSide.js +88 -0
  1435. package/src/view/layout/DockSplitNode.d.ts +59 -0
  1436. package/src/view/layout/DockSplitNode.d.ts.map +1 -0
  1437. package/src/view/layout/DockSplitNode.js +78 -0
  1438. package/src/view/layout/DrawerView.d.ts +53 -0
  1439. package/src/view/layout/DrawerView.d.ts.map +1 -0
  1440. package/src/view/layout/DrawerView.js +163 -0
  1441. package/src/view/layout/FloatingPanelView.d.ts +38 -0
  1442. package/src/view/layout/FloatingPanelView.d.ts.map +1 -0
  1443. package/src/view/layout/FloatingPanelView.js +251 -0
  1444. package/src/view/layout/SplitView.d.ts +73 -0
  1445. package/src/view/layout/SplitView.d.ts.map +1 -0
  1446. package/src/view/layout/SplitView.js +365 -0
  1447. package/src/view/layout/layout.scss +236 -0
  1448. package/src/view/layout/show_popup_menu.d.ts +19 -0
  1449. package/src/view/layout/show_popup_menu.d.ts.map +1 -0
  1450. package/src/view/layout/show_popup_menu.js +81 -0
  1451. package/src/view/minimap/Minimap.d.ts.map +1 -1
  1452. package/src/view/minimap/Minimap.js +2 -6
  1453. package/src/view/minimap/dom/MinimapMarkerView.d.ts.map +1 -1
  1454. package/src/view/minimap/dom/MinimapMarkerView.js +2 -3
  1455. package/src/view/minimap/gl/MarkerGL.d.ts +6 -6
  1456. package/src/view/minimap/gl/MarkerGL.d.ts.map +1 -1
  1457. package/src/view/minimap/gl/MarkerGL.js +8 -9
  1458. package/src/view/minimap/gl/MinimapFogOfWar.d.ts +7 -7
  1459. package/src/view/minimap/gl/MinimapFogOfWar.d.ts.map +1 -1
  1460. package/src/view/minimap/gl/MinimapFogOfWar.js +10 -12
  1461. package/src/view/minimap/gl/MinimapWorldGL.d.ts +15 -15
  1462. package/src/view/minimap/gl/MinimapWorldGL.d.ts.map +1 -1
  1463. package/src/view/minimap/gl/MinimapWorldGL.js +18 -16
  1464. package/src/view/minimap/gl/MinimapWorldLayer.d.ts.map +1 -1
  1465. package/src/view/minimap/gl/MinimapWorldLayer.js +4 -8
  1466. package/src/view/tooltip/DomTooltipManager.d.ts +6 -6
  1467. package/src/view/tooltip/DomTooltipManager.d.ts.map +1 -1
  1468. package/src/view/tooltip/DomTooltipManager.js +21 -22
  1469. package/src/view/tooltip/TooltipManager.d.ts.map +1 -1
  1470. package/src/view/tooltip/TooltipManager.js +6 -8
  1471. package/src/view/tooltip/TooltipView.d.ts +1 -1
  1472. package/src/view/tooltip/TooltipView.d.ts.map +1 -1
  1473. package/src/view/tooltip/TooltipView.js +3 -4
  1474. package/src/view/tooltip/VisualTip.d.ts +5 -5
  1475. package/src/view/tooltip/VisualTip.d.ts.map +1 -1
  1476. package/src/view/tooltip/VisualTip.js +6 -7
  1477. package/src/view/tooltip/gml/GMLEngine.d.ts.map +1 -1
  1478. package/src/view/tooltip/gml/GMLEngine.js +57 -63
  1479. package/src/view/util/DomSizeObserver.d.ts +6 -6
  1480. package/src/view/util/DomSizeObserver.d.ts.map +1 -1
  1481. package/src/view/util/DomSizeObserver.js +27 -20
  1482. package/editor/actions/concrete/PatchTerrainTextureAction.js +0 -153
  1483. package/editor/ecs/component/editors/ecs/MinimapMarkerEditor.d.ts +0 -14
  1484. package/editor/ecs/component/editors/ecs/MinimapMarkerEditor.d.ts.map +0 -1
  1485. package/editor/process/symbolic/makeStoryTriggerSetAreaDisplay.js +0 -114
  1486. package/editor/tools/TopDownCameraControlTool.d.ts +0 -13
  1487. package/editor/tools/TopDownCameraControlTool.d.ts.map +0 -1
  1488. package/editor/tools/TopDownCameraControlTool.js +0 -56
  1489. package/editor/tools/TransformTool.js +0 -385
  1490. package/editor/tools/paint/prototypeTerrainEditor.js +0 -135
  1491. package/editor/view/EditorView.d.ts +0 -39
  1492. package/editor/view/EditorView.d.ts.map +0 -1
  1493. package/editor/view/EditorView.js +0 -304
  1494. package/editor/view/ecs/ComponentControlFactory.d.ts +0 -19
  1495. package/editor/view/ecs/ComponentControlFactory.d.ts.map +0 -1
  1496. package/editor/view/ecs/ComponentControlFactory.js +0 -45
  1497. package/editor/view/ecs/EntityList.d.ts +0 -22
  1498. package/editor/view/ecs/EntityList.d.ts.map +0 -1
  1499. package/editor/view/ecs/HierarchicalEntityListView.module.scss +0 -13
  1500. package/editor/view/ecs/components/BlackboardController.js +0 -50
  1501. package/editor/view/ecs/components/DatGuiController.d.ts.map +0 -1
  1502. package/editor/view/ecs/components/FogOfWarController.js +0 -78
  1503. package/editor/view/ecs/components/FogOfWarRevealerController.js +0 -44
  1504. package/editor/view/ecs/components/GeneratedArmyController.js +0 -42
  1505. package/editor/view/ecs/components/GridObstacleController.d.ts +0 -14
  1506. package/editor/view/ecs/components/GridObstacleController.d.ts.map +0 -1
  1507. package/editor/view/ecs/components/GridObstacleController.js +0 -72
  1508. package/editor/view/ecs/components/GridPositionController.js +0 -40
  1509. package/editor/view/ecs/components/HeadsUpDisplayController.js +0 -30
  1510. package/editor/view/ecs/components/HighlightController.js +0 -47
  1511. package/editor/view/ecs/components/MeshController.js +0 -122
  1512. package/editor/view/ecs/components/PathFollowerController.js +0 -87
  1513. package/editor/view/ecs/components/TagController.js +0 -80
  1514. package/editor/view/ecs/components/TerrainController.js +0 -215
  1515. package/editor/view/ecs/components/TransformController.js +0 -97
  1516. package/editor/view/ecs/components/UnitShopController.js +0 -112
  1517. package/editor/view/ecs/components/army/ArmyController.js +0 -130
  1518. package/editor/view/ecs/components/gui/GUIElementController.js +0 -117
  1519. package/editor/view/ecs/components/items/ItemContainerController.js +0 -132
  1520. package/editor/view/ecs/components/items/ItemContainerController.stories.js +0 -50
  1521. package/editor/view/ecs/components/items/ItemController.js +0 -52
  1522. package/editor/view/ecs/components/particles/ColorParameterLUTController.d.ts.map +0 -1
  1523. package/editor/view/ecs/components/particles/ColorParameterLUTController.js +0 -444
  1524. package/editor/view/ecs/components/particles/ParameterTrackController.js +0 -51
  1525. package/editor/view/ecs/components/particles/ParticleEmitterController.js +0 -213
  1526. package/editor/view/ecs/components/particles/ParticleLayerController.js +0 -213
  1527. package/editor/view/ecs/components/particles/ScalarParameterLUTController.js +0 -401
  1528. package/editor/view/ecs/components/sockets/AttachmentSocketsController.js +0 -51
  1529. package/editor/view/ecs/components/sound/SoundEmitterController.js +0 -137
  1530. package/editor/view/ecs/components/story/StoryTriggerSetController.js +0 -214
  1531. package/editor/view/ecs/components/unit/AuraController.js +0 -45
  1532. package/editor/view/makeEntityDecorators.d.ts +0 -6
  1533. package/editor/view/makeEntityDecorators.d.ts.map +0 -1
  1534. package/editor/view/v2/SplitView.d.ts +0 -17
  1535. package/editor/view/v2/SplitView.d.ts.map +0 -1
  1536. package/editor/view/v2/ViewManagementSystem.js +0 -0
  1537. package/editor/view/v2/prototypeEditor.js +0 -127
  1538. package/src/engine/graphics/ecs/sprite/prototypeSpriteSystem.d.ts +0 -2
  1539. package/src/engine/graphics/ecs/sprite/prototypeSpriteSystem.d.ts.map +0 -1
  1540. package/src/engine/graphics/ecs/sprite/prototypeSpriteSystem.js +0 -1570
  1541. package/src/engine/graphics/three/TransfromControls.js +0 -1495
  1542. package/src/view/controller/controls_v2/AbstractPropertyBinding.d.ts +0 -8
  1543. package/src/view/controller/controls_v2/AbstractPropertyBinding.d.ts.map +0 -1
  1544. package/src/view/controller/controls_v2/AbstractPropertyBinding.ts +0 -10
  1545. package/src/view/controller/controls_v2/Controller.d.ts +0 -21
  1546. package/src/view/controller/controls_v2/Controller.d.ts.map +0 -1
  1547. package/src/view/controller/controls_v2/Controller.ts +0 -32
  1548. package/src/view/controller/controls_v2/IPropertyBinding.d.ts +0 -5
  1549. package/src/view/controller/controls_v2/IPropertyBinding.d.ts.map +0 -1
  1550. package/src/view/controller/controls_v2/IPropertyBinding.ts +0 -6
  1551. package/src/view/controller/controls_v2/PrimitivePropertyBinding.d.ts +0 -6
  1552. package/src/view/controller/controls_v2/PrimitivePropertyBinding.d.ts.map +0 -1
  1553. package/src/view/controller/controls_v2/PrimitivePropertyBinding.ts +0 -12
  1554. package/src/view/controller/controls_v2/SliderController.d.ts +0 -6
  1555. package/src/view/controller/controls_v2/SliderController.d.ts.map +0 -1
  1556. package/src/view/controller/controls_v2/SliderController.ts +0 -10
  1557. package/src/view/elements/button/ButtonView.stories.d.ts +0 -2
  1558. package/src/view/elements/button/ButtonView.stories.d.ts.map +0 -1
  1559. package/src/view/elements/button/ButtonView.stories.js +0 -14
@@ -1,410 +1,405 @@
1
- import { assert } from "../../../core/assert.js";
2
- import Signal from "../../../core/events/signal/Signal.js";
3
- import { MalformedPacketError } from "../core/MalformedPacketError.js";
4
-
5
- // Bytes of fixed per-action framing that always precede the variable payload:
6
- // uint8 action_type_id + uint32 action_payload_len.
7
- const ACTION_HEADER_BYTES = 5;
8
-
9
- /**
10
- * Forwards action records between peers.
11
- *
12
- * **Send path** ({@link pack_for_peer}): walk the local action log over a
13
- * frame range, filter records by scope, and write a packet that contains
14
- * only the action portion of each record (no prior state — receivers don't
15
- * need it; their executors capture their own prior state).
16
- *
17
- * **Receive path** ({@link unpack_from_peer}): parse the packet, deserialize
18
- * each action via the registry, and run it through the local executor. The
19
- * executor logs it into the receiver's action log just like locally-originated
20
- * actions, capturing the receiver's prior state for its own rewind purposes.
21
- *
22
- * The Replicator is transport-agnostic: it produces and consumes
23
- * `BinaryBuffer`s. The orchestrator hands the produced buffer to a transport
24
- * and feeds the inbound buffer in the other direction.
25
- *
26
- * Wire format:
27
- * ```
28
- * loop while bytes remain:
29
- * varint: frame_number
30
- * varint: action_count
31
- * loop action_count times:
32
- * uint8: action_type_id
33
- * uint32: action_payload_len
34
- * bytes: action_payload
35
- * ```
36
- *
37
- * @author Alex Goldring
38
- * @copyright Company Named Limited (c) 2026
39
- */
40
- export class Replicator {
41
- #record_bounds;
42
- #applied_through;
43
-
44
-
45
- /**
46
- * @param {{
47
- * action_log: ActionLog,
48
- * action_registry: SimActionRegistry,
49
- * executor: SimActionExecutor,
50
- * slot_table: ReplicationSlotTable,
51
- * scope_filter: { is_entity_in_scope(peer_id: number, network_id: number): boolean },
52
- * }} options
53
- */
54
- constructor({ action_log, action_registry, executor, slot_table, scope_filter }) {
55
- /**
56
- * @type {ActionLog}
57
- */
58
- this.action_log = action_log;
59
-
60
- /**
61
- * @type {SimActionRegistry}
62
- */
63
- this.action_registry = action_registry;
64
-
65
- /**
66
- * @type {SimActionExecutor}
67
- */
68
- this.executor = executor;
69
-
70
- /**
71
- * @type {ReplicationSlotTable}
72
- */
73
- this.slot_table = slot_table;
74
-
75
- /**
76
- * Receives `network_id` (peer-shared) — NOT local `entity_id`. Replicator
77
- * translates via `slot_table.network_for(entity_id)` before calling.
78
- * @type {{ is_entity_in_scope(peer_id: number, network_id: number): boolean }}
79
- */
80
- this.scope_filter = scope_filter;
81
-
82
- /**
83
- * Pre-allocated scratch for record positions in the current pack pass.
84
- * Each slot holds (record_start, record_end) interleaved.
85
- * Grown on demand.
86
- * @type {Int32Array}
87
- * @private
88
- */
89
- this.#record_bounds = new Int32Array(64 * 2);
90
-
91
- /**
92
- * Per-peer high-watermark of the highest frame number already applied
93
- * via {@link unpack_from_peer}'s execute-on-arrival path. The action
94
- * stream re-sends every unacked frame each tick (back-fill for loss
95
- * tolerance), so the same frame arrives multiple times before its ack
96
- * round-trips. Re-running a frame would recycle its action-log slot and
97
- * re-capture prior state from the already-mutated world — corrupting the
98
- * rewind baseline. Skipping frames at or below the watermark keeps each
99
- * frame applied exactly once. Only used by the execute-on-arrival path;
100
- * the deferred path ({@link on_pending_action}) dedups downstream.
101
- * @type {Map<number, number>}
102
- * @private
103
- */
104
- this.#applied_through = new Map();
105
-
106
- /**
107
- * Fired after each per-frame action group is fully applied via
108
- * {@link unpack_from_peer}. Args: `(peer_id, frame_number)`.
109
- *
110
- * Subscribe to drive interpolation buffers, replay logs, diagnostics,
111
- * or anything else that needs to know "frame N from peer P has just
112
- * been applied to the local world."
113
- *
114
- * Fires in frame-ascending order within a single packet (the order
115
- * the wire format encodes them in).
116
- *
117
- * @type {Signal}
118
- */
119
- this.onFrameApplied = new Signal();
120
-
121
- /**
122
- * Optional deferral hook. When non-null, {@link unpack_from_peer}
123
- * does NOT touch the action log or executor — it parses the packet
124
- * and calls this function once per action with:
125
- *
126
- * `(peer_id, frame_number, action_type_id, in_buffer, payload_offset, payload_len)`
127
- *
128
- * The buffer is shared scratch; consumers must copy the payload bytes
129
- * if they need them to outlive the call. The orchestrator is then
130
- * responsible for executing the buffered actions in whatever order
131
- * the netcode model requires (e.g. rewind to oldest frame, stable-
132
- * sort by sender, replay forward).
133
- *
134
- * Leave null for "execute on arrival" semantics (the default and
135
- * what the loopback/single-orchestrator tests rely on).
136
- *
137
- * @type {((peer_id: number, frame_number: number, action_type_id: number, in_buffer: BinaryBuffer, payload_offset: number, payload_len: number) => void) | null}
138
- */
139
- this.on_pending_action = null;
140
- }
141
-
142
- /**
143
- * Pack actions from frames in `[start_frame, end_frame]` (inclusive) into
144
- * `out_buffer` for a given peer, applying the scope filter.
145
- *
146
- * Writes nothing if no in-scope actions are found.
147
- *
148
- * @param {number} peer_id
149
- * @param {number} start_frame inclusive; if no frame in range is in the log, that frame is skipped
150
- * @param {number} end_frame inclusive
151
- * @param {BinaryBuffer} out_buffer
152
- */
153
- pack_for_peer(peer_id, start_frame, end_frame, out_buffer) {
154
- assert.isNonNegativeInteger(peer_id, 'peer_id');
155
- assert.isNonNegativeInteger(start_frame, 'start_frame');
156
- assert.isNonNegativeInteger(end_frame, 'end_frame');
157
-
158
- for (let frame = start_frame; frame <= end_frame; frame++) {
159
- if (!this.action_log.has_frame(frame)) continue;
160
-
161
- const buffer = this.action_log.buffer_for(frame);
162
- const end = this.action_log.write_end_for(frame);
163
-
164
- // First pass: walk records, capture (start, end) for those in scope.
165
- let in_scope_count = 0;
166
- while (buffer.position < end) {
167
- const record_start = buffer.position;
168
- const in_scope = this.#scan_record_in_scope(buffer, peer_id);
169
- const record_end = buffer.position;
170
-
171
- if (in_scope) {
172
- if ((in_scope_count + 1) * 2 > this.#record_bounds.length) {
173
- this.#grow_record_bounds();
174
- }
175
- this.#record_bounds[in_scope_count * 2] = record_start;
176
- this.#record_bounds[in_scope_count * 2 + 1] = record_end;
177
- in_scope_count++;
178
- }
179
- }
180
-
181
- if (in_scope_count === 0) continue;
182
-
183
- // Second pass: write the frame header + each in-scope action's payload only.
184
- out_buffer.writeUintVar(frame);
185
- out_buffer.writeUintVar(in_scope_count);
186
-
187
- for (let i = 0; i < in_scope_count; i++) {
188
- const rs = this.#record_bounds[i * 2];
189
- buffer.position = rs;
190
- this.#copy_action_to(buffer, out_buffer);
191
- }
192
- }
193
- }
194
-
195
- /**
196
- * Parse and apply actions from `in_buffer` into the local world via the executor.
197
- * Each frame in the packet opens a new entry in the local action log under the
198
- * sender's frame number, ensuring the rewind/replay machinery sees consistent
199
- * frame indexing across peers.
200
- *
201
- * @param {number} peer_id
202
- * @param {BinaryBuffer} in_buffer
203
- * @param {number} in_buffer_end byte position to stop reading at
204
- */
205
- unpack_from_peer(peer_id, in_buffer, in_buffer_end) {
206
- assert.isNonNegativeInteger(peer_id, 'peer_id');
207
- assert.isNonNegativeInteger(in_buffer_end, 'in_buffer_end');
208
-
209
- // Deferral path: parse only, hand each action off to the orchestrator's
210
- // pending-input log. The action log and executor are not touched here —
211
- // the orchestrator decides when (and in what order) to apply actions
212
- // (e.g. rewind to oldest pending frame and replay forward with stable-
213
- // sort tie-breaking by sender, the way rollback netcode demands).
214
- if (this.on_pending_action !== null) {
215
- while (in_buffer.position < in_buffer_end) {
216
- const frame_number = in_buffer.readUintVar();
217
- const action_count = in_buffer.readUintVar();
218
- for (let i = 0; i < action_count; i++) {
219
- // Untrusted lengths: reject a header or payload that doesn't
220
- // fit the bytes actually received before advancing the cursor
221
- // past them (otherwise a crafted action_payload_len reads
222
- // stale/out-of-bounds bytes — process crash on OOB, cross-
223
- // packet leak otherwise). Real check: asserts strip in prod.
224
- if (in_buffer.position + ACTION_HEADER_BYTES > in_buffer_end) {
225
- throw new MalformedPacketError(`Replicator.unpack_from_peer: action header overruns packet (frame ${frame_number}, action ${i}/${action_count})`);
226
- }
227
- const action_type_id = in_buffer.readUint8();
228
- const action_payload_len = in_buffer.readUint32();
229
- if (in_buffer.position + action_payload_len > in_buffer_end) {
230
- throw new MalformedPacketError(`Replicator.unpack_from_peer: action payload of ${action_payload_len}B overruns packet (${in_buffer_end - in_buffer.position}B remain)`);
231
- }
232
- this.on_pending_action(
233
- peer_id, frame_number, action_type_id,
234
- in_buffer, in_buffer.position, action_payload_len,
235
- );
236
- in_buffer.position += action_payload_len;
237
- }
238
- }
239
- return;
240
- }
241
-
242
- const registry = this.action_registry;
243
-
244
- const applied_through = this.#applied_through.get(peer_id);
245
-
246
- while (in_buffer.position < in_buffer_end) {
247
- const frame_number = in_buffer.readUintVar();
248
- const action_count = in_buffer.readUintVar();
249
-
250
- // Skip frames already applied from this peer the action stream
251
- // re-sends every unacked frame each tick, and re-applying would
252
- // corrupt the action-log prior-state capture (see #applied_through).
253
- // The read cursor must still advance past this frame's actions.
254
- if (applied_through !== undefined && frame_number <= applied_through) {
255
- for (let i = 0; i < action_count; i++) {
256
- if (in_buffer.position + ACTION_HEADER_BYTES > in_buffer_end) {
257
- throw new MalformedPacketError(`Replicator.unpack_from_peer: action header overruns packet (skip; frame ${frame_number}, action ${i}/${action_count})`);
258
- }
259
- in_buffer.readUint8(); // action_type_id
260
- const skip_len = in_buffer.readUint32(); // action_payload_len
261
- if (in_buffer.position + skip_len > in_buffer_end) {
262
- throw new MalformedPacketError(`Replicator.unpack_from_peer: skipped action payload of ${skip_len}B overruns packet (${in_buffer_end - in_buffer.position}B remain)`);
263
- }
264
- in_buffer.position += skip_len; // skip action payload
265
- }
266
- continue;
267
- }
268
-
269
- this.action_log.begin_frame(frame_number);
270
- try {
271
- for (let i = 0; i < action_count; i++) {
272
- if (in_buffer.position + ACTION_HEADER_BYTES > in_buffer_end) {
273
- throw new MalformedPacketError(`Replicator.unpack_from_peer: action header overruns packet (frame ${frame_number}, action ${i}/${action_count})`);
274
- }
275
- const action_type_id = in_buffer.readUint8();
276
- const action_payload_len = in_buffer.readUint32();
277
- if (in_buffer.position + action_payload_len > in_buffer_end) {
278
- throw new MalformedPacketError(`Replicator.unpack_from_peer: action payload of ${action_payload_len}B overruns packet (${in_buffer_end - in_buffer.position}B remain)`);
279
- }
280
-
281
- const klass = registry.klass_for(action_type_id);
282
- if (klass === undefined) {
283
- // Unknown action skip the payload to stay aligned and continue.
284
- in_buffer.position += action_payload_len;
285
- continue;
286
- }
287
-
288
- const action = registry.acquire(klass);
289
- try {
290
- action.deserialize(in_buffer);
291
- // Sender of the action is the peer we received it from
292
- // (the wire format strips sender_id for security).
293
- this.executor.execute(action, peer_id);
294
- } finally {
295
- registry.release(action);
296
- }
297
- }
298
- } finally {
299
- this.action_log.end_frame();
300
- }
301
-
302
- // Advance the per-peer watermark so subsequent back-fill resends of
303
- // this frame are skipped. Frames within a packet are strictly
304
- // ascending, so this only ever moves forward.
305
- this.#applied_through.set(peer_id, frame_number);
306
-
307
- // Fire AFTER end_frame so handlers see consistent state and can
308
- // safely query the action log for the just-applied frame.
309
- this.onFrameApplied.send2(peer_id, frame_number);
310
- }
311
- }
312
-
313
- /**
314
- * Forget the per-peer apply watermark. Call when a peer disconnects so a
315
- * later peer reusing the same id (or the same peer resuming a session whose
316
- * frame numbering restarts) is not wrongly deduped against stale state.
317
- *
318
- * @param {number} peer_id
319
- */
320
- forget_peer(peer_id) {
321
- assert.isNonNegativeInteger(peer_id, 'peer_id');
322
- this.#applied_through.delete(peer_id);
323
- }
324
-
325
- /**
326
- * Walk a single record from the buffer's current position, advancing past it.
327
- * Returns true if any of the record's affected entities is in scope for `peer_id`,
328
- * or if the record has no affected entities (event-style action — always sent).
329
- *
330
- * @param {BinaryBuffer} buffer
331
- * @param {number} peer_id
332
- * @returns {boolean}
333
- * @private
334
- */
335
- #scan_record_in_scope(buffer, peer_id) {
336
- const prior_count = buffer.readUintVar();
337
-
338
- let any_in_scope = false;
339
- for (let i = 0; i < prior_count; i++) {
340
- const entity_id = buffer.readUintVar();
341
- // Translate local entity_id to network_id for the scope filter, which
342
- // operates on peer-shared identifiers. If `network_for` returns -1,
343
- // the entity is not currently networked on this sender — either it
344
- // was never replicated (local-only) or its slot was freed. In both
345
- // cases the receiver cannot reconstruct the reference (no slot maps
346
- // to it), so we skip rather than send a packet the receiver can't
347
- // safely apply.
348
- const network_id = this.slot_table.network_for(entity_id);
349
- if (network_id >= 0 && this.scope_filter.is_entity_in_scope(peer_id, network_id)) {
350
- any_in_scope = true;
351
- }
352
- buffer.readUint8(); // component_type_id
353
- const payload_len = buffer.readUint32();
354
- buffer.position += payload_len; // skip prior payload
355
- }
356
-
357
- // Skip the action payload too.
358
- buffer.readUint8(); // action_type_id
359
- buffer.readUint8(); // sender_id (local-only metadata, not sent)
360
- const action_payload_len = buffer.readUint32();
361
- buffer.position += action_payload_len;
362
-
363
- // Event-style actions (no affected components) are always in scope.
364
- return prior_count === 0 ? true : any_in_scope;
365
- }
366
-
367
- /**
368
- * Buffer's current position is the start of an action record. Skip the
369
- * prior_state section, then copy the action portion (type_id + len + payload)
370
- * to `out_buffer`. Buffer position advances to the end of the record.
371
- *
372
- * @param {BinaryBuffer} buffer source action-log frame
373
- * @param {BinaryBuffer} out_buffer destination packet
374
- * @private
375
- */
376
- #copy_action_to(buffer, out_buffer) {
377
- // Skip prior_state.
378
- const prior_count = buffer.readUintVar();
379
- for (let i = 0; i < prior_count; i++) {
380
- buffer.readUintVar(); // entity_id
381
- buffer.readUint8(); // component_type_id
382
- const len = buffer.readUint32();
383
- buffer.position += len; // skip prior payload
384
- }
385
-
386
- // Copy action portion: type_id + len + payload. The local-only
387
- // sender_id byte is STRIPPED here over-the-wire format stays
388
- // (type_id, len, payload) and the receiver derives sender from
389
- // the packet's peer_id. Including sender_id on the wire would
390
- // let a hostile peer impersonate other peers' actions.
391
- const action_type_id = buffer.readUint8();
392
- buffer.readUint8(); // sender_id — discarded, not sent on the wire
393
- const action_payload_len = buffer.readUint32();
394
-
395
- out_buffer.writeUint8(action_type_id);
396
- out_buffer.writeUint32(action_payload_len);
397
- out_buffer.writeBytes(buffer.raw_bytes, buffer.position, action_payload_len);
398
- buffer.position += action_payload_len;
399
- }
400
-
401
- /**
402
- * @private
403
- */
404
- #grow_record_bounds() {
405
- const old = this.#record_bounds;
406
- const next = new Int32Array(old.length * 2);
407
- next.set(old);
408
- this.#record_bounds = next;
409
- }
410
- }
1
+ import { assert } from "../../../core/assert.js";
2
+ import Signal from "../../../core/events/signal/Signal.js";
3
+ import { MalformedPacketError } from "../core/MalformedPacketError.js";
4
+
5
+ // Bytes of fixed per-action framing that always precede the variable payload:
6
+ // uint8 action_type_id + uint32 action_payload_len.
7
+ const ACTION_HEADER_BYTES = 5;
8
+
9
+ /**
10
+ * Forwards action records between peers.
11
+ *
12
+ * **Send path** ({@link pack_for_peer}): walk the local action log over a
13
+ * frame range, filter records by scope, and write a packet that contains
14
+ * only the action portion of each record (no prior state — receivers don't
15
+ * need it; their executors capture their own prior state).
16
+ *
17
+ * **Receive path** ({@link unpack_from_peer}): parse the packet, deserialize
18
+ * each action via the registry, and run it through the local executor. The
19
+ * executor logs it into the receiver's action log just like locally-originated
20
+ * actions, capturing the receiver's prior state for its own rewind purposes.
21
+ *
22
+ * The Replicator is transport-agnostic: it produces and consumes
23
+ * `BinaryBuffer`s. The orchestrator hands the produced buffer to a transport
24
+ * and feeds the inbound buffer in the other direction.
25
+ *
26
+ * Wire format:
27
+ * ```
28
+ * loop while bytes remain:
29
+ * varint: frame_number
30
+ * varint: action_count
31
+ * loop action_count times:
32
+ * uint8: action_type_id
33
+ * uint32: action_payload_len
34
+ * bytes: action_payload
35
+ * ```
36
+ *
37
+ * @author Alex Goldring
38
+ * @copyright Company Named Limited (c) 2026
39
+ */
40
+ export class Replicator {
41
+ /**
42
+ * Pre-allocated scratch for record positions in the current pack pass.
43
+ * Each slot holds (record_start, record_end) interleaved.
44
+ * Grown on demand.
45
+ * @type {Int32Array}
46
+ * @private
47
+ */
48
+ #record_bounds = new Int32Array(64 * 2);
49
+ /**
50
+ * Per-peer high-watermark of the highest frame number already applied
51
+ * via {@link unpack_from_peer}'s execute-on-arrival path. The action
52
+ * stream re-sends every unacked frame each tick (back-fill for loss
53
+ * tolerance), so the same frame arrives multiple times before its ack
54
+ * round-trips. Re-running a frame would recycle its action-log slot and
55
+ * re-capture prior state from the already-mutated world — corrupting the
56
+ * rewind baseline. Skipping frames at or below the watermark keeps each
57
+ * frame applied exactly once. Only used by the execute-on-arrival path;
58
+ * the deferred path ({@link on_pending_action}) dedups downstream.
59
+ * @type {Map<number, number>}
60
+ * @private
61
+ */
62
+ #applied_through = new Map();
63
+
64
+ /**
65
+ * Fired after each per-frame action group is fully applied via
66
+ * {@link unpack_from_peer}. Args: `(peer_id, frame_number)`.
67
+ *
68
+ * Subscribe to drive interpolation buffers, replay logs, diagnostics,
69
+ * or anything else that needs to know "frame N from peer P has just
70
+ * been applied to the local world."
71
+ *
72
+ * Fires in frame-ascending order within a single packet (the order
73
+ * the wire format encodes them in).
74
+ *
75
+ * @type {Signal}
76
+ */
77
+ onFrameApplied = new Signal();
78
+
79
+ /**
80
+ * Optional deferral hook. When non-null, {@link unpack_from_peer}
81
+ * does NOT touch the action log or executor — it parses the packet
82
+ * and calls this function once per action with:
83
+ *
84
+ * `(peer_id, frame_number, action_type_id, in_buffer, payload_offset, payload_len)`
85
+ *
86
+ * The buffer is shared scratch; consumers must copy the payload bytes
87
+ * if they need them to outlive the call. The orchestrator is then
88
+ * responsible for executing the buffered actions in whatever order
89
+ * the netcode model requires (e.g. rewind to oldest frame, stable-
90
+ * sort by sender, replay forward).
91
+ *
92
+ * Leave null for "execute on arrival" semantics (the default and
93
+ * what the loopback/single-orchestrator tests rely on).
94
+ *
95
+ * @type {((peer_id: number, frame_number: number, action_type_id: number, in_buffer: BinaryBuffer, payload_offset: number, payload_len: number) => void) | null}
96
+ */
97
+ on_pending_action = null;
98
+
99
+ /**
100
+ * @param {{
101
+ * action_log: ActionLog,
102
+ * action_registry: SimActionRegistry,
103
+ * executor: SimActionExecutor,
104
+ * slot_table: ReplicationSlotTable,
105
+ * scope_filter: { is_entity_in_scope(peer_id: number, network_id: number): boolean },
106
+ * }} options
107
+ */
108
+ constructor({ action_log, action_registry, executor, slot_table, scope_filter }) {
109
+ /**
110
+ * @type {ActionLog}
111
+ */
112
+ this.action_log = action_log;
113
+
114
+ /**
115
+ * @type {SimActionRegistry}
116
+ */
117
+ this.action_registry = action_registry;
118
+
119
+ /**
120
+ * @type {SimActionExecutor}
121
+ */
122
+ this.executor = executor;
123
+
124
+ /**
125
+ * @type {ReplicationSlotTable}
126
+ */
127
+ this.slot_table = slot_table;
128
+
129
+ /**
130
+ * Receives `network_id` (peer-shared) NOT local `entity_id`. Replicator
131
+ * translates via `slot_table.network_for(entity_id)` before calling.
132
+ * @type {{ is_entity_in_scope(peer_id: number, network_id: number): boolean }}
133
+ */
134
+ this.scope_filter = scope_filter;
135
+ }
136
+
137
+ /**
138
+ * Pack actions from frames in `[start_frame, end_frame]` (inclusive) into
139
+ * `out_buffer` for a given peer, applying the scope filter.
140
+ *
141
+ * Writes nothing if no in-scope actions are found.
142
+ *
143
+ * @param {number} peer_id
144
+ * @param {number} start_frame inclusive; if no frame in range is in the log, that frame is skipped
145
+ * @param {number} end_frame inclusive
146
+ * @param {BinaryBuffer} out_buffer
147
+ */
148
+ pack_for_peer(peer_id, start_frame, end_frame, out_buffer) {
149
+ assert.isNonNegativeInteger(peer_id, 'peer_id');
150
+ assert.isNonNegativeInteger(start_frame, 'start_frame');
151
+ assert.isNonNegativeInteger(end_frame, 'end_frame');
152
+
153
+ for (let frame = start_frame; frame <= end_frame; frame++) {
154
+ if (!this.action_log.has_frame(frame)) continue;
155
+
156
+ const buffer = this.action_log.buffer_for(frame);
157
+ const end = this.action_log.write_end_for(frame);
158
+
159
+ // First pass: walk records, capture (start, end) for those in scope.
160
+ let in_scope_count = 0;
161
+ while (buffer.position < end) {
162
+ const record_start = buffer.position;
163
+ const in_scope = this.#scan_record_in_scope(buffer, peer_id);
164
+ const record_end = buffer.position;
165
+
166
+ if (in_scope) {
167
+ if ((in_scope_count + 1) * 2 > this.#record_bounds.length) {
168
+ this.#grow_record_bounds();
169
+ }
170
+ this.#record_bounds[in_scope_count * 2] = record_start;
171
+ this.#record_bounds[in_scope_count * 2 + 1] = record_end;
172
+ in_scope_count++;
173
+ }
174
+ }
175
+
176
+ if (in_scope_count === 0) continue;
177
+
178
+ // Second pass: write the frame header + each in-scope action's payload only.
179
+ out_buffer.writeUintVar(frame);
180
+ out_buffer.writeUintVar(in_scope_count);
181
+
182
+ for (let i = 0; i < in_scope_count; i++) {
183
+ const rs = this.#record_bounds[i * 2];
184
+ buffer.position = rs;
185
+ this.#copy_action_to(buffer, out_buffer);
186
+ }
187
+ }
188
+ }
189
+
190
+ /**
191
+ * Parse and apply actions from `in_buffer` into the local world via the executor.
192
+ * Each frame in the packet opens a new entry in the local action log under the
193
+ * sender's frame number, ensuring the rewind/replay machinery sees consistent
194
+ * frame indexing across peers.
195
+ *
196
+ * @param {number} peer_id
197
+ * @param {BinaryBuffer} in_buffer
198
+ * @param {number} in_buffer_end byte position to stop reading at
199
+ */
200
+ unpack_from_peer(peer_id, in_buffer, in_buffer_end) {
201
+ assert.isNonNegativeInteger(peer_id, 'peer_id');
202
+ assert.isNonNegativeInteger(in_buffer_end, 'in_buffer_end');
203
+
204
+ // Deferral path: parse only, hand each action off to the orchestrator's
205
+ // pending-input log. The action log and executor are not touched here —
206
+ // the orchestrator decides when (and in what order) to apply actions
207
+ // (e.g. rewind to oldest pending frame and replay forward with stable-
208
+ // sort tie-breaking by sender, the way rollback netcode demands).
209
+ if (this.on_pending_action !== null) {
210
+ while (in_buffer.position < in_buffer_end) {
211
+ const frame_number = in_buffer.readUintVar();
212
+ const action_count = in_buffer.readUintVar();
213
+ for (let i = 0; i < action_count; i++) {
214
+ // Untrusted lengths: reject a header or payload that doesn't
215
+ // fit the bytes actually received before advancing the cursor
216
+ // past them (otherwise a crafted action_payload_len reads
217
+ // stale/out-of-bounds bytes — process crash on OOB, cross-
218
+ // packet leak otherwise). Real check: asserts strip in prod.
219
+ if (in_buffer.position + ACTION_HEADER_BYTES > in_buffer_end) {
220
+ throw new MalformedPacketError(`Replicator.unpack_from_peer: action header overruns packet (frame ${frame_number}, action ${i}/${action_count})`);
221
+ }
222
+ const action_type_id = in_buffer.readUint8();
223
+ const action_payload_len = in_buffer.readUint32();
224
+ if (in_buffer.position + action_payload_len > in_buffer_end) {
225
+ throw new MalformedPacketError(`Replicator.unpack_from_peer: action payload of ${action_payload_len}B overruns packet (${in_buffer_end - in_buffer.position}B remain)`);
226
+ }
227
+ this.on_pending_action(
228
+ peer_id, frame_number, action_type_id,
229
+ in_buffer, in_buffer.position, action_payload_len,
230
+ );
231
+ in_buffer.position += action_payload_len;
232
+ }
233
+ }
234
+ return;
235
+ }
236
+
237
+ const registry = this.action_registry;
238
+
239
+ const applied_through = this.#applied_through.get(peer_id);
240
+
241
+ while (in_buffer.position < in_buffer_end) {
242
+ const frame_number = in_buffer.readUintVar();
243
+ const action_count = in_buffer.readUintVar();
244
+
245
+ // Skip frames already applied from this peer — the action stream
246
+ // re-sends every unacked frame each tick, and re-applying would
247
+ // corrupt the action-log prior-state capture (see #applied_through).
248
+ // The read cursor must still advance past this frame's actions.
249
+ if (applied_through !== undefined && frame_number <= applied_through) {
250
+ for (let i = 0; i < action_count; i++) {
251
+ if (in_buffer.position + ACTION_HEADER_BYTES > in_buffer_end) {
252
+ throw new MalformedPacketError(`Replicator.unpack_from_peer: action header overruns packet (skip; frame ${frame_number}, action ${i}/${action_count})`);
253
+ }
254
+ in_buffer.readUint8(); // action_type_id
255
+ const skip_len = in_buffer.readUint32(); // action_payload_len
256
+ if (in_buffer.position + skip_len > in_buffer_end) {
257
+ throw new MalformedPacketError(`Replicator.unpack_from_peer: skipped action payload of ${skip_len}B overruns packet (${in_buffer_end - in_buffer.position}B remain)`);
258
+ }
259
+ in_buffer.position += skip_len; // skip action payload
260
+ }
261
+ continue;
262
+ }
263
+
264
+ this.action_log.begin_frame(frame_number);
265
+ try {
266
+ for (let i = 0; i < action_count; i++) {
267
+ if (in_buffer.position + ACTION_HEADER_BYTES > in_buffer_end) {
268
+ throw new MalformedPacketError(`Replicator.unpack_from_peer: action header overruns packet (frame ${frame_number}, action ${i}/${action_count})`);
269
+ }
270
+ const action_type_id = in_buffer.readUint8();
271
+ const action_payload_len = in_buffer.readUint32();
272
+ if (in_buffer.position + action_payload_len > in_buffer_end) {
273
+ throw new MalformedPacketError(`Replicator.unpack_from_peer: action payload of ${action_payload_len}B overruns packet (${in_buffer_end - in_buffer.position}B remain)`);
274
+ }
275
+
276
+ const klass = registry.klass_for(action_type_id);
277
+ if (klass === undefined) {
278
+ // Unknown action skip the payload to stay aligned and continue.
279
+ in_buffer.position += action_payload_len;
280
+ continue;
281
+ }
282
+
283
+ const action = registry.acquire(klass);
284
+ try {
285
+ action.deserialize(in_buffer);
286
+ // Sender of the action is the peer we received it from
287
+ // (the wire format strips sender_id for security).
288
+ this.executor.execute(action, peer_id);
289
+ } finally {
290
+ registry.release(action);
291
+ }
292
+ }
293
+ } finally {
294
+ this.action_log.end_frame();
295
+ }
296
+
297
+ // Advance the per-peer watermark so subsequent back-fill resends of
298
+ // this frame are skipped. Frames within a packet are strictly
299
+ // ascending, so this only ever moves forward.
300
+ this.#applied_through.set(peer_id, frame_number);
301
+
302
+ // Fire AFTER end_frame so handlers see consistent state and can
303
+ // safely query the action log for the just-applied frame.
304
+ this.onFrameApplied.send2(peer_id, frame_number);
305
+ }
306
+ }
307
+
308
+ /**
309
+ * Forget the per-peer apply watermark. Call when a peer disconnects so a
310
+ * later peer reusing the same id (or the same peer resuming a session whose
311
+ * frame numbering restarts) is not wrongly deduped against stale state.
312
+ *
313
+ * @param {number} peer_id
314
+ */
315
+ forget_peer(peer_id) {
316
+ assert.isNonNegativeInteger(peer_id, 'peer_id');
317
+ this.#applied_through.delete(peer_id);
318
+ }
319
+
320
+ /**
321
+ * Walk a single record from the buffer's current position, advancing past it.
322
+ * Returns true if any of the record's affected entities is in scope for `peer_id`,
323
+ * or if the record has no affected entities (event-style action — always sent).
324
+ *
325
+ * @param {BinaryBuffer} buffer
326
+ * @param {number} peer_id
327
+ * @returns {boolean}
328
+ * @private
329
+ */
330
+ #scan_record_in_scope(buffer, peer_id) {
331
+ const prior_count = buffer.readUintVar();
332
+
333
+ let any_in_scope = false;
334
+ for (let i = 0; i < prior_count; i++) {
335
+ const entity_id = buffer.readUintVar();
336
+ // Translate local entity_id to network_id for the scope filter, which
337
+ // operates on peer-shared identifiers. If `network_for` returns -1,
338
+ // the entity is not currently networked on this sender — either it
339
+ // was never replicated (local-only) or its slot was freed. In both
340
+ // cases the receiver cannot reconstruct the reference (no slot maps
341
+ // to it), so we skip rather than send a packet the receiver can't
342
+ // safely apply.
343
+ const network_id = this.slot_table.network_for(entity_id);
344
+ if (network_id >= 0 && this.scope_filter.is_entity_in_scope(peer_id, network_id)) {
345
+ any_in_scope = true;
346
+ }
347
+ buffer.readUint8(); // component_type_id
348
+ const payload_len = buffer.readUint32();
349
+ buffer.position += payload_len; // skip prior payload
350
+ }
351
+
352
+ // Skip the action payload too.
353
+ buffer.readUint8(); // action_type_id
354
+ buffer.readUint8(); // sender_id (local-only metadata, not sent)
355
+ const action_payload_len = buffer.readUint32();
356
+ buffer.position += action_payload_len;
357
+
358
+ // Event-style actions (no affected components) are always in scope.
359
+ return prior_count === 0 ? true : any_in_scope;
360
+ }
361
+
362
+ /**
363
+ * Buffer's current position is the start of an action record. Skip the
364
+ * prior_state section, then copy the action portion (type_id + len + payload)
365
+ * to `out_buffer`. Buffer position advances to the end of the record.
366
+ *
367
+ * @param {BinaryBuffer} buffer source action-log frame
368
+ * @param {BinaryBuffer} out_buffer destination packet
369
+ * @private
370
+ */
371
+ #copy_action_to(buffer, out_buffer) {
372
+ // Skip prior_state.
373
+ const prior_count = buffer.readUintVar();
374
+ for (let i = 0; i < prior_count; i++) {
375
+ buffer.readUintVar(); // entity_id
376
+ buffer.readUint8(); // component_type_id
377
+ const len = buffer.readUint32();
378
+ buffer.position += len; // skip prior payload
379
+ }
380
+
381
+ // Copy action portion: type_id + len + payload. The local-only
382
+ // sender_id byte is STRIPPED here — over-the-wire format stays
383
+ // (type_id, len, payload) and the receiver derives sender from
384
+ // the packet's peer_id. Including sender_id on the wire would
385
+ // let a hostile peer impersonate other peers' actions.
386
+ const action_type_id = buffer.readUint8();
387
+ buffer.readUint8(); // sender_id discarded, not sent on the wire
388
+ const action_payload_len = buffer.readUint32();
389
+
390
+ out_buffer.writeUint8(action_type_id);
391
+ out_buffer.writeUint32(action_payload_len);
392
+ out_buffer.writeBytes(buffer.raw_bytes, buffer.position, action_payload_len);
393
+ buffer.position += action_payload_len;
394
+ }
395
+
396
+ /**
397
+ * @private
398
+ */
399
+ #grow_record_bounds() {
400
+ const old = this.#record_bounds;
401
+ const next = new Int32Array(old.length * 2);
402
+ next.set(old);
403
+ this.#record_bounds = next;
404
+ }
405
+ }