using Robust.Shared.Serialization; namespace Content.Shared.Communications { [Virtual] public class SharedCommunicationsConsoleComponent : Component { } [Serializable, NetSerializable] public sealed class CommunicationsConsoleInterfaceState : BoundUserInterfaceState { public readonly bool CanAnnounce; public readonly bool CanCall; public readonly TimeSpan? ExpectedCountdownEnd; public readonly bool CountdownStarted; public List? AlertLevels; public string CurrentAlert; public float CurrentAlertDelay; public CommunicationsConsoleInterfaceState(bool canAnnounce, bool canCall, List? alertLevels, string currentAlert, float currentAlertDelay, TimeSpan? expectedCountdownEnd = null) { CanAnnounce = canAnnounce; CanCall = canCall; ExpectedCountdownEnd = expectedCountdownEnd; CountdownStarted = expectedCountdownEnd != null; AlertLevels = alertLevels; CurrentAlert = currentAlert; CurrentAlertDelay = currentAlertDelay; } } [Serializable, NetSerializable] public sealed class CommunicationsConsoleSelectAlertLevelMessage : BoundUserInterfaceMessage { public readonly string Level; public CommunicationsConsoleSelectAlertLevelMessage(string level) { Level = level; } } [Serializable, NetSerializable] public sealed class CommunicationsConsoleAnnounceMessage : BoundUserInterfaceMessage { public readonly string Message; public CommunicationsConsoleAnnounceMessage(string message) { Message = message; } } [Serializable, NetSerializable] public sealed class CommunicationsConsoleCallEmergencyShuttleMessage : BoundUserInterfaceMessage { } [Serializable, NetSerializable] public sealed class CommunicationsConsoleRecallEmergencyShuttleMessage : BoundUserInterfaceMessage { } [Serializable, NetSerializable] public enum CommunicationsConsoleUiKey { Key } }