@woosh/meep-engine 3.45.0 → 3.47.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 (435) hide show
  1. package/build/bundle-worker-terrain.js +1 -1
  2. package/editor/actions/concrete/TransformModifyAction.d.ts.map +1 -1
  3. package/editor/actions/concrete/TransformModifyAction.js +10 -2
  4. package/editor/ecs/component/FieldDescriptor.js +15 -0
  5. package/editor/ecs/component/createObjectEditor.js +41 -12
  6. package/editor/ecs/component/editors/ecs/Transform64Editor.d.ts.map +1 -1
  7. package/editor/ecs/component/editors/ecs/Transform64Editor.js +77 -70
  8. package/editor/tools/TransformToolV2.d.ts.map +1 -1
  9. package/editor/tools/TransformToolV2.js +4 -0
  10. package/editor/tools/v2/TransformControls.d.ts.map +1 -1
  11. package/editor/tools/v2/TransformControls.js +7 -0
  12. package/editor/view/ecs/EntityEditor.d.ts.map +1 -1
  13. package/editor/view/ecs/EntityEditor.js +4 -2
  14. package/package.json +1 -1
  15. package/src/core/assert.d.ts.map +1 -1
  16. package/src/core/assert.js +5 -1
  17. package/src/core/binary/hash/XXH128Hash.d.ts +1 -37
  18. package/src/core/binary/hash/XXH128Hash.d.ts.map +1 -1
  19. package/src/core/binary/hash/XXH128Hash.js +4 -55
  20. package/src/core/binary/hash/XXH3_SECRET.d.ts +1 -12
  21. package/src/core/binary/hash/XXH3_SECRET.d.ts.map +1 -1
  22. package/src/core/binary/hash/XXH3_SECRET.js +4 -25
  23. package/src/core/binary/hash/crc32.d.ts +1 -15
  24. package/src/core/binary/hash/crc32.d.ts.map +1 -1
  25. package/src/core/binary/hash/crc32.js +4 -96
  26. package/src/core/binary/hash/xxh3_128.d.ts +1 -9
  27. package/src/core/binary/hash/xxh3_128.d.ts.map +1 -1
  28. package/src/core/binary/hash/xxh3_128.js +4 -341
  29. package/src/core/binary/hash/xxh3_64.d.ts +1 -8
  30. package/src/core/binary/hash/xxh3_64.d.ts.map +1 -1
  31. package/src/core/binary/hash/xxh3_64.js +4 -241
  32. package/src/core/binary/hash/xxh3_common.d.ts +1 -223
  33. package/src/core/binary/hash/xxh3_common.d.ts.map +1 -1
  34. package/src/core/binary/hash/xxh3_common.js +90 -476
  35. package/src/core/collection/array/array_insert_at.d.ts +16 -0
  36. package/src/core/collection/array/array_insert_at.d.ts.map +1 -0
  37. package/src/core/collection/array/array_insert_at.js +32 -0
  38. package/src/core/collection/array/array_remove_at.d.ts +15 -0
  39. package/src/core/collection/array/array_remove_at.d.ts.map +1 -0
  40. package/src/core/collection/array/array_remove_at.js +30 -0
  41. package/src/core/collection/array/combine_hash.d.ts +6 -0
  42. package/src/core/collection/array/combine_hash.d.ts.map +1 -1
  43. package/src/core/collection/array/combine_hash.js +6 -0
  44. package/src/core/function/FunctionCompiler.js +2 -2
  45. package/src/core/geom/3d/mat4/m4_multiply.d.ts +3 -0
  46. package/src/core/geom/3d/mat4/m4_multiply.d.ts.map +1 -1
  47. package/src/core/geom/3d/mat4/m4_multiply.js +3 -0
  48. package/src/core/geom/3d/mat4/m4_multiply_f64.d.ts +30 -0
  49. package/src/core/geom/3d/mat4/m4_multiply_f64.d.ts.map +1 -0
  50. package/src/core/geom/3d/mat4/m4_multiply_f64.js +106 -0
  51. package/src/core/geom/3d/quaternion/quat3_look_rotation.d.ts +37 -0
  52. package/src/core/geom/3d/quaternion/quat3_look_rotation.d.ts.map +1 -0
  53. package/src/core/geom/3d/quaternion/quat3_look_rotation.js +172 -0
  54. package/src/core/geom/ConicRay.js +2 -2
  55. package/src/core/geom/Quaternion.d.ts +1 -0
  56. package/src/core/geom/Quaternion.d.ts.map +1 -1
  57. package/src/core/geom/Quaternion.js +12 -48
  58. package/src/core/geom/Vector4.d.ts.map +1 -1
  59. package/src/core/geom/Vector4.js +8 -5
  60. package/src/core/math/hash/XXH128Hash.d.ts +38 -0
  61. package/src/core/math/hash/XXH128Hash.d.ts.map +1 -0
  62. package/src/core/math/hash/XXH128Hash.js +55 -0
  63. package/src/core/math/hash/XXH3_SECRET.d.ts +13 -0
  64. package/src/core/math/hash/XXH3_SECRET.d.ts.map +1 -0
  65. package/src/core/math/hash/XXH3_SECRET.js +25 -0
  66. package/src/core/math/hash/crc32.d.ts +16 -0
  67. package/src/core/math/hash/crc32.d.ts.map +1 -0
  68. package/src/core/math/hash/crc32.js +96 -0
  69. package/src/core/math/hash/xxh3_128.d.ts +10 -0
  70. package/src/core/math/hash/xxh3_128.d.ts.map +1 -0
  71. package/src/core/math/hash/xxh3_128.js +341 -0
  72. package/src/core/math/hash/xxh3_64.d.ts +9 -0
  73. package/src/core/math/hash/xxh3_64.d.ts.map +1 -0
  74. package/src/core/math/hash/xxh3_64.js +241 -0
  75. package/src/core/math/hash/xxh3_common.d.ts +224 -0
  76. package/src/core/math/hash/xxh3_common.d.ts.map +1 -0
  77. package/src/core/math/hash/xxh3_common.js +476 -0
  78. package/src/core/math/lookup/ParameterLookupTable.js +2 -2
  79. package/src/core/model/node-graph/node/NodeInstancePortReference.js +2 -2
  80. package/src/core/model/reactive/model/ReactiveBinaryExpression.js +2 -2
  81. package/src/core/model/reactive/model/terminal/ReactiveReference.js +2 -2
  82. package/src/engine/Engine.d.ts.map +1 -1
  83. package/src/engine/Engine.js +9 -4
  84. package/src/engine/asset/AssetDescription.js +2 -2
  85. package/src/engine/ecs/animation/Animation.js +2 -2
  86. package/src/engine/ecs/animation/AnimationClip.d.ts.map +1 -1
  87. package/src/engine/ecs/animation/AnimationClip.js +7 -5
  88. package/src/engine/ecs/gui/GUIElement.d.ts.map +1 -1
  89. package/src/engine/ecs/gui/GUIElement.js +7 -5
  90. package/src/engine/ecs/gui/hud/HeadsUpDisplay.js +2 -2
  91. package/src/engine/ecs/gui/position/ViewportPosition.d.ts.map +1 -1
  92. package/src/engine/ecs/gui/position/ViewportPosition.js +11 -7
  93. package/src/engine/ecs/storage/populateEngineSerializationRegistry.d.ts.map +1 -1
  94. package/src/engine/ecs/storage/populateEngineSerializationRegistry.js +10 -0
  95. package/src/engine/ecs/transform/Transform64.d.ts +1 -1
  96. package/src/engine/ecs/transform/Transform64.d.ts.map +1 -1
  97. package/src/engine/ecs/transform/Transform64.js +5 -4
  98. package/src/engine/ecs/transform/t64_look_rotation.d.ts +4 -4
  99. package/src/engine/ecs/transform/t64_look_rotation.d.ts.map +1 -1
  100. package/src/engine/ecs/transform/t64_look_rotation.js +7 -18
  101. package/src/engine/graphics/ecs/animation/animator/AnimationClip.d.ts.map +1 -1
  102. package/src/engine/graphics/ecs/animation/animator/AnimationClip.js +8 -5
  103. package/src/engine/graphics/ecs/animation/animator/AnimationClipDefinition.js +2 -2
  104. package/src/engine/graphics/ecs/animation/animator/AnimationNotification.js +2 -2
  105. package/src/engine/graphics/ecs/animation/animator/AnimationNotificationDefinition.js +2 -2
  106. package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationGraphDefinition.js +2 -2
  107. package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationStateDefinition.js +2 -2
  108. package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationTransitionDefinition.d.ts.map +1 -1
  109. package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationTransitionDefinition.js +8 -5
  110. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.d.ts.map +1 -1
  111. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.js +30 -1
  112. package/src/engine/graphics/ecs/decal/v2/Decal.d.ts.map +1 -1
  113. package/src/engine/graphics/ecs/decal/v2/Decal.js +9 -8
  114. package/src/engine/graphics/render/frame_graph/resource/TextureResourceDescriptor.d.ts.map +1 -1
  115. package/src/engine/graphics/render/frame_graph/resource/TextureResourceDescriptor.js +9 -6
  116. package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts +6 -0
  117. package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts.map +1 -1
  118. package/src/engine/graphics3/GPUParticleEmitterSystem.js +72 -29
  119. package/src/engine/graphics3/ParticipatingMedia.js +204 -204
  120. package/src/engine/graphics3/animation/AnimationClips.d.ts +5 -0
  121. package/src/engine/graphics3/animation/AnimationClips.d.ts.map +1 -1
  122. package/src/engine/graphics3/animation/AnimationClips.js +5 -0
  123. package/src/engine/grid/obstacle/GridObstacle.js +2 -2
  124. package/src/engine/input/devices/KeyboardDevice.d.ts +1 -0
  125. package/src/engine/input/devices/KeyboardDevice.d.ts.map +1 -1
  126. package/src/engine/input/devices/KeyboardDevice.js +7 -6
  127. package/src/engine/intelligence/behavior/selector/WeightedElement.js +2 -2
  128. package/src/engine/interpolation/Interpolated.js +2 -2
  129. package/src/engine/navigation/ecs/path_following/PathFollowingSystem.d.ts.map +1 -1
  130. package/src/engine/navigation/ecs/path_following/PathFollowingSystem.js +15 -2
  131. package/src/engine/network/CONGESTION_CONTROL.md +9 -9
  132. package/src/engine/network/MESSAGE_TRANSPORT.md +364 -0
  133. package/src/engine/network/NetworkSession.d.ts +31 -11
  134. package/src/engine/network/NetworkSession.d.ts.map +1 -1
  135. package/src/engine/network/NetworkSession.js +453 -286
  136. package/src/engine/network/README.md +77 -27
  137. package/src/engine/network/SMOOTHNESS_DESIGN.md +13 -5
  138. package/src/engine/network/diagnostics/BandwidthMeter.d.ts +1 -1
  139. package/src/engine/network/diagnostics/BandwidthMeter.js +1 -1
  140. package/src/engine/network/orchestrator/HostJoin.d.ts +111 -0
  141. package/src/engine/network/orchestrator/HostJoin.d.ts.map +1 -0
  142. package/src/engine/network/orchestrator/HostJoin.js +271 -0
  143. package/src/engine/network/orchestrator/NetworkPeer.d.ts +151 -112
  144. package/src/engine/network/orchestrator/NetworkPeer.d.ts.map +1 -1
  145. package/src/engine/network/orchestrator/NetworkPeer.js +450 -499
  146. package/src/engine/network/orchestrator/PendingSlices.d.ts +30 -0
  147. package/src/engine/network/orchestrator/PendingSlices.d.ts.map +1 -0
  148. package/src/engine/network/orchestrator/PendingSlices.js +83 -0
  149. package/src/engine/network/orchestrator/ReliableFrames.d.ts +34 -0
  150. package/src/engine/network/orchestrator/ReliableFrames.d.ts.map +1 -0
  151. package/src/engine/network/orchestrator/ReliableFrames.js +96 -0
  152. package/src/engine/network/orchestrator/ServerAuthoritativeClient.d.ts +77 -10
  153. package/src/engine/network/orchestrator/ServerAuthoritativeClient.d.ts.map +1 -1
  154. package/src/engine/network/orchestrator/ServerAuthoritativeClient.js +236 -61
  155. package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts +20 -6
  156. package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts.map +1 -1
  157. package/src/engine/network/orchestrator/ServerAuthoritativeServer.js +33 -8
  158. package/src/engine/network/replication/Replicator.d.ts.map +1 -1
  159. package/src/engine/network/replication/Replicator.js +7 -1
  160. package/src/engine/network/sim/ActionLog.d.ts +32 -5
  161. package/src/engine/network/sim/ActionLog.d.ts.map +1 -1
  162. package/src/engine/network/sim/ActionLog.js +47 -5
  163. package/src/engine/network/sim/SimActionExecutor.d.ts +42 -2
  164. package/src/engine/network/sim/SimActionExecutor.d.ts.map +1 -1
  165. package/src/engine/network/sim/SimActionExecutor.js +100 -4
  166. package/src/engine/network/sim/Snapshotter.d.ts +12 -0
  167. package/src/engine/network/sim/Snapshotter.d.ts.map +1 -1
  168. package/src/engine/network/sim/Snapshotter.js +43 -0
  169. package/src/engine/network/state/Baseline.d.ts +1 -1
  170. package/src/engine/network/state/Baseline.js +1 -1
  171. package/src/engine/network/state/FrameBufferRing.d.ts +25 -6
  172. package/src/engine/network/state/FrameBufferRing.d.ts.map +1 -1
  173. package/src/engine/network/state/FrameBufferRing.js +51 -6
  174. package/src/engine/network/state/InputRing.d.ts +4 -0
  175. package/src/engine/network/state/InputRing.d.ts.map +1 -1
  176. package/src/engine/network/state/InputRing.js +7 -0
  177. package/src/engine/network/transport/DeferredTransport.d.ts.map +1 -1
  178. package/src/engine/network/transport/DeferredTransport.js +1 -0
  179. package/src/engine/network/transport/LoopbackTransport.d.ts.map +1 -1
  180. package/src/engine/network/transport/LoopbackTransport.js +4 -2
  181. package/src/engine/network/transport/Transport.d.ts +7 -0
  182. package/src/engine/network/transport/Transport.d.ts.map +1 -1
  183. package/src/engine/network/transport/Transport.js +8 -0
  184. package/src/engine/network/transport/adapters/NodeUDPTransport.d.ts.map +1 -1
  185. package/src/engine/network/transport/adapters/NodeUDPTransport.js +20 -5
  186. package/src/engine/network/transport/adapters/WebRTCDataChannelTransport.d.ts.map +1 -1
  187. package/src/engine/network/transport/adapters/WebRTCDataChannelTransport.js +8 -0
  188. package/src/engine/network/transport/adapters/WebTransportTransport.d.ts.map +1 -1
  189. package/src/engine/network/transport/adapters/WebTransportTransport.js +6 -0
  190. package/src/engine/network/transport/connection/Connection.d.ts +191 -0
  191. package/src/engine/network/transport/connection/Connection.d.ts.map +1 -0
  192. package/src/engine/network/transport/connection/Connection.js +1262 -0
  193. package/src/engine/network/transport/connection/RangeSet.d.ts +94 -0
  194. package/src/engine/network/transport/connection/RangeSet.d.ts.map +1 -0
  195. package/src/engine/network/transport/connection/RangeSet.js +260 -0
  196. package/src/engine/network/transport/connection/RxStream.d.ts +48 -0
  197. package/src/engine/network/transport/connection/RxStream.d.ts.map +1 -0
  198. package/src/engine/network/transport/connection/RxStream.js +211 -0
  199. package/src/engine/network/transport/connection/TxStream.d.ts +90 -0
  200. package/src/engine/network/transport/connection/TxStream.d.ts.map +1 -0
  201. package/src/engine/network/transport/connection/TxStream.js +243 -0
  202. package/src/engine/network/transport/connection/bytes_copy.d.ts +17 -0
  203. package/src/engine/network/transport/connection/bytes_copy.d.ts.map +1 -0
  204. package/src/engine/network/transport/connection/bytes_copy.js +34 -0
  205. package/src/engine/network/transport/connection/varint.d.ts +46 -0
  206. package/src/engine/network/transport/connection/varint.d.ts.map +1 -0
  207. package/src/engine/network/transport/connection/varint.js +107 -0
  208. package/src/engine/physics/cloth/ecs/Cloth.d.ts.map +1 -1
  209. package/src/engine/physics/cloth/ecs/Cloth.js +7 -5
  210. package/src/engine/physics/cloth/ecs/ClothCollider.d.ts.map +1 -1
  211. package/src/engine/physics/cloth/ecs/ClothCollider.js +7 -5
  212. package/src/engine/physics/cloth/ecs/ClothDynamics.d.ts.map +1 -1
  213. package/src/engine/physics/cloth/ecs/ClothDynamics.js +20 -11
  214. package/src/engine/physics/fluid/FluidField.d.ts.map +1 -1
  215. package/src/engine/physics/fluid/FluidField.js +7 -5
  216. package/src/engine/physics/fluid/ecs/FluidComponent.d.ts.map +1 -1
  217. package/src/engine/physics/fluid/ecs/FluidComponent.js +19 -11
  218. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  219. package/src/engine/physics/fluid/effector/AbstractFluidEffector.d.ts +2 -2
  220. package/src/engine/physics/fluid/effector/AbstractFluidEffector.js +2 -2
  221. package/src/engine/physics/fluid/effector/GlobalFluidEffector.d.ts.map +1 -1
  222. package/src/engine/physics/fluid/effector/GlobalFluidEffector.js +11 -7
  223. package/src/engine/physics/fluid/effector/ImpulseFluidEffector.d.ts.map +1 -1
  224. package/src/engine/physics/fluid/effector/ImpulseFluidEffector.js +11 -7
  225. package/src/engine/physics/fluid/effector/WakeFluidEffector.d.ts.map +1 -1
  226. package/src/engine/physics/fluid/effector/WakeFluidEffector.js +16 -9
  227. package/src/engine/sound/ecs/audio/AudioEmitter.d.ts +38 -7
  228. package/src/engine/sound/ecs/audio/AudioEmitter.d.ts.map +1 -1
  229. package/src/engine/sound/ecs/audio/AudioEmitter.js +47 -14
  230. package/src/engine/sound/ecs/audio/AudioEmitterSerializationAdapter.d.ts.map +1 -1
  231. package/src/engine/sound/ecs/audio/AudioEmitterSerializationAdapter.js +5 -1
  232. package/src/engine/sound/ecs/audio/AudioEmitterSerializationUpgrader_0_1.d.ts +18 -0
  233. package/src/engine/sound/ecs/audio/AudioEmitterSerializationUpgrader_0_1.d.ts.map +1 -0
  234. package/src/engine/sound/ecs/audio/AudioEmitterSerializationUpgrader_0_1.js +48 -0
  235. package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts +12 -2
  236. package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts.map +1 -1
  237. package/src/engine/sound/ecs/audio/AudioEmitterSystem.js +173 -9
  238. package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts +9 -3
  239. package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts.map +1 -1
  240. package/src/engine/sound/ecs/audio/LiveEmitterSet.js +28 -8
  241. package/src/engine/sound/ecs/trigger/AudioEventTrigger.d.ts +8 -0
  242. package/src/engine/sound/ecs/trigger/AudioEventTrigger.d.ts.map +1 -1
  243. package/src/engine/sound/ecs/trigger/AudioEventTrigger.js +192 -191
  244. package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationAdapter.d.ts.map +1 -1
  245. package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationAdapter.js +5 -1
  246. package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationUpgrader_0_1.d.ts +18 -0
  247. package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationUpgrader_0_1.d.ts.map +1 -0
  248. package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationUpgrader_0_1.js +51 -0
  249. package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.d.ts.map +1 -1
  250. package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.js +15 -1
  251. package/src/engine/sound/simulation/core/AcousticMedium.js +2 -2
  252. package/src/engine/sound/simulation/definition/AcousticDirectivity.js +2 -2
  253. package/src/engine/sound/simulation/definition/AcousticMaterial.d.ts.map +1 -1
  254. package/src/engine/sound/simulation/definition/AcousticMaterial.js +11 -7
  255. package/src/engine/sound/sopra/README.md +768 -644
  256. package/src/engine/sound/sopra/SopraEngine.d.ts +104 -8
  257. package/src/engine/sound/sopra/SopraEngine.d.ts.map +1 -1
  258. package/src/engine/sound/sopra/SopraEngine.js +327 -12
  259. package/src/engine/sound/sopra/definition/BusDefinition.d.ts.map +1 -1
  260. package/src/engine/sound/sopra/definition/BusDefinition.js +5 -4
  261. package/src/engine/sound/sopra/definition/DuckingRule.d.ts.map +1 -1
  262. package/src/engine/sound/sopra/definition/DuckingRule.js +7 -5
  263. package/src/engine/sound/sopra/definition/EventDescription.d.ts +28 -2
  264. package/src/engine/sound/sopra/definition/EventDescription.d.ts.map +1 -1
  265. package/src/engine/sound/sopra/definition/EventDescription.js +77 -17
  266. package/src/engine/sound/sopra/definition/EventDescriptionSerializationAdapter.d.ts +10 -0
  267. package/src/engine/sound/sopra/definition/EventDescriptionSerializationAdapter.d.ts.map +1 -1
  268. package/src/engine/sound/sopra/definition/EventDescriptionSerializationAdapter.js +77 -55
  269. package/src/engine/sound/sopra/definition/EventDescriptionSerializationUpgrader_0_1.d.ts +31 -0
  270. package/src/engine/sound/sopra/definition/EventDescriptionSerializationUpgrader_0_1.d.ts.map +1 -0
  271. package/src/engine/sound/sopra/definition/EventDescriptionSerializationUpgrader_0_1.js +75 -0
  272. package/src/engine/sound/sopra/definition/MixerSnapshot.js +2 -2
  273. package/src/engine/sound/sopra/definition/ParameterDefinition.d.ts.map +1 -1
  274. package/src/engine/sound/sopra/definition/ParameterDefinition.js +7 -5
  275. package/src/engine/sound/sopra/definition/clip/AbstractAudioClip.js +2 -2
  276. package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClip.d.ts.map +1 -1
  277. package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClip.js +4 -3
  278. package/src/engine/sound/sopra/definition/clip/ContainerAudioClip.js +2 -2
  279. package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClip.js +3 -3
  280. package/src/engine/sound/sopra/definition/clip/SampleAudioClip.d.ts.map +1 -1
  281. package/src/engine/sound/sopra/definition/clip/SampleAudioClip.js +16 -9
  282. package/src/engine/sound/sopra/definition/clip/SilenceAudioClip.js +2 -2
  283. package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.d.ts +1 -1
  284. package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.d.ts.map +1 -1
  285. package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.js +2 -2
  286. package/src/engine/sound/sopra/definition/effect/AbstractAudioEffect.d.ts +38 -9
  287. package/src/engine/sound/sopra/definition/effect/AbstractAudioEffect.d.ts.map +1 -1
  288. package/src/engine/sound/sopra/definition/effect/AbstractAudioEffect.js +34 -5
  289. package/src/engine/sound/sopra/definition/effect/CompressorEffect.d.ts +7 -2
  290. package/src/engine/sound/sopra/definition/effect/CompressorEffect.d.ts.map +1 -1
  291. package/src/engine/sound/sopra/definition/effect/CompressorEffect.js +137 -120
  292. package/src/engine/sound/sopra/definition/effect/EqEffect.d.ts +3 -1
  293. package/src/engine/sound/sopra/definition/effect/EqEffect.d.ts.map +1 -1
  294. package/src/engine/sound/sopra/definition/effect/EqEffect.js +146 -128
  295. package/src/engine/sound/sopra/definition/effect/ReverbEffect.d.ts +1 -0
  296. package/src/engine/sound/sopra/definition/effect/ReverbEffect.d.ts.map +1 -1
  297. package/src/engine/sound/sopra/definition/effect/ReverbEffect.js +8 -3
  298. package/src/engine/sound/sopra/legacy/SoundEmitter.d.ts.map +1 -1
  299. package/src/engine/sound/sopra/legacy/SoundEmitter.js +357 -352
  300. package/src/engine/sound/sopra/legacy/SoundTrack.d.ts.map +1 -1
  301. package/src/engine/sound/sopra/legacy/SoundTrack.js +281 -278
  302. package/src/engine/sound/sopra/runtime/BusGraph.d.ts +44 -2
  303. package/src/engine/sound/sopra/runtime/BusGraph.d.ts.map +1 -1
  304. package/src/engine/sound/sopra/runtime/BusGraph.js +83 -43
  305. package/src/engine/sound/sopra/runtime/EffectChain.d.ts +96 -0
  306. package/src/engine/sound/sopra/runtime/EffectChain.d.ts.map +1 -0
  307. package/src/engine/sound/sopra/runtime/EffectChain.js +286 -0
  308. package/src/engine/sound/sopra/runtime/EffectParamOverrides.d.ts +123 -0
  309. package/src/engine/sound/sopra/runtime/EffectParamOverrides.d.ts.map +1 -0
  310. package/src/engine/sound/sopra/runtime/EffectParamOverrides.js +320 -0
  311. package/src/engine/sound/sopra/runtime/EventInstance.d.ts +55 -5
  312. package/src/engine/sound/sopra/runtime/EventInstance.d.ts.map +1 -1
  313. package/src/engine/sound/sopra/runtime/EventInstance.js +201 -26
  314. package/src/engine/sound/sopra/serialization/populateSopraSerializationRegistry.d.ts +2 -1
  315. package/src/engine/sound/sopra/serialization/populateSopraSerializationRegistry.d.ts.map +1 -1
  316. package/src/engine/sound/sopra/serialization/populateSopraSerializationRegistry.js +6 -1
  317. package/src/engine/sound/sopra/serialization/sopraSerializationHarness.d.ts +15 -0
  318. package/src/engine/sound/sopra/serialization/sopraSerializationHarness.d.ts.map +1 -1
  319. package/src/engine/sound/sopra/serialization/sopraSerializationHarness.js +32 -0
  320. package/src/engine/sound/sopra/util/MockAudioContext.d.ts.map +1 -1
  321. package/src/engine/sound/sopra/util/MockAudioContext.js +3 -0
  322. package/src/engine/sound/sopra/util/fadeOutAndStop.d.ts +13 -3
  323. package/src/engine/sound/sopra/util/fadeOutAndStop.d.ts.map +1 -1
  324. package/src/engine/sound/sopra/util/fadeOutAndStop.js +25 -13
  325. package/src/format/image/png/PNGReader.js +644 -644
  326. package/src/format/image/png/crc32.d.ts +1 -1
  327. package/src/format/image/png/crc32.js +7 -8
  328. package/src/shade/RENDERER_CONTRACT.md +6 -3
  329. package/src/shade/descriptor/binding/BindGroupLayoutDescriptor.js +2 -2
  330. package/src/shade/descriptor/binding/BindGroupLayoutEntry.d.ts.map +1 -1
  331. package/src/shade/descriptor/binding/BindGroupLayoutEntry.js +12 -8
  332. package/src/shade/descriptor/binding/StorageTextureBindingLayout.js +2 -2
  333. package/src/shade/descriptor/binding/TextureBindingLayout.js +2 -2
  334. package/src/shade/descriptor/blend/BlendComponent.js +2 -2
  335. package/src/shade/descriptor/pipeline/PipelineDescriptorBase.js +2 -2
  336. package/src/shade/descriptor/pipeline/PipelineLayoutDescriptor.js +2 -2
  337. package/src/shade/descriptor/pipeline/ProgrammableStage.js +2 -2
  338. package/src/shade/descriptor/pipeline/compute/ComputePipelineDescriptor.js +2 -2
  339. package/src/shade/descriptor/pipeline/render/ColorTargetState.js +2 -2
  340. package/src/shade/descriptor/pipeline/render/FragmentState.js +2 -2
  341. package/src/shade/descriptor/pipeline/render/PrimitiveState.js +2 -2
  342. package/src/shade/descriptor/pipeline/render/RenderPipelineDescriptor.d.ts.map +1 -1
  343. package/src/shade/descriptor/pipeline/render/RenderPipelineDescriptor.js +8 -5
  344. package/src/shade/descriptor/pipeline/render/VertexAttribute.js +2 -2
  345. package/src/shade/descriptor/texture/SamplerDescriptor.d.ts.map +1 -1
  346. package/src/shade/descriptor/texture/SamplerDescriptor.js +20 -12
  347. package/src/shade/descriptor/texture/TextureDescriptor.d.ts.map +1 -1
  348. package/src/shade/descriptor/texture/TextureDescriptor.js +11 -7
  349. package/src/shade/device/SHADE_DEVICE_FLOOR.d.ts +24 -0
  350. package/src/shade/device/SHADE_DEVICE_FLOOR.d.ts.map +1 -0
  351. package/src/shade/device/SHADE_DEVICE_FLOOR.js +34 -0
  352. package/src/shade/device/ShadeDeviceFailure.d.ts +12 -5
  353. package/src/shade/device/ShadeDeviceFailure.d.ts.map +1 -1
  354. package/src/shade/device/ShadeDeviceFailure.js +17 -8
  355. package/src/shade/device/ShadeDeviceFailureReason.d.ts +1 -1
  356. package/src/shade/device/ShadeDeviceFailureReason.js +2 -2
  357. package/src/shade/device/graph/BufferResourceDescriptor.d.ts.map +1 -1
  358. package/src/shade/device/graph/BufferResourceDescriptor.js +196 -193
  359. package/src/shade/device/graph/TextureResourceDescriptor.d.ts.map +1 -1
  360. package/src/shade/device/graph/TextureResourceDescriptor.js +178 -173
  361. package/src/shade/device/shade_device_floor_unmet.d.ts +13 -0
  362. package/src/shade/device/shade_device_floor_unmet.d.ts.map +1 -0
  363. package/src/shade/device/shade_device_floor_unmet.js +32 -0
  364. package/src/shade/device/timing/profile/sgpt_read_header.js +1 -1
  365. package/src/shade/device/timing/profile/sgpt_read_records.js +1 -1
  366. package/src/shade/device/timing/profile/sgpt_write_header.js +1 -1
  367. package/src/shade/device/timing/profile/sgpt_write_record.js +1 -1
  368. package/src/shade/renderer/Renderer.d.ts +2 -0
  369. package/src/shade/renderer/Renderer.d.ts.map +1 -1
  370. package/src/shade/renderer/Renderer.js +29 -55
  371. package/src/shade/renderer/binding/BufferBinding.js +2 -2
  372. package/src/shade/renderer/buffer/GPUBufferAllocator.d.ts.map +1 -1
  373. package/src/shade/renderer/buffer/GPUBufferAllocator.js +9 -0
  374. package/src/shade/renderer/buffer/buffer_pool_ops.d.ts +21 -12
  375. package/src/shade/renderer/buffer/buffer_pool_ops.d.ts.map +1 -1
  376. package/src/shade/renderer/buffer/buffer_pool_ops.js +18 -19
  377. package/src/shade/renderer/camera/Camera.js +2 -2
  378. package/src/shade/renderer/geometry/Attribute.js +2 -2
  379. package/src/shade/renderer/geometry/Geometry.js +2 -2
  380. package/src/shade/renderer/geometry/geometry_deduplicate_vertices.js +2 -2
  381. package/src/shade/renderer/geometry/meshlet/MeshletBatch.js +2 -2
  382. package/src/shade/renderer/geometry/virtual/format/checksum/vgeo_compute_asset_id.js +13 -13
  383. package/src/shade/renderer/geometry/virtual/format/checksum/vgeo_compute_directory_block_checksum.js +41 -41
  384. package/src/shade/renderer/geometry/virtual/format/checksum/vgeo_compute_frame_checksum.js +41 -41
  385. package/src/shade/renderer/geometry/virtual/format/checksum/vgeo_compute_header_checksum.js +25 -25
  386. package/src/shade/renderer/gpu_primitive/test/gpu_test.d.ts.map +1 -1
  387. package/src/shade/renderer/gpu_primitive/test/gpu_test.js +8 -11
  388. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
  389. package/src/shade/renderer/material/StandardShadeMaterial.d.ts.map +1 -1
  390. package/src/shade/renderer/material/StandardShadeMaterial.js +13 -8
  391. package/src/shade/renderer/pool/TransientResourcePool.d.ts +24 -0
  392. package/src/shade/renderer/pool/TransientResourcePool.d.ts.map +1 -1
  393. package/src/shade/renderer/pool/TransientResourcePool.js +41 -10
  394. package/src/shade/renderer/scene/optimization/geometry/internal/triangle_fingerprint_stream.d.ts.map +1 -1
  395. package/src/shade/renderer/scene/optimization/geometry/internal/triangle_fingerprint_stream.js +14 -5
  396. package/src/shade/renderer/scene/optimization/sampler2d_from_image_bitmap.js +1 -1
  397. package/src/shade/renderer/shader/ComputeShader.d.ts.map +1 -1
  398. package/src/shade/renderer/shader/ComputeShader.js +18 -2
  399. package/src/shade/renderer/shader/ImageShader.d.ts.map +1 -1
  400. package/src/shade/renderer/shader/ImageShader.js +230 -218
  401. package/src/shade/renderer/shader/type/WGSLStructField.js +2 -2
  402. package/src/shade/renderer/shader/type/WebGPUArray.js +2 -2
  403. package/src/shade/renderer/shader/type/WebGPUStruct.d.ts.map +1 -1
  404. package/src/shade/renderer/shader/type/WebGPUStruct.js +9 -6
  405. package/src/shade/renderer/texture/ShadeTexture.d.ts.map +1 -1
  406. package/src/shade/renderer/texture/ShadeTexture.js +17 -10
  407. package/src/shade/renderer/texture/mipmaps/WebGPUMipmapGenerator.js +2 -2
  408. package/src/shade/renderer/water/surface/chunk_water_surface_sample.d.ts +4 -4
  409. package/src/shade/renderer/water/surface/chunk_water_surface_sample.js +6 -6
  410. package/src/shade/renderer/water/surface/particles/GPUWaterParticles.d.ts.map +1 -1
  411. package/src/shade/renderer/water/surface/particles/GPUWaterParticles.js +46 -55
  412. package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.d.ts +3 -3
  413. package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.d.ts.map +1 -1
  414. package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.js +14 -4
  415. package/src/shade/renderer/water/surface/particles/chunk_water_particle.d.ts +10 -1
  416. package/src/shade/renderer/water/surface/particles/chunk_water_particle.d.ts.map +1 -1
  417. package/src/shade/renderer/water/surface/particles/chunk_water_particle.js +82 -40
  418. package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.d.ts +4 -1
  419. package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.d.ts.map +1 -1
  420. package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.js +8 -4
  421. package/src/shade/renderer/water/surface/particles/shader_water_particles.d.ts +98 -86
  422. package/src/shade/renderer/water/surface/particles/shader_water_particles.d.ts.map +1 -1
  423. package/src/shade/renderer/water/surface/particles/shader_water_particles.js +440 -298
  424. package/src/view/common/HTMLElementCacheKey.d.ts.map +1 -1
  425. package/src/view/common/HTMLElementCacheKey.js +4 -3
  426. package/src/view/graphics/GraphicsContextFailureView.d.ts +1 -2
  427. package/src/view/graphics/GraphicsContextFailureView.d.ts.map +1 -1
  428. package/src/view/graphics/GraphicsContextFailureView.js +1 -2
  429. package/src/view/minimap/MinimapMarker.js +2 -2
  430. package/src/engine/network/transport/Channel.js +0 -336
  431. package/src/engine/network/transport/ReliableCommandPipeline.js +0 -335
  432. package/src/engine/network/transport/fragments/FragmentAssembler.js +0 -350
  433. package/src/engine/network/transport/fragments/FragmentRetention.js +0 -191
  434. package/src/engine/network/transport/fragments/fragment_send.js +0 -157
  435. package/src/engine/network/transport/fragments/packet_size.js +0 -107
@@ -1 +1 @@
1
- {"version":3,"file":"TransformModifyAction.d.ts","sourceRoot":"","sources":["../../../../editor/actions/concrete/TransformModifyAction.js"],"names":[],"mappings":";AAGA;IAGI;;;;;OAKG;IACH,mCAHW,WAAW,EAQrB;IAbD,cAAgB;IAWZ,sBAAwB;IACxB,YAAoB;IAOxB,8CAEC;IAiBD,mCAIC;CACJ;uBA9CsB,0CAA0C;4BADrC,kDAAkD"}
1
+ {"version":3,"file":"TransformModifyAction.d.ts","sourceRoot":"","sources":["../../../../editor/actions/concrete/TransformModifyAction.js"],"names":[],"mappings":";AAIA;IAGI;;;;;OAKG;IACH,mCAHW,WAAW,EAQrB;IAbD,cAAgB;IAWZ,sBAAwB;IACxB,YAAoB;IAOxB,8CAEC;IAqBD,mCAOC;CACJ;uBArDsB,0CAA0C;4BADrC,kDAAkD"}
@@ -1,3 +1,4 @@
1
+ import { t64_announce_change } from "../../../src/engine/ecs/transform/t64_announce_change.js";
1
2
  import { Transform64 } from "../../../src/engine/ecs/transform/Transform64.js";
2
3
  import { Action } from "../../../src/core/process/undo/Action.js";
3
4
 
@@ -30,7 +31,8 @@ class TransformModifyAction extends Action {
30
31
  * @param {Editor} editor
31
32
  */
32
33
  async apply(editor) {
33
- const component = editor.engine.entityManager.dataset.getComponent(this.entity, Transform64);
34
+ const dataset = editor.engine.entityManager.dataset;
35
+ const component = dataset.getComponent(this.entity, Transform64);
34
36
 
35
37
  if (this.oldState === null) {
36
38
  // captured on first application only; redo must restore the original pre-modification state
@@ -38,12 +40,18 @@ class TransformModifyAction extends Action {
38
40
  }
39
41
 
40
42
  component.copy(this.modified);
43
+
44
+ // a Transform64 cannot say it was written, so the writer does, on redo as on the first apply
45
+ t64_announce_change(dataset, this.entity);
41
46
  }
42
47
 
43
48
  async revert(editor) {
44
- const component = editor.engine.entityManager.dataset.getComponent(this.entity, Transform64);
49
+ const dataset = editor.engine.entityManager.dataset;
50
+ const component = dataset.getComponent(this.entity, Transform64);
45
51
 
46
52
  component.copy(this.oldState);
53
+
54
+ t64_announce_change(dataset, this.entity);
47
55
  }
48
56
  }
49
57
 
@@ -26,6 +26,21 @@ export class FieldDescriptor {
26
26
  */
27
27
  schema = undefined;
28
28
 
29
+ /**
30
+ * When the value is an entity's component, the dataset holding that entity; null otherwise.
31
+ *
32
+ * For a component with no change signal of its own, which an editor writing it has to announce on
33
+ * the entity: a `Transform64` (`TRANSFORM64_EVENT_CHANGE`). Set by {@link buildComponentEditorFromRegistry}.
34
+ * @type {EntityComponentDataset|null}
35
+ */
36
+ owner_dataset = null;
37
+
38
+ /**
39
+ * The entity whose component the value is, in {@link owner_dataset}; -1 when it is not one.
40
+ * @type {number}
41
+ */
42
+ owner_entity = -1;
43
+
29
44
  toString() {
30
45
  return `FieldDescriptor[name='${this.name}']`;
31
46
  }
@@ -277,27 +277,56 @@ export function buildObjectEditorFromRegistry(object, registry, field_descriptor
277
277
 
278
278
  const editor = findNearestRegisteredType(registry, object);
279
279
 
280
- let fd;
280
+ const fd = field_descriptor === undefined
281
+ ? root_field_descriptor(object, editor)
282
+ : field_descriptor;
281
283
 
282
- if (field_descriptor === undefined) {
284
+ return editor.build(null, fd, registry);
285
+ }
283
286
 
284
- fd = new FieldDescriptor();
285
- fd.adapter = new FieldValueAdapter();
287
+ /**
288
+ * {@link buildObjectEditorFromRegistry} for an entity's component, which the editor is told is one: the
289
+ * field descriptor carries the entity and its dataset, so an editor writing a component with no change
290
+ * signal of its own can announce the write on the entity.
291
+ *
292
+ * @param {Object} component
293
+ * @param {EntityComponentDataset} dataset
294
+ * @param {number} entity
295
+ * @param {Map<*, TypeEditor>} registry
296
+ */
297
+ export function buildComponentEditorFromRegistry(component, dataset, entity, registry) {
286
298
 
287
- fd.adapter.read = () => object;
288
- fd.adapter.writable = false;
299
+ const editor = findNearestRegisteredType(registry, component);
289
300
 
290
- if (editor.schema) {
291
- fd.schema = editor.schema;
292
- }
301
+ const fd = root_field_descriptor(component, editor);
293
302
 
294
- } else {
295
- fd = field_descriptor;
296
- }
303
+ fd.owner_dataset = dataset;
304
+ fd.owner_entity = entity;
297
305
 
298
306
  return editor.build(null, fd, registry);
299
307
  }
300
308
 
309
+ /**
310
+ * The descriptor of a value edited as a whole, rather than as a field of something.
311
+ *
312
+ * @param {Object} object
313
+ * @param {TypeEditor} editor
314
+ * @returns {FieldDescriptor}
315
+ */
316
+ function root_field_descriptor(object, editor) {
317
+ const fd = new FieldDescriptor();
318
+ fd.adapter = new FieldValueAdapter();
319
+
320
+ fd.adapter.read = () => object;
321
+ fd.adapter.writable = false;
322
+
323
+ if (editor.schema) {
324
+ fd.schema = editor.schema;
325
+ }
326
+
327
+ return fd;
328
+ }
329
+
301
330
  const MAX_DEPTH = 7;
302
331
 
303
332
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Transform64Editor.d.ts","sourceRoot":"","sources":["../../../../../../editor/ecs/component/editors/ecs/Transform64Editor.js"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;GAaG;AACH;;IACI,+GA+CC;CACJ;2BAlE0B,qBAAqB"}
1
+ {"version":3,"file":"Transform64Editor.d.ts","sourceRoot":"","sources":["../../../../../../editor/ecs/component/editors/ecs/Transform64Editor.js"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;GAaG;AACH;;IACI,+GAqDC;CACJ;2BAxE0B,qBAAqB"}
@@ -1,70 +1,77 @@
1
- import Quaternion from "../../../../../src/core/geom/Quaternion.js";
2
- import Vector3 from "../../../../../src/core/geom/Vector3.js";
3
- import { createObjectEditor } from "../../createObjectEditor.js";
4
- import { TypeEditor } from "../../TypeEditor.js";
5
- import { two_way_sync } from "../common/two_way_sync.js";
6
-
7
- /**
8
- * Inspector for a {@link Transform64}.
9
- *
10
- * The component is 23 numbers in one array, with no sub-objects and no signals, so the inspector
11
- * cannot bind to it the way {@link TransformEditor} binds to a {@link Transform} - there is nothing
12
- * on it to bind to. Instead the editor keeps a mirror: a live {@link Vector3} / {@link Quaternion} /
13
- * {@link Vector3} triple that the ordinary field editors know how to draw and edit, bridged to the
14
- * component in both directions.
15
- *
16
- * The one thing the mirror cannot do is notice a change made elsewhere. A signalling transform woke
17
- * its editor when physics moved it; this one refreshes when the view links and whenever the user
18
- * touches it. That is the cost of the component having no change channel of its own, and it is the
19
- * same cost every other reader of a Transform64 pays.
20
- */
21
- export class Transform64Editor extends TypeEditor {
22
- build(parent, field, registry) {
23
- /**
24
- * @type {Transform64}
25
- */
26
- const transform = field.adapter.read(parent, field.name);
27
-
28
- const mirror = {
29
- translation: new Vector3(),
30
- rotation: new Quaternion(),
31
- scale: new Vector3()
32
- };
33
-
34
- const { sync_up, sync_down } = two_way_sync(
35
- () => {
36
- mirror.translation.set(
37
- transform.translation_x, transform.translation_y, transform.translation_z
38
- );
39
- mirror.rotation.set(
40
- transform.rotation_x, transform.rotation_y,
41
- transform.rotation_z, transform.rotation_w
42
- );
43
- mirror.scale.set(transform.scale_x, transform.scale_y, transform.scale_z);
44
- },
45
- () => {
46
- const { translation, rotation, scale } = mirror;
47
-
48
- transform.setTranslation(translation.x, translation.y, translation.z);
49
- transform.setRotation(rotation.x, rotation.y, rotation.z, rotation.w);
50
- transform.setScale(scale.x, scale.y, scale.z);
51
-
52
- // a rotation or a scale write leaves the matrix describing the previous pose
53
- transform.updateMatrix();
54
- }
55
- );
56
-
57
- // the mirror has to hold the current pose before the field editors read it
58
- sync_up();
59
-
60
- const view = createObjectEditor(mirror, registry);
61
-
62
- view.bindSignal(mirror.translation.onChanged, sync_down);
63
- view.bindSignal(mirror.rotation.onChanged, sync_down);
64
- view.bindSignal(mirror.scale.onChanged, sync_down);
65
-
66
- view.on.linked.add(sync_up);
67
-
68
- return view;
69
- }
70
- }
1
+ import Quaternion from "../../../../../src/core/geom/Quaternion.js";
2
+ import Vector3 from "../../../../../src/core/geom/Vector3.js";
3
+ import { t64_announce_change } from "../../../../../src/engine/ecs/transform/t64_announce_change.js";
4
+ import { createObjectEditor } from "../../createObjectEditor.js";
5
+ import { TypeEditor } from "../../TypeEditor.js";
6
+ import { two_way_sync } from "../common/two_way_sync.js";
7
+
8
+ /**
9
+ * Inspector for a {@link Transform64}.
10
+ *
11
+ * The component is 23 numbers in one array, with no sub-objects and no signals, so the inspector
12
+ * cannot bind to it the way {@link TransformEditor} binds to a {@link Transform} - there is nothing
13
+ * on it to bind to. Instead the editor keeps a mirror: a live {@link Vector3} / {@link Quaternion} /
14
+ * {@link Vector3} triple that the ordinary field editors know how to draw and edit, bridged to the
15
+ * component in both directions.
16
+ *
17
+ * The one thing the mirror cannot do is notice a change made elsewhere. A signalling transform woke
18
+ * its editor when physics moved it; this one refreshes when the view links and whenever the user
19
+ * touches it. That is the cost of the component having no change channel of its own, and it is the
20
+ * same cost every other reader of a Transform64 pays.
21
+ */
22
+ export class Transform64Editor extends TypeEditor {
23
+ build(parent, field, registry) {
24
+ /**
25
+ * @type {Transform64}
26
+ */
27
+ const transform = field.adapter.read(parent, field.name);
28
+
29
+ const mirror = {
30
+ translation: new Vector3(),
31
+ rotation: new Quaternion(),
32
+ scale: new Vector3()
33
+ };
34
+
35
+ const { sync_up, sync_down } = two_way_sync(
36
+ () => {
37
+ mirror.translation.set(
38
+ transform.translation_x, transform.translation_y, transform.translation_z
39
+ );
40
+ mirror.rotation.set(
41
+ transform.rotation_x, transform.rotation_y,
42
+ transform.rotation_z, transform.rotation_w
43
+ );
44
+ mirror.scale.set(transform.scale_x, transform.scale_y, transform.scale_z);
45
+ },
46
+ () => {
47
+ const { translation, rotation, scale } = mirror;
48
+
49
+ transform.setTranslation(translation.x, translation.y, translation.z);
50
+ transform.setRotation(rotation.x, rotation.y, rotation.z, rotation.w);
51
+ transform.setScale(scale.x, scale.y, scale.z);
52
+
53
+ // a rotation or a scale write leaves the matrix describing the previous pose
54
+ transform.updateMatrix();
55
+
56
+ // A Transform64 cannot say it was written, so the writer does. Only an entity's own
57
+ // transform has anyone to tell: a transform edited as a field of something has no owner.
58
+ if (field.owner_dataset !== null) {
59
+ t64_announce_change(field.owner_dataset, field.owner_entity);
60
+ }
61
+ }
62
+ );
63
+
64
+ // the mirror has to hold the current pose before the field editors read it
65
+ sync_up();
66
+
67
+ const view = createObjectEditor(mirror, registry);
68
+
69
+ view.bindSignal(mirror.translation.onChanged, sync_down);
70
+ view.bindSignal(mirror.rotation.onChanged, sync_down);
71
+ view.bindSignal(mirror.scale.onChanged, sync_down);
72
+
73
+ view.on.linked.add(sync_up);
74
+
75
+ return view;
76
+ }
77
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"TransformToolV2.d.ts","sourceRoot":"","sources":["../../../editor/tools/TransformToolV2.js"],"names":[],"mappings":"AAoBA;;;;;;;;;;;GAWG;AACH;IACI,aAA2B;IAE3B;;OAEG;IACH,MAFU,cAAc,MAAM,CAAC,CAEmB;IAElD;;OAEG;IACH,YAFU,iBAAiB,GAAC,IAAI,CAEd;IAElB;;;OAGG;IACH,gBAFU,OAAO,CAEM;IAuBnB;;;OAGG;IACH,kBAFU,IAAI,MAAM,EAAE,WAAW,CAAC,CAED;IAGrC;;;OAGG;IACH,kCAEC;IAED;;OAEG;IACH,wCAEC;IAED;;;OAGG;IACH,mBAFa,MAAM,CAclB;IAED,iCAUC;IAED,0BAkCC;IAED;;OAEG;IACH,6BAgFC;IAED;;OAEG;IACH,wBA+BC;IA2DD,6BAgCC;IAED,4BAEC;IAED,6BAEC;IAED,4BAQC;IAED;;;OAGG;IACH,2BAFW,aAAa,QAuBvB;CACJ;iBAzZgB,kBAAkB;0BAJT,uCAAuC;kCAK/B,2BAA2B;4BAJjC,+CAA+C"}
1
+ {"version":3,"file":"TransformToolV2.d.ts","sourceRoot":"","sources":["../../../editor/tools/TransformToolV2.js"],"names":[],"mappings":"AAqBA;;;;;;;;;;;GAWG;AACH;IACI,aAA2B;IAE3B;;OAEG;IACH,MAFU,cAAc,MAAM,CAAC,CAEmB;IAElD;;OAEG;IACH,YAFU,iBAAiB,GAAC,IAAI,CAEd;IAElB;;;OAGG;IACH,gBAFU,OAAO,CAEM;IAuBnB;;;OAGG;IACH,kBAFU,IAAI,MAAM,EAAE,WAAW,CAAC,CAED;IAGrC;;;OAGG;IACH,kCAEC;IAED;;OAEG;IACH,wCAEC;IAED;;;OAGG;IACH,mBAFa,MAAM,CAclB;IAED,iCAUC;IAED,0BAkCC;IAED;;OAEG;IACH,6BAmFC;IAED;;OAEG;IACH,wBA+BC;IA2DD,6BAgCC;IAED,4BAEC;IAED,6BAEC;IAED,4BAQC;IAED;;;OAGG;IACH,2BAFW,aAAa,QAuBvB;CACJ;iBA5ZgB,kBAAkB;0BALT,uCAAuC;kCAM/B,2BAA2B;4BAJjC,+CAA+C"}
@@ -2,6 +2,7 @@ import Quaternion from "../../src/core/geom/Quaternion.js";
2
2
  import Vector1 from "../../src/core/geom/Vector1.js";
3
3
  import Vector3 from "../../src/core/geom/Vector3.js";
4
4
  import ObservedValue from "../../src/core/model/ObservedValue.js";
5
+ import { t64_announce_change } from "../../src/engine/ecs/transform/t64_announce_change.js";
5
6
  import { Transform64 } from "../../src/engine/ecs/transform/Transform64.js";
6
7
  import { KeyCodes } from "../../src/engine/input/devices/KeyCodes.js";
7
8
  import TransformModifyAction from "../actions/concrete/TransformModifyAction.js";
@@ -240,6 +241,9 @@ export class TransformToolV2 extends Tool {
240
241
 
241
242
  transform.updateMatrix();
242
243
  }
244
+
245
+ // the controls announce the primary they move; the entities carried along are this tool's
246
+ t64_announce_change(ecd, entity);
243
247
  }
244
248
  }
245
249
 
@@ -1 +1 @@
1
- {"version":3,"file":"TransformControls.d.ts","sourceRoot":"","sources":["../../../../editor/tools/v2/TransformControls.js"],"names":[],"mappings":"AA4EA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH;IAsNI;;;;;OAKG;IACH,sBALW,+BAA6B,cAE7B,WAAW,eACX,OAAO,EAgCjB;IAzPD;;;OAGG;IACH,QAFU,MAAM,CAEJ;IAEZ,6BAA2B;IAE3B;;OAEG;IACH,SAFU,OAAO,CAEF;IAEf;;;;;OAKG;IACH,MAFU,MAAM,GAAC,IAAI,CAET;IAEZ;;OAEG;IACH,MAFU,MAAM,CAEe;IAE/B;;OAEG;IACH,OAFU,MAAM,CAEA;IAEhB;;;;OAIG;IACH,MAFU,MAAM,CAEP;IAET;;OAEG;IACH,UAFU,OAAO,CAEA;IAEjB;;;;OAIG;IACH,iBAFU,MAAM,GAAC,IAAI,CAEE;IAEvB;;;;OAIG;IACH,cAFU,MAAM,GAAC,IAAI,CAED;IAEpB;;OAEG;IACH,WAFU,MAAM,GAAC,IAAI,CAEJ;IAEjB;;OAEG;IACH,eAFU,OAAO,CAEa;IAE9B;;OAEG;IACH,iBAFU,UAAU,CAEe;IAEnC;;;;;OAKG;IACH,oBAFU,OAAO,CAEkB;IAEnC;;OAEG;IACH,sBAFU,UAAU,CAEoB;IAExC;;OAEG;IACH,kBAFU,OAAO,CAEuB;IAExC;;OAEG;IACH,aAFU,OAAO,CAEkB;IAEnC;;OAEG;IACH,qBAFU,UAAU,CAEmB;IAEvC;;OAEG;IACH,gBAFU,OAAO,CAEc;IAE/B;;OAEG;IACH,kBAFU,UAAU,CAEgB;IAEpC;;OAEG;IACH,aAFU,OAAO,CAEkB;IAEnC;;;;OAIG;IACH,YAFU,OAAO,CAEU;IAE3B;;OAEG;IACH,UAFU,OAAO,CAEQ;IAEzB;;OAEG;IACH,SAFU,OAAO,CAEO;IAExB;;OAEG;IACH,YAFU,OAAO,CAEU;IAE3B;;OAEG;IACH,UAFU,OAAO,CAEQ;IAEzB;;OAEG;IACH,cAFU,OAAO,CAEY;IAE7B;;OAEG;IACH,eAFU,MAAM,CAEE;IAElB;;;;OAIG;IACH,gBAFU,OAAO,CAEc;IAE/B;;OAEG;IACH,KAFU,OAAO,CAEU;IA+DvB,cAAwB;IACxB,wBAA4B;IAM5B,iBAAwC;IACxC,oBAA8C;IAC9C,qBAAgD;IAChD,oBAA8C;IAC9C,kBAA0C;IAe9C;;OAEG;IACH,yCAIC;IAmGD,iCAYC;IAED,gCAuCC;IAED;;;OAGG;IACH,qBAFW;QAAC,IAAI,EAAC,MAAM,CAAA;KAAC,QAIvB;IAED,gCAsPC;IAED,8BAcC;IAED,gBASC;IAED;;;;OAIG;IACH,eAHW,MAAM,GACJ,iBAAiB,CAW7B;IAED;;;OAGG;IACH,oCAIC;IAGD,eAYC;IAED,cAuBC;IAID,kBAIC;IAED,yBAIC;IAED,+CAIC;IAED,yCAIC;IAED,mCAIC;IAED,yBAIC;IAED,2BAIC;;CAEJ;0BAx4ByB,gBAAgB;oBAHtB,mCAAmC;uBADhC,sCAAsC;4BAEjC,kDAAkD"}
1
+ {"version":3,"file":"TransformControls.d.ts","sourceRoot":"","sources":["../../../../editor/tools/v2/TransformControls.js"],"names":[],"mappings":"AA6EA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH;IAsNI;;;;;OAKG;IACH,sBALW,+BAA6B,cAE7B,WAAW,eACX,OAAO,EAgCjB;IAzPD;;;OAGG;IACH,QAFU,MAAM,CAEJ;IAEZ,6BAA2B;IAE3B;;OAEG;IACH,SAFU,OAAO,CAEF;IAEf;;;;;OAKG;IACH,MAFU,MAAM,GAAC,IAAI,CAET;IAEZ;;OAEG;IACH,MAFU,MAAM,CAEe;IAE/B;;OAEG;IACH,OAFU,MAAM,CAEA;IAEhB;;;;OAIG;IACH,MAFU,MAAM,CAEP;IAET;;OAEG;IACH,UAFU,OAAO,CAEA;IAEjB;;;;OAIG;IACH,iBAFU,MAAM,GAAC,IAAI,CAEE;IAEvB;;;;OAIG;IACH,cAFU,MAAM,GAAC,IAAI,CAED;IAEpB;;OAEG;IACH,WAFU,MAAM,GAAC,IAAI,CAEJ;IAEjB;;OAEG;IACH,eAFU,OAAO,CAEa;IAE9B;;OAEG;IACH,iBAFU,UAAU,CAEe;IAEnC;;;;;OAKG;IACH,oBAFU,OAAO,CAEkB;IAEnC;;OAEG;IACH,sBAFU,UAAU,CAEoB;IAExC;;OAEG;IACH,kBAFU,OAAO,CAEuB;IAExC;;OAEG;IACH,aAFU,OAAO,CAEkB;IAEnC;;OAEG;IACH,qBAFU,UAAU,CAEmB;IAEvC;;OAEG;IACH,gBAFU,OAAO,CAEc;IAE/B;;OAEG;IACH,kBAFU,UAAU,CAEgB;IAEpC;;OAEG;IACH,aAFU,OAAO,CAEkB;IAEnC;;;;OAIG;IACH,YAFU,OAAO,CAEU;IAE3B;;OAEG;IACH,UAFU,OAAO,CAEQ;IAEzB;;OAEG;IACH,SAFU,OAAO,CAEO;IAExB;;OAEG;IACH,YAFU,OAAO,CAEU;IAE3B;;OAEG;IACH,UAFU,OAAO,CAEQ;IAEzB;;OAEG;IACH,cAFU,OAAO,CAEY;IAE7B;;OAEG;IACH,eAFU,MAAM,CAEE;IAElB;;;;OAIG;IACH,gBAFU,OAAO,CAEc;IAE/B;;OAEG;IACH,KAFU,OAAO,CAEU;IA+DvB,cAAwB;IACxB,wBAA4B;IAM5B,iBAAwC;IACxC,oBAA8C;IAC9C,qBAAgD;IAChD,oBAA8C;IAC9C,kBAA0C;IAe9C;;OAEG;IACH,yCAIC;IAmGD,iCAYC;IAED,gCAuCC;IAED;;;OAGG;IACH,qBAFW;QAAC,IAAI,EAAC,MAAM,CAAA;KAAC,QAIvB;IAED,gCA0PC;IAED,8BAcC;IAED,gBASC;IAED;;;;OAIG;IACH,eAHW,MAAM,GACJ,iBAAiB,CAW7B;IAED;;;OAGG;IACH,oCAIC;IAGD,eAYC;IAED,cAyBC;IAID,kBAIC;IAED,yBAIC;IAED,+CAIC;IAED,yCAIC;IAED,mCAIC;IAED,yBAIC;IAED,2BAIC;;CAEJ;0BA94ByB,gBAAgB;oBAJtB,mCAAmC;uBADhC,sCAAsC;4BAGjC,kDAAkD"}
@@ -1,6 +1,7 @@
1
1
  import { assert } from "../../../src/core/assert.js";
2
2
  import Quaternion from "../../../src/core/geom/Quaternion.js";
3
3
  import Vector3 from "../../../src/core/geom/Vector3.js";
4
+ import { t64_announce_change } from "../../../src/engine/ecs/transform/t64_announce_change.js";
4
5
  import { Transform64 } from "../../../src/engine/ecs/transform/Transform64.js";
5
6
  import { FrameRunner } from "../../../src/engine/graphics/FrameRunner.js";
6
7
  import { GizmoNode } from "./GizmoNode.js";
@@ -765,6 +766,10 @@ class TransformControls extends GizmoNode {
765
766
  object_transform.updateMatrix();
766
767
  }
767
768
 
769
+ // a Transform64 cannot say it was written, so the writer does: this is what moves the entity's
770
+ // rendered row, its sound, and whatever else follows it by its transform
771
+ t64_announce_change(this.entity.dataset, object);
772
+
768
773
  this.dispatchEvent(_changeEvent);
769
774
  this.dispatchEvent(_objectChangeEvent);
770
775
 
@@ -854,6 +859,8 @@ class TransformControls extends GizmoNode {
854
859
  );
855
860
  this.object_transform.updateMatrix();
856
861
 
862
+ t64_announce_change(this.entity.dataset, this.object);
863
+
857
864
  this.dispatchEvent(_changeEvent);
858
865
  this.dispatchEvent(_objectChangeEvent);
859
866
 
@@ -1 +1 @@
1
- {"version":3,"file":"EntityEditor.d.ts","sourceRoot":"","sources":["../../../../editor/view/ecs/EntityEditor.js"],"names":[],"mappings":";AAkBA;IAYI,yBA2OC;IAlOG,YAAkB;IAGlB,0BAAoC;IACpC;;OAEG;IACH,eAFU,cAAc,aAAa,CAAC,CAEM;IAC5C,sBAA4B;IAU5B;;;OAGG;IACH,sBAFU,mCAAiC,CAEN;IAwGrC,wBAEE;IAiGF,aAAkB;;CAazB;iBA3QgB,2BAA2B;0BATlB,0CAA0C;8BAEtC,0CAA0C;iBAHvD,2CAA2C;qCAcvB,2BAA2B;sBAT1C,uCAAuC"}
1
+ {"version":3,"file":"EntityEditor.d.ts","sourceRoot":"","sources":["../../../../editor/view/ecs/EntityEditor.js"],"names":[],"mappings":";AAkBA;IAYI,yBA6OC;IApOG,YAAkB;IAGlB,0BAAoC;IACpC;;OAEG;IACH,eAFU,cAAc,aAAa,CAAC,CAEM;IAC5C,sBAA4B;IAU5B;;;OAGG;IACH,sBAFU,mCAAiC,CAEN;IAwGrC,wBAEE;IAmGF,aAAkB;;CAazB;iBA7QgB,2BAA2B;0BATlB,0CAA0C;8BAEtC,0CAA0C;iBAHvD,2CAA2C;qCAcvB,2BAA2B;sBAT1C,uCAAuC"}
@@ -11,7 +11,7 @@ import EmptyView from "../../../src/view/elements/EmptyView.js";
11
11
  import View from "../../../src/view/View.js";
12
12
  import ComponentAddAction from "../../actions/concrete/ComponentAddAction.js";
13
13
  import ComponentRemoveAction from "../../actions/concrete/ComponentRemoveAction.js";
14
- import { buildObjectEditorFromRegistry } from "../../ecs/component/createObjectEditor.js";
14
+ import { buildComponentEditorFromRegistry } from "../../ecs/component/createObjectEditor.js";
15
15
  import { ComponentControlView } from "./ComponentControlView.js";
16
16
  import { LineView } from "./components/common/LineView.js";
17
17
 
@@ -180,7 +180,9 @@ class EntityEditor extends View {
180
180
  let view;
181
181
 
182
182
  try {
183
- view = buildObjectEditorFromRegistry(component, registry);
183
+ // told whose component it is, so an edit to one with no change signal of its own (a
184
+ // Transform64) can be announced on the entity
185
+ view = buildComponentEditorFromRegistry(component, get_dataset(), self.model.getValue(), registry);
184
186
  } catch (e) {
185
187
  view = new LabelView(`ERROR: ${e.message}\n${e.stack}`);
186
188
 
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "description": "Advanced 3D game engine",
7
7
  "type": "module",
8
8
  "author": "Alexander Goldring",
9
- "version": "3.45.0",
9
+ "version": "3.47.0",
10
10
  "exports": {
11
11
  "./build/*": "./build/*",
12
12
  "./src/*": "./src/*",
@@ -1 +1 @@
1
- {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../../src/core/assert.js"],"names":[],"mappings":"AAgDA;;;;GAIG;AACH,0BAHW,OAAO,MACP,MAAM,QAMhB;;IAoKD;;;;;OAKG;IACH,kEAQC;;;;;;;;;;;;;;;;IAoBD;;;;;;OAMG;IACH,uGAKC;;;IAiCD;;;;OAIG;IACH,2DAMC;IAED;;;;OAIG;IACH,4DAMC;IAED;;;;OAIG;IACH,0DAMC;;IAiBD;;;;OAIG;IACH,sEAMC;IAED;;;;OAIG;IACH,mEAMC;IAED;;;;OAIG;IACH,4DAKC;IAED;;;;OAIG;IACH,4GAKC;;IAkBD;;;;OAIG;IACH,2DAMC;IAGD;;;;OAIG;IACH,wDAIC;IAED;;;;OAIG;IACH,yDAMC;IAED;;;;OAIG;IACH,2DAIC;IAED;;;;;OAKG;IACH,6DAIC;IAED;;;;;;;;;;;;;OAaG;IACH,2EAsBC;;AAlfD;;;;;GAKG;AACH,6CAFW,MAAM,QAIhB;AAED;;;;GAIG;AACH,0BAHW,OAAO,MACP,MAAM,QAIhB;AAhCD;;;;;GAKG;AACH,0CAFW,MAAM,QAShB;AAqBD;;;;;GAKG;AACH,kCAJW,MAAM,KACN,MAAM,MACN,MAAM,QAIhB;AAaD;;;;;GAKG;AACH,gCAJW,MAAM,KACN,MAAM,MACN,MAAM,QAiBhB;AAyBD;;;;;GAKG;AACH,uCAJW,MAAM,KACN,MAAM,MACN,MAAM,QAiBhB;AA5CD;;;;;GAKG;AACH,6BAJW,MAAM,KACN,MAAM,MACN,MAAM,QAiBhB;AAyBD;;;;;GAKG;AACH,oCAJW,MAAM,KACN,MAAM,MACN,MAAM,QAiBhB;AAkBD;;;;;;GAMG;AACH,0CAHW,MAAM,cACN,MAAM,QAehB;AAED;;;;;GAKG;AACH,iEAFW,MAAM,QAIhB;AAED;;;;;GAKG;AACH,mEAFW,MAAM,QAIhB;AAED;;;;;GAKG;AACH,+IAFW,MAAM,QAMhB;AApED;;;;;GAKG;AACH,2DAFW,MAAM,QAQhB;AA2GD;;;;GAIG;AACH,iCAHW,MAAM,MAAE,SACR,MAAM,QAQhB;AAID;;;;GAIG;AACH,iCAHW,MAAM,MAAE,SACR,MAAM,QAQhB;AA2CD;;;;GAIG;AACH,kCAHW,MAAM,MAAE,SACR,MAAM,QAQhB;AAuDD;;;;GAIG;AACH,0DAMC"}
1
+ {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../../src/core/assert.js"],"names":[],"mappings":"AAgDA;;;;GAIG;AACH,0BAHW,OAAO,MACP,MAAM,QAMhB;;IAoKD;;;;;OAKG;IACH,kEAQC;;;;;;;;;;;;;;;;IAoBD;;;;;;OAMG;IACH,uGASC;;;IAiCD;;;;OAIG;IACH,2DAMC;IAED;;;;OAIG;IACH,4DAMC;IAED;;;;OAIG;IACH,0DAMC;;IAiBD;;;;OAIG;IACH,sEAMC;IAED;;;;OAIG;IACH,mEAMC;IAED;;;;OAIG;IACH,4DAKC;IAED;;;;OAIG;IACH,4GAKC;;IAkBD;;;;OAIG;IACH,2DAMC;IAGD;;;;OAIG;IACH,wDAIC;IAED;;;;OAIG;IACH,yDAMC;IAED;;;;OAIG;IACH,2DAIC;IAED;;;;;OAKG;IACH,6DAIC;IAED;;;;;;;;;;;;;OAaG;IACH,2EAsBC;;AAtfD;;;;;GAKG;AACH,6CAFW,MAAM,QAIhB;AAED;;;;GAIG;AACH,0BAHW,OAAO,MACP,MAAM,QAIhB;AAhCD;;;;;GAKG;AACH,0CAFW,MAAM,QAShB;AAqBD;;;;;GAKG;AACH,kCAJW,MAAM,KACN,MAAM,MACN,MAAM,QAIhB;AAaD;;;;;GAKG;AACH,gCAJW,MAAM,KACN,MAAM,MACN,MAAM,QAiBhB;AAyBD;;;;;GAKG;AACH,uCAJW,MAAM,KACN,MAAM,MACN,MAAM,QAiBhB;AA5CD;;;;;GAKG;AACH,6BAJW,MAAM,KACN,MAAM,MACN,MAAM,QAiBhB;AAyBD;;;;;GAKG;AACH,oCAJW,MAAM,KACN,MAAM,MACN,MAAM,QAiBhB;AAkBD;;;;;;GAMG;AACH,0CAHW,MAAM,cACN,MAAM,QAehB;AAED;;;;;GAKG;AACH,iEAFW,MAAM,QAIhB;AAED;;;;;GAKG;AACH,mEAFW,MAAM,QAIhB;AAED;;;;;GAKG;AACH,+IAFW,MAAM,QAMhB;AApED;;;;;GAKG;AACH,2DAFW,MAAM,QAQhB;AA+GD;;;;GAIG;AACH,iCAHW,MAAM,MAAE,SACR,MAAM,QAQhB;AAID;;;;GAIG;AACH,iCAHW,MAAM,MAAE,SACR,MAAM,QAQhB;AA2CD;;;;GAIG;AACH,kCAHW,MAAM,MAAE,SACR,MAAM,QAQhB;AAuDD;;;;GAIG;AACH,0DAMC"}
@@ -264,7 +264,11 @@ assert.isInstanceOf = function (
264
264
  value,
265
265
  klass, value_name = "value", class_name = klass.name) {
266
266
  defined(klass, 'klass');
267
- assert(value instanceof klass, `expected ${value_name} to be instance of class '${class_name}'`);
267
+
268
+ // the message is built only on failure: built on every call, it allocated 64 B a call
269
+ if (!(value instanceof klass)) {
270
+ throw new Error(`expected ${value_name} to be instance of class '${class_name}'`);
271
+ }
268
272
  }
269
273
 
270
274
 
@@ -1,38 +1,2 @@
1
- /**
2
- * A 128-bit xxHash3 result, kept as its two 64-bit halves because that is how the reference
3
- * implementation names them and how every serialized form writes them.
4
- *
5
- * @author Alex Goldring
6
- * @copyright Company Named Limited (c) 2026
7
- */
8
- export class XXH128Hash {
9
- /**
10
- * @param {bigint} low64
11
- * @param {bigint} high64
12
- */
13
- constructor(low64: bigint, high64: bigint);
14
- /**
15
- * @type {bigint}
16
- */
17
- low64: bigint;
18
- /**
19
- * @type {bigint}
20
- */
21
- high64: bigint;
22
- /**
23
- * @param {XXH128Hash} other
24
- * @returns {boolean}
25
- */
26
- equals(other: XXH128Hash): boolean;
27
- /**
28
- * @returns {string} 32 lowercase hex digits, high half first
29
- */
30
- toString(): string;
31
- /**
32
- * Useful for type checking
33
- * @readonly
34
- * @type {boolean}
35
- */
36
- readonly isXXH128Hash: boolean;
37
- }
1
+ export { XXH128Hash } from "../../math/hash/XXH128Hash.js";
38
2
  //# sourceMappingURL=XXH128Hash.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"XXH128Hash.d.ts","sourceRoot":"","sources":["../../../../../src/core/binary/hash/XXH128Hash.js"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH;IAWI;;;OAGG;IACH,mBAHW,MAAM,UACN,MAAM,EAQhB;IApBD;;OAEG;IACH,OAFU,MAAM,CAEL;IAEX;;OAEG;IACH,QAFU,MAAM,CAEJ;IAcZ;;;OAGG;IACH,cAHW,UAAU,GACR,OAAO,CAInB;IAED;;OAEG;IACH,YAFa,MAAM,CAIlB;IAGL;;;;OAIG;IACH,uBAFU,OAAO,CAEgB;CAPhC"}
1
+ {"version":3,"file":"XXH128Hash.d.ts","sourceRoot":"","sources":["../../../../../src/core/binary/hash/XXH128Hash.js"],"names":[],"mappings":""}
@@ -1,55 +1,4 @@
1
- import { assert } from "../../assert.js";
2
- import { XXH_MASK_64 } from "./xxh3_common.js";
3
-
4
- /**
5
- * A 128-bit xxHash3 result, kept as its two 64-bit halves because that is how the reference
6
- * implementation names them and how every serialized form writes them.
7
- *
8
- * @author Alex Goldring
9
- * @copyright Company Named Limited (c) 2026
10
- */
11
- export class XXH128Hash {
12
- /**
13
- * @type {bigint}
14
- */
15
- low64 = 0n;
16
-
17
- /**
18
- * @type {bigint}
19
- */
20
- high64 = 0n;
21
-
22
- /**
23
- * @param {bigint} low64
24
- * @param {bigint} high64
25
- */
26
- constructor(low64, high64) {
27
- assert.equal(typeof low64, 'bigint', `low64 must be a bigint, instead was '${typeof low64}'`);
28
- assert.equal(typeof high64, 'bigint', `high64 must be a bigint, instead was '${typeof high64}'`);
29
-
30
- this.low64 = low64 & XXH_MASK_64;
31
- this.high64 = high64 & XXH_MASK_64;
32
- }
33
-
34
- /**
35
- * @param {XXH128Hash} other
36
- * @returns {boolean}
37
- */
38
- equals(other) {
39
- return this.low64 === other.low64 && this.high64 === other.high64;
40
- }
41
-
42
- /**
43
- * @returns {string} 32 lowercase hex digits, high half first
44
- */
45
- toString() {
46
- return this.high64.toString(16).padStart(16, '0') + this.low64.toString(16).padStart(16, '0');
47
- }
48
- }
49
-
50
- /**
51
- * Useful for type checking
52
- * @readonly
53
- * @type {boolean}
54
- */
55
- XXH128Hash.prototype.isXXH128Hash = true;
1
+ export {
2
+ /** @deprecated moved to core/math/hash/XXH128Hash.js; import it from there */
3
+ XXH128Hash
4
+ } from "../../math/hash/XXH128Hash.js";
@@ -1,13 +1,2 @@
1
- /**
2
- * xxHash3's default secret — the pseudorandom key material every unseeded hash mixes with, taken
3
- * directly from FARSH by the reference implementation. Reproduced byte-for-byte; changing a single
4
- * byte changes every hash this module produces.
5
- *
6
- * @see https://github.com/Cyan4973/xxHash/blob/dev/xxhash.h
7
- * @readonly
8
- * @type {Uint8Array}
9
- *
10
- * @copyright Company Named Limited (c) 2026
11
- */
12
- export const XXH3_SECRET: Uint8Array;
1
+ export { XXH3_SECRET } from "../../math/hash/XXH3_SECRET.js";
13
2
  //# sourceMappingURL=XXH3_SECRET.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"XXH3_SECRET.d.ts","sourceRoot":"","sources":["../../../../../src/core/binary/hash/XXH3_SECRET.js"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,0BAJU,UAAU,CAiBjB"}
1
+ {"version":3,"file":"XXH3_SECRET.d.ts","sourceRoot":"","sources":["../../../../../src/core/binary/hash/XXH3_SECRET.js"],"names":[],"mappings":""}
@@ -1,25 +1,4 @@
1
- /**
2
- * xxHash3's default secret — the pseudorandom key material every unseeded hash mixes with, taken
3
- * directly from FARSH by the reference implementation. Reproduced byte-for-byte; changing a single
4
- * byte changes every hash this module produces.
5
- *
6
- * @see https://github.com/Cyan4973/xxHash/blob/dev/xxhash.h
7
- * @readonly
8
- * @type {Uint8Array}
9
- *
10
- * @copyright Company Named Limited (c) 2026
11
- */
12
- export const XXH3_SECRET = new Uint8Array([
13
- 0xb8, 0xfe, 0x6c, 0x39, 0x23, 0xa4, 0x4b, 0xbe, 0x7c, 0x01, 0x81, 0x2c, 0xf7, 0x21, 0xad, 0x1c,
14
- 0xde, 0xd4, 0x6d, 0xe9, 0x83, 0x90, 0x97, 0xdb, 0x72, 0x40, 0xa4, 0xa4, 0xb7, 0xb3, 0x67, 0x1f,
15
- 0xcb, 0x79, 0xe6, 0x4e, 0xcc, 0xc0, 0xe5, 0x78, 0x82, 0x5a, 0xd0, 0x7d, 0xcc, 0xff, 0x72, 0x21,
16
- 0xb8, 0x08, 0x46, 0x74, 0xf7, 0x43, 0x24, 0x8e, 0xe0, 0x35, 0x90, 0xe6, 0x81, 0x3a, 0x26, 0x4c,
17
- 0x3c, 0x28, 0x52, 0xbb, 0x91, 0xc3, 0x00, 0xcb, 0x88, 0xd0, 0x65, 0x8b, 0x1b, 0x53, 0x2e, 0xa3,
18
- 0x71, 0x64, 0x48, 0x97, 0xa2, 0x0d, 0xf9, 0x4e, 0x38, 0x19, 0xef, 0x46, 0xa9, 0xde, 0xac, 0xd8,
19
- 0xa8, 0xfa, 0x76, 0x3f, 0xe3, 0x9c, 0x34, 0x3f, 0xf9, 0xdc, 0xbb, 0xc7, 0xc7, 0x0b, 0x4f, 0x1d,
20
- 0x8a, 0x51, 0xe0, 0x4b, 0xcd, 0xb4, 0x59, 0x31, 0xc8, 0x9f, 0x7e, 0xc9, 0xd9, 0x78, 0x73, 0x64,
21
- 0xea, 0xc5, 0xac, 0x83, 0x34, 0xd3, 0xeb, 0xc3, 0xc5, 0x81, 0xa0, 0xff, 0xfa, 0x13, 0x63, 0xeb,
22
- 0x17, 0x0d, 0xdd, 0x51, 0xb7, 0xf0, 0xda, 0x49, 0xd3, 0x16, 0x55, 0x26, 0x29, 0xd4, 0x68, 0x9e,
23
- 0x2b, 0x16, 0xbe, 0x58, 0x7d, 0x47, 0xa1, 0xfc, 0x8f, 0xf8, 0xb8, 0xd1, 0x7a, 0xd0, 0x31, 0xce,
24
- 0x45, 0xcb, 0x3a, 0x8f, 0x95, 0x16, 0x04, 0x28, 0xaf, 0xd7, 0xfb, 0xca, 0xbb, 0x4b, 0x40, 0x7e,
25
- ]);
1
+ export {
2
+ /** @deprecated moved to core/math/hash/XXH3_SECRET.js; import it from there */
3
+ XXH3_SECRET
4
+ } from "../../math/hash/XXH3_SECRET.js";
@@ -1,16 +1,2 @@
1
- /**
2
- * 32-bit Cyclic Redundancy Checksum.
3
- * @see https://en.wikipedia.org/wiki/Cyclic_redundancy_check
4
- * @param {Uint8Array} buffer byte buffer
5
- * @param {number} [offset=0] where to start in the input buffer
6
- * @param {number} [length=buffer.length] how many bytes to include in checksum calculation
7
- * @return {number} Unsigned 32-bit integer value
8
- * @copyright Company Named Limited (c) 2026
9
- *
10
- * @example
11
- * const buffer = new BinaryBuffer();
12
- * buffer.writeASCIIString("Hello World");
13
- * const checksum = crc32(buffer.raw_bytes, 0, buffer.position);
14
- */
15
- export function crc32(buffer: Uint8Array, offset?: number, length?: number): number;
1
+ export { crc32 } from "../../math/hash/crc32.js";
16
2
  //# sourceMappingURL=crc32.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"crc32.d.ts","sourceRoot":"","sources":["../../../../../src/core/binary/hash/crc32.js"],"names":[],"mappings":"AA2EA;;;;;;;;;;;;;GAaG;AACH,8BAXW,UAAU,WACV,MAAM,WACN,MAAM,GACL,MAAM,CAcjB"}
1
+ {"version":3,"file":"crc32.d.ts","sourceRoot":"","sources":["../../../../../src/core/binary/hash/crc32.js"],"names":[],"mappings":""}