using Content.Shared.Radio.EntitySystems;
using Content.Shared.Chat;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
namespace Content.Shared.Radio.Components;
///
/// Listens for local chat messages and relays them to some radio frequency.
///
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
[Access(typeof(SharedRadioDeviceSystem))]
public sealed partial class RadioMicrophoneComponent : Component
{
///
/// Radio channel on which local speech is broadcast.
///
[DataField, AutoNetworkedField]
public ProtoId BroadcastChannel = SharedChatSystem.CommonChannel;
///
/// Maximum distance from the microphone at which speech is heard.
///
[DataField]
public int ListenRange = 4;
///
/// Whether the microphone is currently broadcasting.
///
[DataField, AutoNetworkedField]
public bool Enabled;
///
/// Whether the microphone requires power to operate.
///
[DataField]
public bool PowerRequired;
///
/// Whether interacting with this entity toggles it on/off, or not.
///
[DataField]
public bool ToggleOnInteract = true;
///
/// Whether the speaker must have an unobstructed path to the radio to speak, or now.
///
[DataField]
public bool UnobstructedRequired;
}