@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":"SoundTrack.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/sopra/legacy/SoundTrack.js"],"names":[],"mappings":"AAUA;;;;;GAKG;AACH;IA6PI,uCAMC;IAjQD;;;OAGG;IACH,KAFU,SAAO,IAAI,CAEV;IAEX;;;;OAIG;IACH,MAFU,MAAM,CAEP;IAET;;;OAGG;IACH,SAFU,SAAO,IAAI,CAER;IAEb;;OAEG;IACH,QAFU,MAAM,CAEL;IAGX;;;OAGG;IACH,OAFU,MAAM,GAAC,eAAe,CAEV;IAEtB;;;;OAIG;IACH,eAHW,UAAU,UAmCpB;IAED;;;;OAIG;IACH,cAHW,MAAM,oBAAkB,GACtB,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,oBAAkB,GACtB,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,oBAAkB,SACxB,OAAO,QAQjB;IAED;;;;OAIG;IACH,cAHW,MAAM,oBAAkB,GACtB,OAAO,CAInB;IAUD;;;OAGG;IACH,qBAEC;IAdD;;;OAGG;IACH,oBAEC;IAkBD;;;OAGG;IACH,wBAEC;IAdD;;;OAGG;IACH,uBAEC;IAkBD;;;OAGG;IACH,+BAEC;IAdD;;;OAGG;IACH,8BAEC;IAUD;;;OAGG;IACH,YAFW,UAAU,QAOpB;IAED;;;;OAIG;IACH,cAHW,UAAU,GACR,OAAO,CAQnB;IAED;;;OAGG;IACH,QAFY,MAAM,CASjB;IAED;;;OAGG;IACH,SAFY,UAAU,CAQrB;IAED;;;;;;;;;MAWC;IAED;;;;;;;;;aA6BC;CAUJ;gCA/Q+B,sBAAsB"}
1
+ {"version":3,"file":"SoundTrack.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/sopra/legacy/SoundTrack.js"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH;IA+PI,uCAMC;IAnQD;;;OAGG;IACH,KAFU,SAAO,IAAI,CAEV;IAEX;;;;OAIG;IACH,MAFU,MAAM,CAEP;IAET;;;OAGG;IACH,SAFU,SAAO,IAAI,CAER;IAEb;;OAEG;IACH,QAFU,MAAM,CAEL;IAGX;;;OAGG;IACH,OAFU,MAAM,GAAC,eAAe,CAEV;IAEtB;;;;OAIG;IACH,eAHW,UAAU,UAmCpB;IAED;;;;OAIG;IACH,cAHW,MAAM,oBAAkB,GACtB,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,oBAAkB,GACtB,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,oBAAkB,SACxB,OAAO,QAQjB;IAED;;;;OAIG;IACH,cAHW,MAAM,oBAAkB,GACtB,OAAO,CAInB;IAUD;;;OAGG;IACH,qBAEC;IAdD;;;OAGG;IACH,oBAEC;IAkBD;;;OAGG;IACH,wBAEC;IAdD;;;OAGG;IACH,uBAEC;IAkBD;;;OAGG;IACH,+BAEC;IAdD;;;OAGG;IACH,8BAEC;IAUD;;;OAGG;IACH,YAFW,UAAU,QAOpB;IAED;;;;OAIG;IACH,cAHW,UAAU,GACR,OAAO,CAQnB;IAED;;;OAGG;IACH,QAFY,MAAM,CAWjB;IAED;;;OAGG;IACH,SAFY,UAAU,CAQrB;IAED;;;;;;;;;MAWC;IAED;;;;;;;;;aA6BC;CAUJ;gCAjR+B,sBAAsB"}
@@ -1,278 +1,281 @@
1
- import { assert } from "../../../../core/assert.js";
2
- import { combine_hash } from "../../../../core/collection/array/combine_hash.js";
3
- import { computeHashFloat } from "../../../../core/primitives/numbers/computeHashFloat.js";
4
- import { number_compare_ascending } from "../../../../core/primitives/numbers/number_compare_ascending.js";
5
- import { compareStrings } from "../../../../core/primitives/strings/compareStrings.js";
6
- import { computeStringHash } from "../../../../core/primitives/strings/computeStringHash.js";
7
- import { SoundTrackFlags } from "./SoundTrackFlags.js";
8
-
9
- const DEFAULT_FLAGS = SoundTrackFlags.StartWhenReady;
10
-
11
- /**
12
- * @deprecated Frozen legacy reader — one track of a legacy {@link SoundEmitter}. Data only: it has no
13
- * runtime behaviour and nothing plays it. It exists so that saves written before the native audio path
14
- * still deserialize, and so {@link convertLegacySoundComponents} can turn what they carry into an
15
- * authored sopra event. Do not author new content with it.
16
- */
17
- export class SoundTrack {
18
-
19
- /**
20
- *
21
- * @type {String|null}
22
- */
23
- url = null;
24
-
25
- /**
26
- * Playback cursor in seconds, as it was written. Never restored into playback — the legacy runtime
27
- * always started a loaded track from zero — so the converter drops it.
28
- * @type {number}
29
- */
30
- time = 0;
31
-
32
- /**
33
- * @deprecated Not used
34
- * @type {String|null}
35
- */
36
- channel = "";
37
-
38
- /**
39
- * @type {number}
40
- */
41
- volume = 1;
42
-
43
-
44
- /**
45
- *
46
- * @type {number|SoundTrackFlags}
47
- */
48
- flags = DEFAULT_FLAGS;
49
-
50
- /**
51
- *
52
- * @param {SoundTrack} other
53
- * @returns number
54
- */
55
- compare(other) {
56
- const url = compareStrings(this.url, other.url);
57
-
58
- if (url !== 0) {
59
- return url;
60
- }
61
-
62
- const time = number_compare_ascending(this.time, other.time);
63
-
64
- if (time !== 0) {
65
- return time;
66
- }
67
-
68
- const channel = compareStrings(this.channel, other.channel);
69
-
70
- if (channel !== 0) {
71
- return channel;
72
- }
73
-
74
- const volume = number_compare_ascending(this.volume, other.volume);
75
-
76
- if (volume !== 0) {
77
- return volume;
78
- }
79
-
80
- const flags = number_compare_ascending(this.flags, other.flags);
81
-
82
- if (flags !== 0) {
83
- return flags;
84
- }
85
-
86
- return 0;
87
- }
88
-
89
- /**
90
- *
91
- * @param {number|SoundEmitterFlags} flag
92
- * @returns {void}
93
- */
94
- setFlag(flag) {
95
- this.flags |= flag;
96
- }
97
-
98
- /**
99
- *
100
- * @param {number|SoundEmitterFlags} flag
101
- * @returns {void}
102
- */
103
- clearFlag(flag) {
104
- this.flags &= ~flag;
105
- }
106
-
107
- /**
108
- *
109
- * @param {number|SoundEmitterFlags} flag
110
- * @param {boolean} value
111
- */
112
- writeFlag(flag, value) {
113
- if (value) {
114
- this.setFlag(flag);
115
- } else {
116
- this.clearFlag(flag);
117
- }
118
- }
119
-
120
- /**
121
- *
122
- * @param {number|SoundEmitterFlags} flag
123
- * @returns {boolean}
124
- */
125
- getFlag(flag) {
126
- return (this.flags & flag) === flag;
127
- }
128
-
129
- /**
130
- * @deprecated
131
- * @return {boolean}
132
- */
133
- get loop() {
134
- return this.getFlag(SoundTrackFlags.Loop);
135
- }
136
-
137
- /**
138
- * @deprecated
139
- * @param {boolean} v
140
- */
141
- set loop(v) {
142
- this.writeFlag(SoundTrackFlags.Loop, v);
143
- }
144
-
145
- /**
146
- * @deprecated
147
- * @return {boolean}
148
- */
149
- get playing() {
150
- return this.getFlag(SoundTrackFlags.Playing);
151
- }
152
-
153
- /**
154
- * @deprecated
155
- * @param {boolean} v
156
- */
157
- set playing(v) {
158
- this.writeFlag(SoundTrackFlags.Playing, v);
159
- }
160
-
161
- /**
162
- * @deprecated
163
- * @return {boolean}
164
- */
165
- get startWhenReady() {
166
- return this.getFlag(SoundTrackFlags.StartWhenReady);
167
- }
168
-
169
- /**
170
- * @deprecated
171
- * @param {boolean} v
172
- */
173
- set startWhenReady(v) {
174
- this.writeFlag(SoundTrackFlags.StartWhenReady, v);
175
- }
176
-
177
- /**
178
- *
179
- * @param {SoundTrack} other
180
- */
181
- copy(other) {
182
- this.url = other.url;
183
- this.time = other.time;
184
- this.volume = other.volume;
185
- this.flags = other.flags;
186
- }
187
-
188
- /**
189
- *
190
- * @param {SoundTrack} other
191
- * @returns {boolean}
192
- */
193
- equals(other) {
194
- return this.url === other.url
195
- && this.time === other.time
196
- && this.volume === other.volume
197
- && this.flags === other.flags
198
- ;
199
- }
200
-
201
- /**
202
- *
203
- * @return {number}
204
- */
205
- hash() {
206
- return combine_hash(
207
- computeStringHash(this.url),
208
- computeHashFloat(this.time),
209
- computeHashFloat(this.volume),
210
- this.flags
211
- );
212
- }
213
-
214
- /**
215
- *
216
- * @return {SoundTrack}
217
- */
218
- clone() {
219
- const r = new SoundTrack();
220
-
221
- r.copy(this);
222
-
223
- return r;
224
- }
225
-
226
- toJSON() {
227
- return {
228
- url: this.url,
229
- loop: this.getFlag(SoundTrackFlags.Loop),
230
- time: this.time,
231
- volume: this.volume,
232
- playing: this.getFlag(SoundTrackFlags.Playing),
233
- startWhenReady: this.getFlag(SoundTrackFlags.StartWhenReady),
234
- usingAssetAlias: this.getFlag(SoundTrackFlags.UsingAliasURL),
235
- synchronized: this.getFlag(SoundTrackFlags.Synchronized)
236
- };
237
- }
238
-
239
- fromJSON(
240
- {
241
- url,
242
- loop = false,
243
- time = 0,
244
- volume = 1,
245
- playing = false,
246
- startWhenReady = true,
247
- usingAssetAlias = false,
248
- synchronized = false
249
- }
250
- ) {
251
- assert.isString(url, 'url');
252
-
253
- this.url = url;
254
-
255
- this.writeFlag(SoundTrackFlags.Loop, loop);
256
-
257
- this.writeFlag(SoundTrackFlags.UsingAliasURL, usingAssetAlias);
258
-
259
- this.time = time;
260
-
261
- this.volume = volume;
262
-
263
- this.writeFlag(SoundTrackFlags.Playing, playing);
264
-
265
- this.writeFlag(SoundTrackFlags.StartWhenReady, startWhenReady);
266
-
267
- this.writeFlag(SoundTrackFlags.Synchronized, synchronized);
268
- }
269
-
270
- static fromJSON(json) {
271
- const track = new SoundTrack();
272
-
273
- track.fromJSON(json);
274
-
275
- return track;
276
- }
277
-
278
- }
1
+ import { assert } from "../../../../core/assert.js";
2
+ import { hash_mix2 } from "../../../../core/math/hash/hash_mix2.js";
3
+ import { hash_mix3 } from "../../../../core/math/hash/hash_mix3.js";
4
+ import { computeHashFloat } from "../../../../core/primitives/numbers/computeHashFloat.js";
5
+ import { number_compare_ascending } from "../../../../core/primitives/numbers/number_compare_ascending.js";
6
+ import { compareStrings } from "../../../../core/primitives/strings/compareStrings.js";
7
+ import { computeStringHash } from "../../../../core/primitives/strings/computeStringHash.js";
8
+ import { SoundTrackFlags } from "./SoundTrackFlags.js";
9
+
10
+ const DEFAULT_FLAGS = SoundTrackFlags.StartWhenReady;
11
+
12
+ /**
13
+ * @deprecated Frozen legacy reader — one track of a legacy {@link SoundEmitter}. Data only: it has no
14
+ * runtime behaviour and nothing plays it. It exists so that saves written before the native audio path
15
+ * still deserialize, and so {@link convertLegacySoundComponents} can turn what they carry into an
16
+ * authored sopra event. Do not author new content with it.
17
+ */
18
+ export class SoundTrack {
19
+
20
+ /**
21
+ *
22
+ * @type {String|null}
23
+ */
24
+ url = null;
25
+
26
+ /**
27
+ * Playback cursor in seconds, as it was written. Never restored into playback — the legacy runtime
28
+ * always started a loaded track from zero — so the converter drops it.
29
+ * @type {number}
30
+ */
31
+ time = 0;
32
+
33
+ /**
34
+ * @deprecated Not used
35
+ * @type {String|null}
36
+ */
37
+ channel = "";
38
+
39
+ /**
40
+ * @type {number}
41
+ */
42
+ volume = 1;
43
+
44
+
45
+ /**
46
+ *
47
+ * @type {number|SoundTrackFlags}
48
+ */
49
+ flags = DEFAULT_FLAGS;
50
+
51
+ /**
52
+ *
53
+ * @param {SoundTrack} other
54
+ * @returns number
55
+ */
56
+ compare(other) {
57
+ const url = compareStrings(this.url, other.url);
58
+
59
+ if (url !== 0) {
60
+ return url;
61
+ }
62
+
63
+ const time = number_compare_ascending(this.time, other.time);
64
+
65
+ if (time !== 0) {
66
+ return time;
67
+ }
68
+
69
+ const channel = compareStrings(this.channel, other.channel);
70
+
71
+ if (channel !== 0) {
72
+ return channel;
73
+ }
74
+
75
+ const volume = number_compare_ascending(this.volume, other.volume);
76
+
77
+ if (volume !== 0) {
78
+ return volume;
79
+ }
80
+
81
+ const flags = number_compare_ascending(this.flags, other.flags);
82
+
83
+ if (flags !== 0) {
84
+ return flags;
85
+ }
86
+
87
+ return 0;
88
+ }
89
+
90
+ /**
91
+ *
92
+ * @param {number|SoundEmitterFlags} flag
93
+ * @returns {void}
94
+ */
95
+ setFlag(flag) {
96
+ this.flags |= flag;
97
+ }
98
+
99
+ /**
100
+ *
101
+ * @param {number|SoundEmitterFlags} flag
102
+ * @returns {void}
103
+ */
104
+ clearFlag(flag) {
105
+ this.flags &= ~flag;
106
+ }
107
+
108
+ /**
109
+ *
110
+ * @param {number|SoundEmitterFlags} flag
111
+ * @param {boolean} value
112
+ */
113
+ writeFlag(flag, value) {
114
+ if (value) {
115
+ this.setFlag(flag);
116
+ } else {
117
+ this.clearFlag(flag);
118
+ }
119
+ }
120
+
121
+ /**
122
+ *
123
+ * @param {number|SoundEmitterFlags} flag
124
+ * @returns {boolean}
125
+ */
126
+ getFlag(flag) {
127
+ return (this.flags & flag) === flag;
128
+ }
129
+
130
+ /**
131
+ * @deprecated
132
+ * @return {boolean}
133
+ */
134
+ get loop() {
135
+ return this.getFlag(SoundTrackFlags.Loop);
136
+ }
137
+
138
+ /**
139
+ * @deprecated
140
+ * @param {boolean} v
141
+ */
142
+ set loop(v) {
143
+ this.writeFlag(SoundTrackFlags.Loop, v);
144
+ }
145
+
146
+ /**
147
+ * @deprecated
148
+ * @return {boolean}
149
+ */
150
+ get playing() {
151
+ return this.getFlag(SoundTrackFlags.Playing);
152
+ }
153
+
154
+ /**
155
+ * @deprecated
156
+ * @param {boolean} v
157
+ */
158
+ set playing(v) {
159
+ this.writeFlag(SoundTrackFlags.Playing, v);
160
+ }
161
+
162
+ /**
163
+ * @deprecated
164
+ * @return {boolean}
165
+ */
166
+ get startWhenReady() {
167
+ return this.getFlag(SoundTrackFlags.StartWhenReady);
168
+ }
169
+
170
+ /**
171
+ * @deprecated
172
+ * @param {boolean} v
173
+ */
174
+ set startWhenReady(v) {
175
+ this.writeFlag(SoundTrackFlags.StartWhenReady, v);
176
+ }
177
+
178
+ /**
179
+ *
180
+ * @param {SoundTrack} other
181
+ */
182
+ copy(other) {
183
+ this.url = other.url;
184
+ this.time = other.time;
185
+ this.volume = other.volume;
186
+ this.flags = other.flags;
187
+ }
188
+
189
+ /**
190
+ *
191
+ * @param {SoundTrack} other
192
+ * @returns {boolean}
193
+ */
194
+ equals(other) {
195
+ return this.url === other.url
196
+ && this.time === other.time
197
+ && this.volume === other.volume
198
+ && this.flags === other.flags
199
+ ;
200
+ }
201
+
202
+ /**
203
+ *
204
+ * @return {number}
205
+ */
206
+ hash() {
207
+ return hash_mix2(
208
+ hash_mix3(
209
+ computeStringHash(this.url),
210
+ computeHashFloat(this.time),
211
+ computeHashFloat(this.volume)
212
+ ),
213
+ this.flags
214
+ );
215
+ }
216
+
217
+ /**
218
+ *
219
+ * @return {SoundTrack}
220
+ */
221
+ clone() {
222
+ const r = new SoundTrack();
223
+
224
+ r.copy(this);
225
+
226
+ return r;
227
+ }
228
+
229
+ toJSON() {
230
+ return {
231
+ url: this.url,
232
+ loop: this.getFlag(SoundTrackFlags.Loop),
233
+ time: this.time,
234
+ volume: this.volume,
235
+ playing: this.getFlag(SoundTrackFlags.Playing),
236
+ startWhenReady: this.getFlag(SoundTrackFlags.StartWhenReady),
237
+ usingAssetAlias: this.getFlag(SoundTrackFlags.UsingAliasURL),
238
+ synchronized: this.getFlag(SoundTrackFlags.Synchronized)
239
+ };
240
+ }
241
+
242
+ fromJSON(
243
+ {
244
+ url,
245
+ loop = false,
246
+ time = 0,
247
+ volume = 1,
248
+ playing = false,
249
+ startWhenReady = true,
250
+ usingAssetAlias = false,
251
+ synchronized = false
252
+ }
253
+ ) {
254
+ assert.isString(url, 'url');
255
+
256
+ this.url = url;
257
+
258
+ this.writeFlag(SoundTrackFlags.Loop, loop);
259
+
260
+ this.writeFlag(SoundTrackFlags.UsingAliasURL, usingAssetAlias);
261
+
262
+ this.time = time;
263
+
264
+ this.volume = volume;
265
+
266
+ this.writeFlag(SoundTrackFlags.Playing, playing);
267
+
268
+ this.writeFlag(SoundTrackFlags.StartWhenReady, startWhenReady);
269
+
270
+ this.writeFlag(SoundTrackFlags.Synchronized, synchronized);
271
+ }
272
+
273
+ static fromJSON(json) {
274
+ const track = new SoundTrack();
275
+
276
+ track.fromJSON(json);
277
+
278
+ return track;
279
+ }
280
+
281
+ }
@@ -12,6 +12,10 @@ export const BUS_ROOT_PARENT: string;
12
12
  *
13
13
  * Each bus is wired `input → effect[0] → … → effect[n] → gain(output)`; the output then connects to
14
14
  * its parent bus's input, or to the engine destination for a root bus (parentId === "").
15
+ *
16
+ * A bus's inserts are an {@link EffectChain}, and their parameters move through {@link setEffectParam} /
17
+ * {@link approachEffectParam} — the same two verbs as the fader's {@link setVolume} / {@link approachVolume}.
18
+ * The graph's nodes stay its own.
15
19
  */
16
20
  export class BusGraph {
17
21
  /**
@@ -20,13 +24,16 @@ export class BusGraph {
20
24
  */
21
25
  constructor(ctx: BaseAudioContext, destination: AudioNode);
22
26
  /**
23
- * id -> { definition, input, output }
24
- * @type {Map<string, {definition: BusDefinition, input: AudioNode, output: GainNode}>}
27
+ * id -> the bus's live record
28
+ * @type {Map<string, {definition: BusDefinition, input: AudioNode, output: GainNode, nominal: number, effects: EffectChain|null, sends: GainNode[]}>}
25
29
  */
26
30
  buses: Map<string, {
27
31
  definition: BusDefinition;
28
32
  input: AudioNode;
29
33
  output: GainNode;
34
+ nominal: number;
35
+ effects: EffectChain | null;
36
+ sends: GainNode[];
30
37
  }>;
31
38
  /**
32
39
  * Build the graph from a flat list of bus definitions. Order-independent: all nodes are created
@@ -69,6 +76,40 @@ export class BusGraph {
69
76
  * @returns {AudioNode}
70
77
  */
71
78
  getOutput(id: string): AudioNode;
79
+ /**
80
+ * Move a parameter of one of a bus's insert effects, now. See {@link EffectChain#setParam}.
81
+ * @param {string} id bus
82
+ * @param {number} effectIndex position in the bus definition's `effects`
83
+ * @param {string} name one of that effect class's `parameters` (`'frequency'` on an `EqEffect`)
84
+ * @param {number} value in the parameter's own units
85
+ */
86
+ setEffectParam(id: string, effectIndex: number, name: string, value: number): void;
87
+ /**
88
+ * Glide a parameter of one of a bus's insert effects toward `value`. See {@link EffectChain#approachParam}.
89
+ * @param {string} id bus
90
+ * @param {number} effectIndex
91
+ * @param {string} name
92
+ * @param {number} value
93
+ * @param {number} timeConstant seconds, above 0
94
+ */
95
+ approachEffectParam(id: string, effectIndex: number, name: string, value: number, timeConstant: number): void;
96
+ /**
97
+ * Where a bus effect's parameter was last sent (a glide's target, not where it has got to).
98
+ * @param {string} id bus
99
+ * @param {number} effectIndex
100
+ * @param {string} name
101
+ * @returns {number}
102
+ */
103
+ getEffectParam(id: string, effectIndex: number, name: string): number;
104
+ /**
105
+ * Whether this graph has bus `id`, with an insert at `effectIndex` exposing a parameter `name` — an
106
+ * address {@link setEffectParam} would take. Asks; never throws.
107
+ * @param {string} id bus
108
+ * @param {number} effectIndex
109
+ * @param {string} name
110
+ * @returns {boolean}
111
+ */
112
+ hasEffectParam(id: string, effectIndex: number, name: string): boolean;
72
113
  /**
73
114
  * @param {string} id
74
115
  * @returns {number} linear gain
@@ -116,4 +157,5 @@ export class BusGraph {
116
157
  #private;
117
158
  }
118
159
  export type BusDefinition = import("../definition/BusDefinition.js").BusDefinition;
160
+ import { EffectChain } from "./EffectChain.js";
119
161
  //# sourceMappingURL=BusGraph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BusGraph.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/sopra/runtime/BusGraph.js"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;;GAIG;AACH,8BAFU,MAAM,CAEkB;AAElC;;;;;GAKG;AACH;IAkBI;;;OAGG;IACH,iBAHW,gBAAgB,eAChB,SAAS,EAKnB;IAvBD;;;OAGG;IACH,OAFU,IAAI,MAAM,EAAE;QAAC,UAAU,EAAE,aAAa,CAAC;QAAC,KAAK,EAAE,SAAS,CAAC;QAAC,MAAM,EAAE,QAAQ,CAAA;KAAC,CAAC,CAEpE;IAqBlB;;;;OAIG;IACH,mBAFW,aAAa,EAAE,QA4FzB;IAED;;;;;;;;;;;;;;;OAeG;IACH,gBAcC;IAED;;;OAGG;IACH,QAHW,MAAM,GACJ,OAAO,CAInB;IAoBD;;;;OAIG;IACH,aAHW,MAAM,GACJ,SAAS,CAIrB;IAED;;;;;OAKG;IACH,cAHW,MAAM,GACJ,SAAS,CAIrB;IAED;;;OAGG;IACH,cAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;;;;;;;;;;;OAeG;IACH,cAHW,MAAM,UACN,MAAM,QAkBhB;IAED;;;OAGG;IACH,gBAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;;;OAOG;IACH,eALW,MAAM,UACN,MAAM,YACN,MAAM,eACN,MAAM,QAOhB;IAED;;;;;;OAMG;IACH,mBAJW,MAAM,UACN,MAAM,gBACN,MAAM,QAQhB;;CACJ;4BAxSY,OAAO,gCAAgC,EAAE,aAAa"}
1
+ {"version":3,"file":"BusGraph.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/sopra/runtime/BusGraph.js"],"names":[],"mappings":"AAKA;;GAEG;AAEH;;;;GAIG;AACH,8BAFU,MAAM,CAEkB;AAElC;;;;;;;;;GASG;AACH;IAkBI;;;OAGG;IACH,iBAHW,gBAAgB,eAChB,SAAS,EAKnB;IAvBD;;;OAGG;IACH,OAFU,IAAI,MAAM,EAAE;QAAC,UAAU,EAAE,aAAa,CAAC;QAAC,KAAK,EAAE,SAAS,CAAC;QAAC,MAAM,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,WAAW,GAAC,IAAI,CAAC;QAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;KAAC,CAAC,CAEnI;IAqBlB;;;;OAIG;IACH,mBAFW,aAAa,EAAE,QAqEzB;IAED;;;;;;;;;;;;;;;OAeG;IACH,gBAcC;IAED;;;OAGG;IACH,QAHW,MAAM,GACJ,OAAO,CAInB;IAoBD;;;;OAIG;IACH,aAHW,MAAM,GACJ,SAAS,CAIrB;IAED;;;;;OAKG;IACH,cAHW,MAAM,GACJ,SAAS,CAIrB;IAkBD;;;;;;OAMG;IACH,mBALW,MAAM,eACN,MAAM,QACN,MAAM,SACN,MAAM,QAIhB;IAED;;;;;;;OAOG;IACH,wBANW,MAAM,eACN,MAAM,QACN,MAAM,SACN,MAAM,gBACN,MAAM,QAIhB;IAED;;;;;;OAMG;IACH,mBALW,MAAM,eACN,MAAM,QACN,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;;;OAOG;IACH,mBALW,MAAM,eACN,MAAM,QACN,MAAM,GACJ,OAAO,CAMnB;IAED;;;OAGG;IACH,cAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;;;;;;;;;;;OAeG;IACH,cAHW,MAAM,UACN,MAAM,QAYhB;IAED;;;OAGG;IACH,gBAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;;;OAOG;IACH,eALW,MAAM,UACN,MAAM,YACN,MAAM,eACN,MAAM,QAOhB;IAED;;;;;;OAMG;IACH,mBAJW,MAAM,UACN,MAAM,gBACN,MAAM,QAQhB;;CACJ;4BA/UY,OAAO,gCAAgC,EAAE,aAAa;4BAHvC,kBAAkB"}