using Content.Shared.Shuttles.Systems; using Robust.Shared.GameStates; using Robust.Shared.Serialization; namespace Content.Shared.Shuttles.Components; /// /// Component that handles locking shuttle consoles until an ID card with the matching /// shuttle deed is used to unlock it. /// [RegisterComponent, NetworkedComponent] [Access(typeof(SharedShuttleConsoleLockSystem))] public sealed partial class ShuttleConsoleLockComponent : Component { /// /// Whether the console is currently locked /// [DataField("locked")] public bool Locked = true; /// /// Whether the console is locked due to an emergency broadcast /// Only corporate TSF employees can unlock this state /// [DataField("emergencyLocked")] public bool EmergencyLocked = false; /// /// The ID of the shuttle this console is locked to /// [DataField("shuttleId")] public string? ShuttleId; /// /// The original IFF flags before emergency lock was activated /// Used to restore the IFF state after emergency lockdown is cleared /// [DataField("originalIFFFlags")] public IFFFlags OriginalIFFFlags = IFFFlags.None; } [Serializable, NetSerializable] public enum ShuttleConsoleLockVisuals : byte { Locked, EmergencyLocked, }