@woosh/meep-engine 3.46.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.
- package/editor/actions/concrete/TransformModifyAction.d.ts.map +1 -1
- package/editor/actions/concrete/TransformModifyAction.js +10 -2
- package/editor/ecs/component/FieldDescriptor.js +15 -0
- package/editor/ecs/component/createObjectEditor.js +41 -12
- package/editor/ecs/component/editors/ecs/Transform64Editor.d.ts.map +1 -1
- package/editor/ecs/component/editors/ecs/Transform64Editor.js +77 -70
- package/editor/tools/TransformToolV2.d.ts.map +1 -1
- package/editor/tools/TransformToolV2.js +4 -0
- package/editor/tools/v2/TransformControls.d.ts.map +1 -1
- package/editor/tools/v2/TransformControls.js +7 -0
- package/editor/view/ecs/EntityEditor.d.ts.map +1 -1
- package/editor/view/ecs/EntityEditor.js +4 -2
- package/package.json +1 -1
- package/src/core/collection/array/array_insert_at.d.ts +16 -0
- package/src/core/collection/array/array_insert_at.d.ts.map +1 -0
- package/src/core/collection/array/array_insert_at.js +32 -0
- package/src/core/collection/array/array_remove_at.d.ts +15 -0
- package/src/core/collection/array/array_remove_at.d.ts.map +1 -0
- package/src/core/collection/array/array_remove_at.js +30 -0
- package/src/core/geom/3d/quaternion/quat3_look_rotation.d.ts +37 -0
- package/src/core/geom/3d/quaternion/quat3_look_rotation.d.ts.map +1 -0
- package/src/core/geom/3d/quaternion/quat3_look_rotation.js +172 -0
- package/src/core/geom/Quaternion.d.ts +1 -0
- package/src/core/geom/Quaternion.d.ts.map +1 -1
- package/src/core/geom/Quaternion.js +12 -48
- package/src/engine/Engine.d.ts.map +1 -1
- package/src/engine/Engine.js +9 -4
- package/src/engine/ecs/storage/populateEngineSerializationRegistry.d.ts.map +1 -1
- package/src/engine/ecs/storage/populateEngineSerializationRegistry.js +10 -0
- package/src/engine/ecs/transform/t64_look_rotation.d.ts +4 -4
- package/src/engine/ecs/transform/t64_look_rotation.d.ts.map +1 -1
- package/src/engine/ecs/transform/t64_look_rotation.js +7 -18
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.js +30 -1
- package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts +6 -0
- package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts.map +1 -1
- package/src/engine/graphics3/GPUParticleEmitterSystem.js +72 -29
- package/src/engine/input/devices/KeyboardDevice.d.ts +1 -0
- package/src/engine/input/devices/KeyboardDevice.d.ts.map +1 -1
- package/src/engine/input/devices/KeyboardDevice.js +7 -6
- package/src/engine/navigation/ecs/path_following/PathFollowingSystem.d.ts.map +1 -1
- package/src/engine/navigation/ecs/path_following/PathFollowingSystem.js +15 -2
- package/src/engine/network/CONGESTION_CONTROL.md +9 -9
- package/src/engine/network/MESSAGE_TRANSPORT.md +364 -0
- package/src/engine/network/NetworkSession.d.ts +31 -11
- package/src/engine/network/NetworkSession.d.ts.map +1 -1
- package/src/engine/network/NetworkSession.js +453 -286
- package/src/engine/network/README.md +77 -27
- package/src/engine/network/SMOOTHNESS_DESIGN.md +13 -5
- package/src/engine/network/diagnostics/BandwidthMeter.d.ts +1 -1
- package/src/engine/network/diagnostics/BandwidthMeter.js +1 -1
- package/src/engine/network/orchestrator/HostJoin.d.ts +111 -0
- package/src/engine/network/orchestrator/HostJoin.d.ts.map +1 -0
- package/src/engine/network/orchestrator/HostJoin.js +271 -0
- package/src/engine/network/orchestrator/NetworkPeer.d.ts +151 -112
- package/src/engine/network/orchestrator/NetworkPeer.d.ts.map +1 -1
- package/src/engine/network/orchestrator/NetworkPeer.js +450 -499
- package/src/engine/network/orchestrator/PendingSlices.d.ts +30 -0
- package/src/engine/network/orchestrator/PendingSlices.d.ts.map +1 -0
- package/src/engine/network/orchestrator/PendingSlices.js +83 -0
- package/src/engine/network/orchestrator/ReliableFrames.d.ts +34 -0
- package/src/engine/network/orchestrator/ReliableFrames.d.ts.map +1 -0
- package/src/engine/network/orchestrator/ReliableFrames.js +96 -0
- package/src/engine/network/orchestrator/ServerAuthoritativeClient.d.ts +77 -10
- package/src/engine/network/orchestrator/ServerAuthoritativeClient.d.ts.map +1 -1
- package/src/engine/network/orchestrator/ServerAuthoritativeClient.js +236 -61
- package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts +20 -6
- package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts.map +1 -1
- package/src/engine/network/orchestrator/ServerAuthoritativeServer.js +33 -8
- package/src/engine/network/replication/Replicator.d.ts.map +1 -1
- package/src/engine/network/replication/Replicator.js +7 -1
- package/src/engine/network/sim/ActionLog.d.ts +32 -5
- package/src/engine/network/sim/ActionLog.d.ts.map +1 -1
- package/src/engine/network/sim/ActionLog.js +47 -5
- package/src/engine/network/sim/SimActionExecutor.d.ts +42 -2
- package/src/engine/network/sim/SimActionExecutor.d.ts.map +1 -1
- package/src/engine/network/sim/SimActionExecutor.js +100 -4
- package/src/engine/network/sim/Snapshotter.d.ts +12 -0
- package/src/engine/network/sim/Snapshotter.d.ts.map +1 -1
- package/src/engine/network/sim/Snapshotter.js +43 -0
- package/src/engine/network/state/Baseline.d.ts +1 -1
- package/src/engine/network/state/Baseline.js +1 -1
- package/src/engine/network/state/FrameBufferRing.d.ts +25 -6
- package/src/engine/network/state/FrameBufferRing.d.ts.map +1 -1
- package/src/engine/network/state/FrameBufferRing.js +51 -6
- package/src/engine/network/state/InputRing.d.ts +4 -0
- package/src/engine/network/state/InputRing.d.ts.map +1 -1
- package/src/engine/network/state/InputRing.js +7 -0
- package/src/engine/network/transport/DeferredTransport.d.ts.map +1 -1
- package/src/engine/network/transport/DeferredTransport.js +1 -0
- package/src/engine/network/transport/LoopbackTransport.d.ts.map +1 -1
- package/src/engine/network/transport/LoopbackTransport.js +4 -2
- package/src/engine/network/transport/Transport.d.ts +7 -0
- package/src/engine/network/transport/Transport.d.ts.map +1 -1
- package/src/engine/network/transport/Transport.js +8 -0
- package/src/engine/network/transport/adapters/NodeUDPTransport.d.ts.map +1 -1
- package/src/engine/network/transport/adapters/NodeUDPTransport.js +20 -5
- package/src/engine/network/transport/adapters/WebRTCDataChannelTransport.d.ts.map +1 -1
- package/src/engine/network/transport/adapters/WebRTCDataChannelTransport.js +8 -0
- package/src/engine/network/transport/adapters/WebTransportTransport.d.ts.map +1 -1
- package/src/engine/network/transport/adapters/WebTransportTransport.js +6 -0
- package/src/engine/network/transport/connection/Connection.d.ts +191 -0
- package/src/engine/network/transport/connection/Connection.d.ts.map +1 -0
- package/src/engine/network/transport/connection/Connection.js +1262 -0
- package/src/engine/network/transport/connection/RangeSet.d.ts +94 -0
- package/src/engine/network/transport/connection/RangeSet.d.ts.map +1 -0
- package/src/engine/network/transport/connection/RangeSet.js +260 -0
- package/src/engine/network/transport/connection/RxStream.d.ts +48 -0
- package/src/engine/network/transport/connection/RxStream.d.ts.map +1 -0
- package/src/engine/network/transport/connection/RxStream.js +211 -0
- package/src/engine/network/transport/connection/TxStream.d.ts +90 -0
- package/src/engine/network/transport/connection/TxStream.d.ts.map +1 -0
- package/src/engine/network/transport/connection/TxStream.js +243 -0
- package/src/engine/network/transport/connection/bytes_copy.d.ts +17 -0
- package/src/engine/network/transport/connection/bytes_copy.d.ts.map +1 -0
- package/src/engine/network/transport/connection/bytes_copy.js +34 -0
- package/src/engine/network/transport/connection/varint.d.ts +46 -0
- package/src/engine/network/transport/connection/varint.d.ts.map +1 -0
- package/src/engine/network/transport/connection/varint.js +107 -0
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
- package/src/engine/sound/ecs/audio/AudioEmitter.d.ts +38 -7
- package/src/engine/sound/ecs/audio/AudioEmitter.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/AudioEmitter.js +35 -7
- package/src/engine/sound/ecs/audio/AudioEmitterSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/AudioEmitterSerializationAdapter.js +5 -1
- package/src/engine/sound/ecs/audio/AudioEmitterSerializationUpgrader_0_1.d.ts +18 -0
- package/src/engine/sound/ecs/audio/AudioEmitterSerializationUpgrader_0_1.d.ts.map +1 -0
- package/src/engine/sound/ecs/audio/AudioEmitterSerializationUpgrader_0_1.js +48 -0
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts +12 -2
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.js +173 -9
- package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts +9 -3
- package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/LiveEmitterSet.js +28 -8
- package/src/engine/sound/ecs/trigger/AudioEventTrigger.d.ts +8 -0
- package/src/engine/sound/ecs/trigger/AudioEventTrigger.d.ts.map +1 -1
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationAdapter.js +5 -1
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationUpgrader_0_1.d.ts +18 -0
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationUpgrader_0_1.d.ts.map +1 -0
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationUpgrader_0_1.js +51 -0
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.d.ts.map +1 -1
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.js +15 -1
- package/src/engine/sound/sopra/README.md +768 -644
- package/src/engine/sound/sopra/SopraEngine.d.ts +104 -8
- package/src/engine/sound/sopra/SopraEngine.d.ts.map +1 -1
- package/src/engine/sound/sopra/SopraEngine.js +327 -12
- package/src/engine/sound/sopra/definition/EventDescription.d.ts +28 -2
- package/src/engine/sound/sopra/definition/EventDescription.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/EventDescription.js +55 -5
- package/src/engine/sound/sopra/definition/EventDescriptionSerializationAdapter.d.ts +10 -0
- package/src/engine/sound/sopra/definition/EventDescriptionSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/EventDescriptionSerializationAdapter.js +77 -55
- package/src/engine/sound/sopra/definition/EventDescriptionSerializationUpgrader_0_1.d.ts +31 -0
- package/src/engine/sound/sopra/definition/EventDescriptionSerializationUpgrader_0_1.d.ts.map +1 -0
- package/src/engine/sound/sopra/definition/EventDescriptionSerializationUpgrader_0_1.js +75 -0
- package/src/engine/sound/sopra/definition/effect/AbstractAudioEffect.d.ts +38 -9
- package/src/engine/sound/sopra/definition/effect/AbstractAudioEffect.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/effect/AbstractAudioEffect.js +34 -5
- package/src/engine/sound/sopra/definition/effect/CompressorEffect.d.ts +7 -2
- package/src/engine/sound/sopra/definition/effect/CompressorEffect.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/effect/CompressorEffect.js +137 -122
- package/src/engine/sound/sopra/definition/effect/EqEffect.d.ts +3 -1
- package/src/engine/sound/sopra/definition/effect/EqEffect.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/effect/EqEffect.js +146 -131
- package/src/engine/sound/sopra/definition/effect/ReverbEffect.d.ts +1 -0
- package/src/engine/sound/sopra/definition/effect/ReverbEffect.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/effect/ReverbEffect.js +6 -1
- package/src/engine/sound/sopra/runtime/BusGraph.d.ts +44 -2
- package/src/engine/sound/sopra/runtime/BusGraph.d.ts.map +1 -1
- package/src/engine/sound/sopra/runtime/BusGraph.js +83 -43
- package/src/engine/sound/sopra/runtime/EffectChain.d.ts +96 -0
- package/src/engine/sound/sopra/runtime/EffectChain.d.ts.map +1 -0
- package/src/engine/sound/sopra/runtime/EffectChain.js +286 -0
- package/src/engine/sound/sopra/runtime/EffectParamOverrides.d.ts +123 -0
- package/src/engine/sound/sopra/runtime/EffectParamOverrides.d.ts.map +1 -0
- package/src/engine/sound/sopra/runtime/EffectParamOverrides.js +320 -0
- package/src/engine/sound/sopra/runtime/EventInstance.d.ts +55 -5
- package/src/engine/sound/sopra/runtime/EventInstance.d.ts.map +1 -1
- package/src/engine/sound/sopra/runtime/EventInstance.js +201 -26
- package/src/engine/sound/sopra/serialization/populateSopraSerializationRegistry.d.ts +2 -1
- package/src/engine/sound/sopra/serialization/populateSopraSerializationRegistry.d.ts.map +1 -1
- package/src/engine/sound/sopra/serialization/populateSopraSerializationRegistry.js +6 -1
- package/src/engine/sound/sopra/serialization/sopraSerializationHarness.d.ts +15 -0
- package/src/engine/sound/sopra/serialization/sopraSerializationHarness.d.ts.map +1 -1
- package/src/engine/sound/sopra/serialization/sopraSerializationHarness.js +32 -0
- package/src/engine/sound/sopra/util/MockAudioContext.d.ts.map +1 -1
- package/src/engine/sound/sopra/util/MockAudioContext.js +3 -0
- package/src/engine/sound/sopra/util/fadeOutAndStop.d.ts +13 -3
- package/src/engine/sound/sopra/util/fadeOutAndStop.d.ts.map +1 -1
- package/src/engine/sound/sopra/util/fadeOutAndStop.js +25 -13
- package/src/shade/RENDERER_CONTRACT.md +6 -3
- package/src/shade/device/SHADE_DEVICE_FLOOR.d.ts +24 -0
- package/src/shade/device/SHADE_DEVICE_FLOOR.d.ts.map +1 -0
- package/src/shade/device/SHADE_DEVICE_FLOOR.js +34 -0
- package/src/shade/device/ShadeDeviceFailure.d.ts +12 -5
- package/src/shade/device/ShadeDeviceFailure.d.ts.map +1 -1
- package/src/shade/device/ShadeDeviceFailure.js +17 -8
- package/src/shade/device/ShadeDeviceFailureReason.d.ts +1 -1
- package/src/shade/device/ShadeDeviceFailureReason.js +2 -2
- package/src/shade/device/shade_device_floor_unmet.d.ts +13 -0
- package/src/shade/device/shade_device_floor_unmet.d.ts.map +1 -0
- package/src/shade/device/shade_device_floor_unmet.js +32 -0
- package/src/shade/renderer/Renderer.d.ts +2 -0
- package/src/shade/renderer/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.js +29 -55
- package/src/shade/renderer/buffer/GPUBufferAllocator.d.ts.map +1 -1
- package/src/shade/renderer/buffer/GPUBufferAllocator.js +9 -0
- package/src/shade/renderer/buffer/buffer_pool_ops.d.ts +21 -12
- package/src/shade/renderer/buffer/buffer_pool_ops.d.ts.map +1 -1
- package/src/shade/renderer/buffer/buffer_pool_ops.js +18 -19
- package/src/shade/renderer/gpu_primitive/test/gpu_test.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/test/gpu_test.js +8 -11
- package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
- package/src/shade/renderer/pool/TransientResourcePool.d.ts +24 -0
- package/src/shade/renderer/pool/TransientResourcePool.d.ts.map +1 -1
- package/src/shade/renderer/pool/TransientResourcePool.js +41 -10
- package/src/shade/renderer/shader/ComputeShader.d.ts.map +1 -1
- package/src/shade/renderer/shader/ComputeShader.js +18 -2
- package/src/shade/renderer/shader/ImageShader.d.ts.map +1 -1
- package/src/shade/renderer/shader/ImageShader.js +230 -218
- package/src/view/graphics/GraphicsContextFailureView.d.ts +1 -2
- package/src/view/graphics/GraphicsContextFailureView.d.ts.map +1 -1
- package/src/view/graphics/GraphicsContextFailureView.js +1 -2
- package/src/engine/network/transport/Channel.js +0 -336
- package/src/engine/network/transport/ReliableCommandPipeline.js +0 -335
- package/src/engine/network/transport/fragments/FragmentAssembler.js +0 -350
- package/src/engine/network/transport/fragments/FragmentRetention.js +0 -191
- package/src/engine/network/transport/fragments/fragment_send.js +0 -157
- package/src/engine/network/transport/fragments/packet_size.js +0 -107
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {import("../definition/EventDescription.js").EventDescription} EventDescription
|
|
3
|
+
* @typedef {import("./EventInstance.js").EventInstance} EventInstance
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* How an {@link EffectParamOverrides} tells its owner to move the instance it currently plays: to `value`,
|
|
7
|
+
* now when `timeConstant` is 0, as a glide (`approachEffectParam`) above 0. A removed override sends the
|
|
8
|
+
* event's own value.
|
|
9
|
+
* @callback EffectParamChange
|
|
10
|
+
* @param {number} effectIndex
|
|
11
|
+
* @param {string} name
|
|
12
|
+
* @param {number} value
|
|
13
|
+
* @param {number} timeConstant seconds
|
|
14
|
+
* @returns {void}
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Live overrides of an event's insert-effect parameters ({@link EventDescription.effects}) that outlive any
|
|
18
|
+
* one {@link EventInstance}. They belong to whatever plays the event over and over — an `AudioEmitter`,
|
|
19
|
+
* whose spatially managed instance is torn down on demotion and built afresh on promotion — and are put
|
|
20
|
+
* onto every instance it gets ({@link applyTo}), so a filter set on the emitter stays set however often
|
|
21
|
+
* the voice underneath is rebuilt.
|
|
22
|
+
*
|
|
23
|
+
* Runtime state, not a definition: never serialized, and no part of its owner's identity.
|
|
24
|
+
*
|
|
25
|
+
* An override is addressed the way an instance addresses the parameter itself: the effect's index in the
|
|
26
|
+
* event's `effects`, and one of that effect class's `parameters`. While {@link attach}ed to the event it
|
|
27
|
+
* addresses, every write is checked against the event's effects and one they do not have throws at the
|
|
28
|
+
* write, storing nothing; overrides written before that are checked when it attaches. Values are checked
|
|
29
|
+
* as an `AudioParam` would check them, in every build (not by `assert`). So an override that is held
|
|
30
|
+
* always fits, and no later rebuild of an instance can trip on one — as long as the event's effects are
|
|
31
|
+
* not edited in place while it is attached.
|
|
32
|
+
*
|
|
33
|
+
* One owner at a time: the attached one is told of every change ({@link EffectParamChange}) and moves the
|
|
34
|
+
* instance it currently plays, if any.
|
|
35
|
+
*/
|
|
36
|
+
export class EffectParamOverrides {
|
|
37
|
+
/**
|
|
38
|
+
* @returns {number} how many parameters are overridden
|
|
39
|
+
*/
|
|
40
|
+
get size(): number;
|
|
41
|
+
/**
|
|
42
|
+
* @returns {boolean} whether an owner is attached
|
|
43
|
+
*/
|
|
44
|
+
get attached(): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Throw unless {@link attach} would take `event`: when another owner is attached, or when an override
|
|
47
|
+
* already held is one the event's effects do not have (named). Changes nothing — so an owner can ask
|
|
48
|
+
* before it does anything else, and attach once nothing else can fail.
|
|
49
|
+
* @param {EventDescription} event
|
|
50
|
+
*/
|
|
51
|
+
checkAttach(event: EventDescription): void;
|
|
52
|
+
/**
|
|
53
|
+
* Become the overrides of whatever plays `event`: from now on every write is checked against its
|
|
54
|
+
* effects, and `onChange` is told of it. Checked first as {@link checkAttach} checks; on a throw nothing
|
|
55
|
+
* changes.
|
|
56
|
+
* @param {EventDescription} event the event the owner's instances are built from
|
|
57
|
+
* @param {EffectParamChange} onChange
|
|
58
|
+
*/
|
|
59
|
+
attach(event: EventDescription, onChange: EffectParamChange): void;
|
|
60
|
+
/**
|
|
61
|
+
* Stop telling `onChange` of changes — if it is the attached owner; a later owner is left attached. The
|
|
62
|
+
* overrides themselves are kept, for whatever attaches next.
|
|
63
|
+
* @param {EffectParamChange} onChange
|
|
64
|
+
* @returns {boolean} whether `onChange` was attached
|
|
65
|
+
*/
|
|
66
|
+
detach(onChange: EffectParamChange): boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Override a parameter; the current instance moves there now.
|
|
69
|
+
* @param {number} effectIndex position in the event's `effects`
|
|
70
|
+
* @param {string} name one of that effect class's `parameters`
|
|
71
|
+
* @param {number} value in the parameter's own units (Hz, dB, ...)
|
|
72
|
+
*/
|
|
73
|
+
set(effectIndex: number, name: string, value: number): void;
|
|
74
|
+
/**
|
|
75
|
+
* Override a parameter; the current instance glides there (see {@link EventInstance#approachEffectParam}).
|
|
76
|
+
* The override itself is the target, so an instance built while the glide is in flight starts AT it.
|
|
77
|
+
* @param {number} effectIndex
|
|
78
|
+
* @param {string} name
|
|
79
|
+
* @param {number} value
|
|
80
|
+
* @param {number} timeConstant seconds, above 0
|
|
81
|
+
*/
|
|
82
|
+
approach(effectIndex: number, name: string, value: number, timeConstant: number): void;
|
|
83
|
+
/**
|
|
84
|
+
* @param {number} effectIndex
|
|
85
|
+
* @param {string} name
|
|
86
|
+
* @returns {number|undefined} the override, or undefined if the parameter is not overridden
|
|
87
|
+
*/
|
|
88
|
+
get(effectIndex: number, name: string): number | undefined;
|
|
89
|
+
/**
|
|
90
|
+
* @param {number} effectIndex
|
|
91
|
+
* @param {string} name
|
|
92
|
+
* @returns {boolean}
|
|
93
|
+
*/
|
|
94
|
+
has(effectIndex: number, name: string): boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Drop an override: the current instance returns to the event's own value now, and later ones are built
|
|
97
|
+
* at it. To glide back instead, {@link approach} the event's value first.
|
|
98
|
+
* @param {number} effectIndex
|
|
99
|
+
* @param {string} name
|
|
100
|
+
* @returns {boolean} false if the parameter was not overridden
|
|
101
|
+
*/
|
|
102
|
+
remove(effectIndex: number, name: string): boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Drop every override (see {@link remove}).
|
|
105
|
+
*/
|
|
106
|
+
clear(): void;
|
|
107
|
+
/**
|
|
108
|
+
* Put every override onto a freshly built instance, at once: a new instance starts at the overrides, not
|
|
109
|
+
* gliding toward them from the definition.
|
|
110
|
+
* @param {EventInstance} instance
|
|
111
|
+
*/
|
|
112
|
+
applyTo(instance: EventInstance): void;
|
|
113
|
+
#private;
|
|
114
|
+
}
|
|
115
|
+
export type EventDescription = import("../definition/EventDescription.js").EventDescription;
|
|
116
|
+
export type EventInstance = import("./EventInstance.js").EventInstance;
|
|
117
|
+
/**
|
|
118
|
+
* How an {@link EffectParamOverrides } tells its owner to move the instance it currently plays: to `value`,
|
|
119
|
+
* now when `timeConstant` is 0, as a glide (`approachEffectParam`) above 0. A removed override sends the
|
|
120
|
+
* event's own value.
|
|
121
|
+
*/
|
|
122
|
+
export type EffectParamChange = (effectIndex: number, name: string, value: number, timeConstant: number) => void;
|
|
123
|
+
//# sourceMappingURL=EffectParamOverrides.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EffectParamOverrides.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/sopra/runtime/EffectParamOverrides.js"],"names":[],"mappings":"AAGA;;;GAGG;AAEH;;;;;;;;;;GAUG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH;IA0BI;;OAEG;IACH,mBAEC;IAED;;OAEG;IACH,wBAEC;IAED;;;;;OAKG;IACH,mBAFW,gBAAgB,QAsB1B;IAED;;;;;;OAMG;IACH,cAHW,gBAAgB,YAChB,iBAAiB,QAS3B;IAED;;;;;OAKG;IACH,iBAHW,iBAAiB,GACf,OAAO,CAWnB;IA8CD;;;;;OAKG;IACH,iBAJW,MAAM,QACN,MAAM,SACN,MAAM,QAQhB;IAED;;;;;;;OAOG;IACH,sBALW,MAAM,QACN,MAAM,SACN,MAAM,gBACN,MAAM,QAWhB;IAED;;;;OAIG;IACH,iBAJW,MAAM,QACN,MAAM,GACJ,MAAM,GAAC,SAAS,CAM5B;IAED;;;;OAIG;IACH,iBAJW,MAAM,QACN,MAAM,GACJ,OAAO,CAMnB;IAED;;;;;;OAMG;IACH,oBAJW,MAAM,QACN,MAAM,GACJ,OAAO,CAmBnB;IAED;;OAEG;IACH,cAkBC;IAcD;;;;OAIG;IACH,kBAFW,aAAa,QAcvB;;CACJ;+BA3TY,OAAO,mCAAmC,EAAE,gBAAgB;4BAC5D,OAAO,oBAAoB,EAAE,aAAa;;;;;;8CAQ5C,MAAM,QACN,MAAM,SACN,MAAM,gBACN,MAAM,KACJ,IAAI"}
|
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
import { assert } from "../../../../core/assert.js";
|
|
2
|
+
import { effectParamIndex } from "./EffectChain.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @typedef {import("../definition/EventDescription.js").EventDescription} EventDescription
|
|
6
|
+
* @typedef {import("./EventInstance.js").EventInstance} EventInstance
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* How an {@link EffectParamOverrides} tells its owner to move the instance it currently plays: to `value`,
|
|
11
|
+
* now when `timeConstant` is 0, as a glide (`approachEffectParam`) above 0. A removed override sends the
|
|
12
|
+
* event's own value.
|
|
13
|
+
* @callback EffectParamChange
|
|
14
|
+
* @param {number} effectIndex
|
|
15
|
+
* @param {string} name
|
|
16
|
+
* @param {number} value
|
|
17
|
+
* @param {number} timeConstant seconds
|
|
18
|
+
* @returns {void}
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Live overrides of an event's insert-effect parameters ({@link EventDescription.effects}) that outlive any
|
|
23
|
+
* one {@link EventInstance}. They belong to whatever plays the event over and over — an `AudioEmitter`,
|
|
24
|
+
* whose spatially managed instance is torn down on demotion and built afresh on promotion — and are put
|
|
25
|
+
* onto every instance it gets ({@link applyTo}), so a filter set on the emitter stays set however often
|
|
26
|
+
* the voice underneath is rebuilt.
|
|
27
|
+
*
|
|
28
|
+
* Runtime state, not a definition: never serialized, and no part of its owner's identity.
|
|
29
|
+
*
|
|
30
|
+
* An override is addressed the way an instance addresses the parameter itself: the effect's index in the
|
|
31
|
+
* event's `effects`, and one of that effect class's `parameters`. While {@link attach}ed to the event it
|
|
32
|
+
* addresses, every write is checked against the event's effects and one they do not have throws at the
|
|
33
|
+
* write, storing nothing; overrides written before that are checked when it attaches. Values are checked
|
|
34
|
+
* as an `AudioParam` would check them, in every build (not by `assert`). So an override that is held
|
|
35
|
+
* always fits, and no later rebuild of an instance can trip on one — as long as the event's effects are
|
|
36
|
+
* not edited in place while it is attached.
|
|
37
|
+
*
|
|
38
|
+
* One owner at a time: the attached one is told of every change ({@link EffectParamChange}) and moves the
|
|
39
|
+
* instance it currently plays, if any.
|
|
40
|
+
*/
|
|
41
|
+
export class EffectParamOverrides {
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* effect index → that effect's overridden parameters (name → value). Null until the first override:
|
|
45
|
+
* most owners never hold one.
|
|
46
|
+
* @type {Map<number, Map<string, number>>|null}
|
|
47
|
+
*/
|
|
48
|
+
#values = null;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* @type {number}
|
|
52
|
+
*/
|
|
53
|
+
#size = 0;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* The event the attached owner plays; null while detached. Its `effects` are read at each check, so a
|
|
57
|
+
* check follows whatever list the owner's next instance will be built from.
|
|
58
|
+
* @type {EventDescription|null}
|
|
59
|
+
*/
|
|
60
|
+
#event = null;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* @type {EffectParamChange|null}
|
|
64
|
+
*/
|
|
65
|
+
#onChange = null;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* @returns {number} how many parameters are overridden
|
|
69
|
+
*/
|
|
70
|
+
get size() {
|
|
71
|
+
return this.#size;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* @returns {boolean} whether an owner is attached
|
|
76
|
+
*/
|
|
77
|
+
get attached() {
|
|
78
|
+
return this.#onChange !== null;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Throw unless {@link attach} would take `event`: when another owner is attached, or when an override
|
|
83
|
+
* already held is one the event's effects do not have (named). Changes nothing — so an owner can ask
|
|
84
|
+
* before it does anything else, and attach once nothing else can fail.
|
|
85
|
+
* @param {EventDescription} event
|
|
86
|
+
*/
|
|
87
|
+
checkAttach(event) {
|
|
88
|
+
assert.defined(event, 'event');
|
|
89
|
+
|
|
90
|
+
if (this.#onChange !== null) {
|
|
91
|
+
throw new Error('sopra: these effect overrides already have an owner - one playing thing at a time (one entity per AudioEmitter)');
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
const values = this.#values;
|
|
95
|
+
|
|
96
|
+
if (values === null) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
const effects = event.effects;
|
|
101
|
+
|
|
102
|
+
for (const [effectIndex, params] of values) {
|
|
103
|
+
for (const name of params.keys()) {
|
|
104
|
+
effectParamIndex(effects, effectIndex, name);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Become the overrides of whatever plays `event`: from now on every write is checked against its
|
|
111
|
+
* effects, and `onChange` is told of it. Checked first as {@link checkAttach} checks; on a throw nothing
|
|
112
|
+
* changes.
|
|
113
|
+
* @param {EventDescription} event the event the owner's instances are built from
|
|
114
|
+
* @param {EffectParamChange} onChange
|
|
115
|
+
*/
|
|
116
|
+
attach(event, onChange) {
|
|
117
|
+
assert.isFunction(onChange, 'onChange');
|
|
118
|
+
|
|
119
|
+
this.checkAttach(event);
|
|
120
|
+
|
|
121
|
+
this.#event = event;
|
|
122
|
+
this.#onChange = onChange;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Stop telling `onChange` of changes — if it is the attached owner; a later owner is left attached. The
|
|
127
|
+
* overrides themselves are kept, for whatever attaches next.
|
|
128
|
+
* @param {EffectParamChange} onChange
|
|
129
|
+
* @returns {boolean} whether `onChange` was attached
|
|
130
|
+
*/
|
|
131
|
+
detach(onChange) {
|
|
132
|
+
if (this.#onChange !== onChange) {
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
this.#event = null;
|
|
137
|
+
this.#onChange = null;
|
|
138
|
+
|
|
139
|
+
return true;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* @param {number} effectIndex
|
|
144
|
+
* @param {string} name
|
|
145
|
+
* @param {number} value
|
|
146
|
+
*/
|
|
147
|
+
#store(effectIndex, name, value) {
|
|
148
|
+
// a fractional or negative index is no position, and would be held where no instance can take it
|
|
149
|
+
if (!Number.isInteger(effectIndex) || effectIndex < 0) {
|
|
150
|
+
throw new Error(`sopra: an effect index is a non-negative integer, got ${effectIndex}`);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
assert.isString(name, 'name');
|
|
154
|
+
|
|
155
|
+
// An AudioParam throws on a non-finite value. Refused here in every build - an `assert` is stripped
|
|
156
|
+
// from a production one, and the value would be held until some promotion tripped over it.
|
|
157
|
+
if (!Number.isFinite(value)) {
|
|
158
|
+
throw new Error(`sopra: an effect parameter's value is a finite number, got ${value}`);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
if (this.#event !== null) {
|
|
162
|
+
effectParamIndex(this.#event.effects, effectIndex, name);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
let values = this.#values;
|
|
166
|
+
|
|
167
|
+
if (values === null) {
|
|
168
|
+
values = new Map();
|
|
169
|
+
this.#values = values;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
let params = values.get(effectIndex);
|
|
173
|
+
|
|
174
|
+
if (params === undefined) {
|
|
175
|
+
params = new Map();
|
|
176
|
+
values.set(effectIndex, params);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
if (!params.has(name)) {
|
|
180
|
+
this.#size++;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
params.set(name, value);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Override a parameter; the current instance moves there now.
|
|
188
|
+
* @param {number} effectIndex position in the event's `effects`
|
|
189
|
+
* @param {string} name one of that effect class's `parameters`
|
|
190
|
+
* @param {number} value in the parameter's own units (Hz, dB, ...)
|
|
191
|
+
*/
|
|
192
|
+
set(effectIndex, name, value) {
|
|
193
|
+
this.#store(effectIndex, name, value);
|
|
194
|
+
|
|
195
|
+
if (this.#onChange !== null) {
|
|
196
|
+
this.#onChange(effectIndex, name, value, 0);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Override a parameter; the current instance glides there (see {@link EventInstance#approachEffectParam}).
|
|
202
|
+
* The override itself is the target, so an instance built while the glide is in flight starts AT it.
|
|
203
|
+
* @param {number} effectIndex
|
|
204
|
+
* @param {string} name
|
|
205
|
+
* @param {number} value
|
|
206
|
+
* @param {number} timeConstant seconds, above 0
|
|
207
|
+
*/
|
|
208
|
+
approach(effectIndex, name, value, timeConstant) {
|
|
209
|
+
assert.isFinite(timeConstant, 'timeConstant');
|
|
210
|
+
assert.greaterThan(timeConstant, 0, 'timeConstant');
|
|
211
|
+
|
|
212
|
+
this.#store(effectIndex, name, value);
|
|
213
|
+
|
|
214
|
+
if (this.#onChange !== null) {
|
|
215
|
+
this.#onChange(effectIndex, name, value, timeConstant);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* @param {number} effectIndex
|
|
221
|
+
* @param {string} name
|
|
222
|
+
* @returns {number|undefined} the override, or undefined if the parameter is not overridden
|
|
223
|
+
*/
|
|
224
|
+
get(effectIndex, name) {
|
|
225
|
+
const params = this.#values === null ? undefined : this.#values.get(effectIndex);
|
|
226
|
+
|
|
227
|
+
return params === undefined ? undefined : params.get(name);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* @param {number} effectIndex
|
|
232
|
+
* @param {string} name
|
|
233
|
+
* @returns {boolean}
|
|
234
|
+
*/
|
|
235
|
+
has(effectIndex, name) {
|
|
236
|
+
const params = this.#values === null ? undefined : this.#values.get(effectIndex);
|
|
237
|
+
|
|
238
|
+
return params !== undefined && params.has(name);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* Drop an override: the current instance returns to the event's own value now, and later ones are built
|
|
243
|
+
* at it. To glide back instead, {@link approach} the event's value first.
|
|
244
|
+
* @param {number} effectIndex
|
|
245
|
+
* @param {string} name
|
|
246
|
+
* @returns {boolean} false if the parameter was not overridden
|
|
247
|
+
*/
|
|
248
|
+
remove(effectIndex, name) {
|
|
249
|
+
const values = this.#values;
|
|
250
|
+
const params = values === null ? undefined : values.get(effectIndex);
|
|
251
|
+
|
|
252
|
+
if (params === undefined || !params.delete(name)) {
|
|
253
|
+
return false;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
if (params.size === 0) {
|
|
257
|
+
values.delete(effectIndex);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
this.#size--;
|
|
261
|
+
|
|
262
|
+
this.#released(effectIndex, name);
|
|
263
|
+
|
|
264
|
+
return true;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* Drop every override (see {@link remove}).
|
|
269
|
+
*/
|
|
270
|
+
clear() {
|
|
271
|
+
const values = this.#values;
|
|
272
|
+
|
|
273
|
+
if (values === null) {
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
this.#values = null;
|
|
278
|
+
this.#size = 0;
|
|
279
|
+
|
|
280
|
+
for (const [effectIndex, params] of values) {
|
|
281
|
+
for (const name of params.keys()) {
|
|
282
|
+
// the owner may write while it is told; a parameter overridden again meanwhile keeps that
|
|
283
|
+
if (!this.has(effectIndex, name)) {
|
|
284
|
+
this.#released(effectIndex, name);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
/**
|
|
291
|
+
* Tell the owner a parameter is no longer overridden: its instance goes back to the event's own value,
|
|
292
|
+
* the definition field the parameter starts from.
|
|
293
|
+
* @param {number} effectIndex
|
|
294
|
+
* @param {string} name
|
|
295
|
+
*/
|
|
296
|
+
#released(effectIndex, name) {
|
|
297
|
+
if (this.#onChange !== null) {
|
|
298
|
+
this.#onChange(effectIndex, name, this.#event.effects[effectIndex][name], 0);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* Put every override onto a freshly built instance, at once: a new instance starts at the overrides, not
|
|
304
|
+
* gliding toward them from the definition.
|
|
305
|
+
* @param {EventInstance} instance
|
|
306
|
+
*/
|
|
307
|
+
applyTo(instance) {
|
|
308
|
+
const values = this.#values;
|
|
309
|
+
|
|
310
|
+
if (values === null) {
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
for (const [effectIndex, params] of values) {
|
|
315
|
+
for (const [name, value] of params) {
|
|
316
|
+
instance.setEffectParam(effectIndex, name, value);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
|
@@ -74,10 +74,16 @@ export class EventInstance {
|
|
|
74
74
|
*/
|
|
75
75
|
busId: string;
|
|
76
76
|
/**
|
|
77
|
-
* World position for spatialization. Null = non-positional.
|
|
78
|
-
*
|
|
77
|
+
* World position for spatialization, read by index. Null = non-positional.
|
|
78
|
+
*
|
|
79
|
+
* Held by reference, not copied, and read when the instance starts, after {@link moved}, and
|
|
80
|
+
* whenever the listener moves ({@link SopraEngine#setListener}). So whoever writes it says so with
|
|
81
|
+
* {@link moved}; a source written without saying so keeps sounding where it last was. Give each
|
|
82
|
+
* instance an array of its own: every instance reads the one it holds, so instances sharing one
|
|
83
|
+
* are all wherever it was last written. (The acoustic simulation reads it afresh on each solve.)
|
|
84
|
+
* @type {ArrayLike<number>|null}
|
|
79
85
|
*/
|
|
80
|
-
position:
|
|
86
|
+
position: ArrayLike<number> | null;
|
|
81
87
|
/**
|
|
82
88
|
* World orientation of the source (shared {@link Transform} rotation ref, so it tracks the entity).
|
|
83
89
|
* Read by the {@link AcousticSimulator} only to evaluate {@link directivity}; null when the source has
|
|
@@ -119,6 +125,38 @@ export class EventInstance {
|
|
|
119
125
|
* @param {number} now
|
|
120
126
|
*/
|
|
121
127
|
start(now: number): void;
|
|
128
|
+
/**
|
|
129
|
+
* Move a parameter of this instance's copy of one of the event's insert effects, now — one play of a
|
|
130
|
+
* cue made duller, brighter or louder than the others. Other instances of the event, and the
|
|
131
|
+
* {@link EventDescription} itself, are untouched.
|
|
132
|
+
*
|
|
133
|
+
* Valid from the moment the instance exists, including while its buffers are still loading. The effect
|
|
134
|
+
* is addressed by its position in {@link EventDescription.effects}, the parameter by one of its class's
|
|
135
|
+
* `parameters` (`'frequency'` on an `EqEffect`).
|
|
136
|
+
*
|
|
137
|
+
* @param {number} effectIndex
|
|
138
|
+
* @param {string} name
|
|
139
|
+
* @param {number} value in the parameter's own units (Hz, dB, seconds, ...)
|
|
140
|
+
*/
|
|
141
|
+
setEffectParam(effectIndex: number, name: string, value: number): void;
|
|
142
|
+
/**
|
|
143
|
+
* Glide a parameter of this instance's copy of one of the event's insert effects toward `value` —
|
|
144
|
+
* tracking a game value while the sound plays. See {@link EffectChain#approachParam}; addressed as
|
|
145
|
+
* {@link setEffectParam}.
|
|
146
|
+
*
|
|
147
|
+
* @param {number} effectIndex
|
|
148
|
+
* @param {string} name
|
|
149
|
+
* @param {number} value
|
|
150
|
+
* @param {number} timeConstant seconds, above 0
|
|
151
|
+
*/
|
|
152
|
+
approachEffectParam(effectIndex: number, name: string, value: number, timeConstant: number): void;
|
|
153
|
+
/**
|
|
154
|
+
* Where this instance's effect parameter was last sent (a glide's target), or its defined value.
|
|
155
|
+
* @param {number} effectIndex
|
|
156
|
+
* @param {string} name
|
|
157
|
+
* @returns {number}
|
|
158
|
+
*/
|
|
159
|
+
getEffectParam(effectIndex: number, name: string): number;
|
|
122
160
|
/**
|
|
123
161
|
* Live instance gain in decibels (composes with 3D attenuation).
|
|
124
162
|
* @returns {number}
|
|
@@ -174,10 +212,22 @@ export class EventInstance {
|
|
|
174
212
|
/**
|
|
175
213
|
* Advance the instance one frame: update spatialization, then evaluate the timeline against the
|
|
176
214
|
* playhead (spawning / virtualizing voices).
|
|
215
|
+
*
|
|
216
|
+
* The listener is the engine's ({@link SopraEngine#listenerPosition}), read here together with the
|
|
217
|
+
* version that says whether it moved, so a listener set during a tick is never paired with another's
|
|
218
|
+
* version.
|
|
177
219
|
* @param {number} now context time
|
|
178
|
-
* @param {Vector3|null} listenerPosition
|
|
179
220
|
*/
|
|
180
|
-
update(now: number
|
|
221
|
+
update(now: number): void;
|
|
222
|
+
/**
|
|
223
|
+
* Report that {@link position} was written, so the next {@link update} puts the source where it now
|
|
224
|
+
* is: its panner, its distance attenuation and whether it is audible at all. The instance reads the
|
|
225
|
+
* array only when something has moved, so a write nobody reports is not heard.
|
|
226
|
+
*
|
|
227
|
+
* Cheap and idempotent: it marks the instance, and the work happens once, in the next update,
|
|
228
|
+
* however many writes were reported before it. Harmless on a 2D instance, or on one that has stopped.
|
|
229
|
+
*/
|
|
230
|
+
moved(): void;
|
|
181
231
|
/**
|
|
182
232
|
* Stop all voices, tear down the output chain, and finish the instance.
|
|
183
233
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventInstance.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/sopra/runtime/EventInstance.js"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"EventInstance.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/sopra/runtime/EventInstance.js"],"names":[],"mappings":";;;iCAsBU,MAAM;;;;;;AAoFhB;;;;;;;;;GASG;AACH;IAuNI;;;;OAIG;IACH,oBAJW,WAAW,eACX,gBAAgB,qIAChB;QAAC,KAAK,CAAC,EAAC,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAC,OAAO,CAAC;QAAC,OAAO,CAAC,EAAC,OAAO,CAAC;QAAC,WAAW,CAAC,EAAC,MAAM,CAAC;QAAC,eAAe,CAAC,EAAC,oBAAoB,CAAC;QAAC,SAAS,CAAC,EAAC,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAC,OAAO,CAAC;QAAC,OAAO,CAAC,EAAC,OAAO,CAAC;QAAC,YAAY,CAAC,EAAC,MAAM,CAAC;QAAC,WAAW,CAAC,EAAC,UAAU,CAAC;QAAC,WAAW,CAAC,EAAC,mBAAmB,CAAA;KAAC,EAoFnQ;IA5SD;;OAEG;IACH,WAFU,MAAM,CAEF;IAEd;;OAEG;IACH,OAFU,kBAAkB,GAAC,MAAM,CAEA;IAEnC;;;OAGG;IACH,aAFU,MAAM,CAEA;IAEhB;;;;;OAKG;IACH,cAFU,MAAM,CAEG;IAEnB;;;OAGG;IACH,aAAuB;IA2MnB;;OAEG;IACH,QAFU,WAAW,CAED;IAEpB;;OAEG;IACH,aAFU,gBAAgB,CAEI;IAE9B;;OAEG;IACH,OAFU,MAAM,CAEE;IAElB;;;;;;;;;OASG;IACH,UAFU,UAAU,MAAM,CAAC,GAAC,IAAI,CAER;IAExB;;;;;OAKG;IACH,aAFU,UAAU,GAAC,IAAI,CAEK;IAE9B;;;;;OAKG;IACH,aAFU,mBAAmB,GAAC,IAAI,CAEJ;IAE9B;;OAEG;IACH,SAFU,OAAO,CAEK;IAEtB;;OAEG;IACH,oBAFU,MAAM,CAEqB;IAErC;;OAEG;IACH,iBAFU,oBAAoB,CAEQ;IAe1C;;;OAGG;IACH,uBAEC;IAED;;;OAGG;IACH,2CAeC;IAED;;;OAGG;IACH,WAFW,MAAM,QAyChB;IA+JD;;;;;;;;;;;;OAYG;IACH,4BAJW,MAAM,QACN,MAAM,SACN,MAAM,QAIhB;IAED;;;;;;;;;OASG;IACH,iCALW,MAAM,QACN,MAAM,SACN,MAAM,gBACN,MAAM,QAIhB;IAED;;;;;OAKG;IACH,4BAJW,MAAM,QACN,MAAM,GACJ,MAAM,CAIlB;IAaD;;;OAGG;IACH,qBAEC;IAED;;;OAGG;IACH,wBAEC;IAED;;;OAGG;IACH,cAFW,MAAM,QAQhB;IAED;;;;;;;;;;;OAWG;IACH,sBAFW,gBAAgB,QAgE1B;IAED;;;;;OAKG;IACH,uBAJW,MAAM,YACN,MAAM,eACN,MAAM,QAqBhB;IAED;;;;;OAKG;IACH,yBAHW,MAAM,eACN,MAAM,QAqBhB;IAED;;;;OAIG;IACH,cAFW,MAAM,QAehB;IAED;;OAEG;IACH,gBAEC;IAED;;;;;;;;OAQG;IACH,YAFW,MAAM,QA+DhB;IAED;;;;;;;OAOG;IACH,cAEC;IAwJD;;OAEG;IACH,aAyCC;;CACJ;yBAroCY,OAAO,qCAAqC,EAAE,UAAU;sBACxD,OAAO,kCAAkC,EAAE,OAAO;+BAClD,OAAO,2CAA2C,EAAE,gBAAgB;kCACpE,OAAO,oDAAoD,EAAE,mBAAmB;0BAChF,OAAO,mBAAmB,EAAE,WAAW;+BACvC,OAAO,mCAAmC,EAAE,gBAAgB;mCAC5D,OAAO,2BAA2B,EAAE,oBAAoB;oBACxD,OAAO,YAAY,EAAE,KAAK"}
|