using System.Numerics; using Content.Shared.Shuttles.Components; namespace Content.Server.Shuttles.Components { [RegisterComponent] public sealed partial class ShuttleConsoleComponent : SharedShuttleConsoleComponent { [ViewVariables] public readonly List SubscribedPilots = new(); /// /// How much should the pilot's eye be zoomed by when piloting using this console? /// [DataField("zoom")] public Vector2 Zoom = new(1.5f, 1.5f); /// /// Should this console have access to restricted FTL destinations? /// [ViewVariables(VVAccess.ReadWrite), DataField("whitelistSpecific")] public List FTLWhitelist = new List(); /// /// How far the shuttle is allowed to jump(in meters). /// TODO: This technically won't work until this component is migrated to Shared. The client console screen will only ever know the hardcoded 512 meter constant otherwise. Fix it in ShuttleMapControl.xaml.cs when that's done. /// [DataField] public float FTLRange = 512f; /// /// If the shuttle is allowed to "Forcibly" land on planet surfaces, destroying anything it lands on. Used for SSTO capable shuttles. /// [DataField] public bool FtlToPlanets; /// /// If the shuttle is allowed to forcibly land on stations, smimshing everything it lands on. This is where the hypothetical "Nukie drop pod" comes into play. /// [DataField] public bool IgnoreExclusionZones; /// /// If the shuttle is only ever allowed to FTL once. Also used for the hypothetical "Nukie drop pod." /// [DataField] public bool OneWayTrip; /// /// Tracks whether or not the above "One way trip" has been taken. /// public bool OneWayTripTaken; } }