using System.Numerics; using Content.Shared._CP14.Procedural.Prototypes; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; namespace Content.Shared._CP14.Demiplane; [Serializable, NetSerializable] public enum CP14DemiplaneMapUiKey { Key, } [Serializable, NetSerializable] public sealed class CP14DemiplaneMapUiState(Dictionary nodes, HashSet<(Vector2i, Vector2i)>? edges = null) : BoundUserInterfaceState { public Dictionary Nodes = nodes; public HashSet<(Vector2i, Vector2i)> Edges = edges ?? new(); } [Serializable, NetSerializable] public sealed class CP14DemiplaneMapNode(Vector2 uiPosition, ProtoId? locationConfig = null, List>? modifiers = null) { public bool Start = false; public Vector2 UiPosition = uiPosition; public int Level = 0; public bool Opened = false; public ProtoId? LocationConfig = locationConfig; public List> Modifiers = modifiers ?? []; }