using Robust.Shared.Serialization; namespace Content.Shared.Gateway; [Serializable, NetSerializable] public enum GatewayVisuals : byte { Active } [Serializable, NetSerializable] public enum GatewayVisualLayers : byte { Portal } [Serializable, NetSerializable] public enum GatewayUiKey : byte { Key } [Serializable, NetSerializable] public sealed class GatewayBoundUserInterfaceState : BoundUserInterfaceState { /// /// List of enabled destinations and information about them. /// public readonly List<(EntityUid, string, TimeSpan, bool)> Destinations; /// /// Which destination it is currently linked to, if any. /// public readonly EntityUid? Current; /// /// Time the portal will close at. /// public readonly TimeSpan NextClose; /// /// Time the portal last opened at. /// public readonly TimeSpan LastOpen; public GatewayBoundUserInterfaceState(List<(EntityUid, string, TimeSpan, bool)> destinations, EntityUid? current, TimeSpan nextClose, TimeSpan lastOpen) { Destinations = destinations; Current = current; NextClose = nextClose; LastOpen = lastOpen; } } [Serializable, NetSerializable] public sealed class GatewayOpenPortalMessage : BoundUserInterfaceMessage { public EntityUid Destination; public GatewayOpenPortalMessage(EntityUid destination) { Destination = destination; } }