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<(NetEntity, string, TimeSpan, bool)> Destinations; /// /// Which destination it is currently linked to, if any. /// public readonly NetEntity? Current; /// /// Time the portal will close at. /// public readonly TimeSpan NextClose; /// /// Time the portal last opened at. /// public readonly TimeSpan LastOpen; public GatewayBoundUserInterfaceState(List<(NetEntity, string, TimeSpan, bool)> destinations, NetEntity? current, TimeSpan nextClose, TimeSpan lastOpen) { Destinations = destinations; Current = current; NextClose = nextClose; LastOpen = lastOpen; } } [Serializable, NetSerializable] public sealed class GatewayOpenPortalMessage : BoundUserInterfaceMessage { public NetEntity Destination; public GatewayOpenPortalMessage(NetEntity destination) { Destination = destination; } }