using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
namespace Content.Shared.Radio.Components;
///
/// Handles intercom ui and is authoritative on the channels an intercom can access.
///
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState(true)]
public sealed partial class IntercomComponent : Component
{
///
/// Does this intercom require power to function
///
[DataField]
public bool RequiresPower = true;
[DataField, AutoNetworkedField]
public bool SpeakerEnabled;
[DataField, AutoNetworkedField]
public bool MicrophoneEnabled;
[DataField, AutoNetworkedField]
public ProtoId? CurrentChannel;
///
/// The list of radio channel prototypes this intercom can choose between.
///
[DataField, AutoNetworkedField]
public List> SupportedChannels = new();
///
/// Frontier - Start the intercom speaker with the map.
///
[DataField]
public bool StartSpeakerOnMapInit { get; set; } = false;
///
/// Frontier - Start the intercom microphone with the map.
///
[DataField]
public bool StartMicrophoneOnMapInit { get; set; } = false;
}