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;
}