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