using Content.Server.Radio.EntitySystems; using Content.Shared.Chat; 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 partial class RadioMicrophoneComponent : Component { [ViewVariables(VVAccess.ReadWrite)] [DataField("broadcastChannel", customTypeSerializer: typeof(PrototypeIdSerializer))] public string BroadcastChannel = SharedChatSystem.CommonChannel; [ViewVariables(VVAccess.ReadWrite)] [DataField("listenRange")] public int ListenRange = 4; [DataField("enabled")] public bool Enabled = false; [DataField("powerRequired")] public bool PowerRequired = false; /// /// Whether or not interacting with this entity /// toggles it on or off. /// [DataField("toggleOnInteract")] public bool ToggleOnInteract = true; /// /// Whether or not the speaker must have an /// unobstructed path to the radio to speak /// [DataField("unobstructedRequired")] public bool UnobstructedRequired = false; }