using Content.Shared.DeltaV.Shuttles.Systems;
using Content.Shared.Tag;
using Content.Shared.Whitelist;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
namespace Content.Shared.DeltaV.Shuttles.Components;
///
/// A shuttle console that can only ftl-dock between 2 grids.
/// The shuttle used must have .
///
[RegisterComponent, NetworkedComponent, Access(typeof(SharedDockingConsoleSystem))]
[AutoGenerateComponentState]
public sealed partial class DockingConsoleComponent : Component
{
///
/// Title of the window to use
///
[DataField(required: true)]
public LocId WindowTitle;
///
/// Airlock tag that it will prioritize docking to.
///
[DataField(required: true)]
public ProtoId DockTag;
///
/// A whitelist the shuttle has to match to be piloted.
///
[DataField(required: true)]
public EntityWhitelist ShuttleWhitelist = new();
///
/// The shuttle that matches .
/// If this is null a shuttle was not found and this console does nothing.
///
[DataField]
public EntityUid? Shuttle;
///
/// Whether is set on the server or not.
/// Client can't use Shuttle outside of PVS range so that isn't networked.
///
[DataField, AutoNetworkedField]
public bool HasShuttle;
}