using Content.Server.Radio.EntitySystems; using Content.Shared.Radio; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; namespace Content.Server.Radio.Components; /// /// Listens for local chat messages and relays them to some radio frequency /// [RegisterComponent] [Access(typeof(RadioDeviceSystem))] public sealed class RadioMicrophoneComponent : Component { [ViewVariables(VVAccess.ReadWrite)] [DataField("broadcastChannel", customTypeSerializer: typeof(PrototypeIdSerializer))] public string BroadcastChannel = "Common"; [ViewVariables, DataField("supportedChannels", customTypeSerializer: typeof(PrototypeIdListSerializer))] public List? SupportedChannels; [ViewVariables(VVAccess.ReadWrite)] [DataField("listenRange")] public int ListenRange = 4; [DataField("enabled")] public bool Enabled = false; [DataField("powerRequired")] public bool PowerRequired = false; /// /// Whether or not the speaker must have an /// unobstructed path to the radio to speak /// [DataField("unobstructedRequired")] public bool UnobstructedRequired = false; }