using System.Numerics; using Robust.Shared.Audio.Effects; using Robust.Shared.Audio.Systems; using Robust.Shared.GameObjects; using Robust.Shared.GameStates; using Robust.Shared.Serialization.Manager.Attributes; using Robust.Shared.ViewVariables; namespace Robust.Shared.Audio.Components; /// /// Stores OpenAL audio effect data that can be bound to an . /// [RegisterComponent, NetworkedComponent, Access(typeof(SharedAudioSystem)), AutoGenerateComponentState] public sealed partial class AudioEffectComponent : Component, IAudioEffect { [ViewVariables] internal IAudioEffect Effect = new DummyAudioEffect(); /// [DataField, AutoNetworkedField] public float Density { get => Effect.Density; set => Effect.Density = value; } /// [DataField, AutoNetworkedField] public float Diffusion { get => Effect.Diffusion; set => Effect.Diffusion = value; } /// [DataField, AutoNetworkedField] public float Gain { get => Effect.Gain; set => Effect.Gain = value; } /// [DataField, AutoNetworkedField] public float GainHF { get => Effect.GainHF; set => Effect.GainHF = value; } /// [DataField, AutoNetworkedField] public float GainLF { get => Effect.GainLF; set => Effect.GainLF = value; } /// [DataField, AutoNetworkedField] public float DecayTime { get => Effect.DecayTime; set => Effect.DecayTime = value; } /// [DataField, AutoNetworkedField] public float DecayHFRatio { get => Effect.DecayHFRatio; set => Effect.DecayHFRatio = value; } /// [DataField, AutoNetworkedField] public float DecayLFRatio { get => Effect.DecayLFRatio; set => Effect.DecayLFRatio = value; } /// [DataField, AutoNetworkedField] public float ReflectionsGain { get => Effect.ReflectionsGain; set => Effect.ReflectionsGain = value; } /// [DataField, AutoNetworkedField] public float ReflectionsDelay { get => Effect.ReflectionsDelay; set => Effect.ReflectionsDelay = value; } /// [DataField, AutoNetworkedField] public Vector3 ReflectionsPan { get => Effect.ReflectionsPan; set => Effect.ReflectionsPan = value; } /// [DataField, AutoNetworkedField] public float LateReverbGain { get => Effect.LateReverbGain; set => Effect.LateReverbGain = value; } /// [DataField, AutoNetworkedField] public float LateReverbDelay { get => Effect.LateReverbDelay; set => Effect.LateReverbDelay = value; } /// [DataField, AutoNetworkedField] public Vector3 LateReverbPan { get => Effect.LateReverbPan; set => Effect.LateReverbPan = value; } /// [DataField, AutoNetworkedField] public float EchoTime { get => Effect.EchoTime; set => Effect.EchoTime = value; } /// [DataField, AutoNetworkedField] public float EchoDepth { get => Effect.EchoDepth; set => Effect.EchoDepth = value; } /// [DataField, AutoNetworkedField] public float ModulationTime { get => Effect.ModulationTime; set => Effect.ModulationTime = value; } /// [DataField, AutoNetworkedField] public float ModulationDepth { get => Effect.ModulationDepth; set => Effect.ModulationDepth = value; } /// [DataField, AutoNetworkedField] public float AirAbsorptionGainHF { get => Effect.AirAbsorptionGainHF; set => Effect.AirAbsorptionGainHF = value; } /// [DataField, AutoNetworkedField] public float HFReference { get => Effect.HFReference; set => Effect.HFReference = value; } /// [DataField, AutoNetworkedField] public float LFReference { get => Effect.LFReference; set => Effect.LFReference = value; } /// [DataField, AutoNetworkedField] public float RoomRolloffFactor { get => Effect.RoomRolloffFactor; set => Effect.RoomRolloffFactor = value; } /// [DataField, AutoNetworkedField] public int DecayHFLimit { get => Effect.DecayHFLimit; set => Effect.DecayHFLimit = value; } }