using UnityEngine;
namespace ProjectM.Client
{
///
/// Client-only audio volume BUSES, read by the procedural-audio presentation systems
/// ( = Music bus; +
/// = Sfx bus). MASTER is applied separately as
/// AudioListener.volume (a global listener gain) by , so the per-call
/// multipliers here are the per-bus trims ONLY — never multiply by master again or it double-attenuates.
///
/// A plain static (not an IComponentData) so the Burst-free managed presentation systems read it with
/// zero ECS plumbing. NOT named AudioSettings — that collides with UnityEngine.AudioSettings.
/// Reset on play-enter () so a fast-enter-playmode
/// domain reload never carries a stale value into a fresh session.
///
///
public static class GameVolume
{
/// Music/ambience bus trim (0..1). Applied by AmbientAudioSystem.
public static float Music = 1f;
/// SFX bus trim (0..1). Applied by Combat/World feedback systems.
public static float Sfx = 1f;
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)]
static void ResetStatics()
{
Music = 1f;
Sfx = 1f;
}
}
}