using Robust.Shared.Serialization; namespace Content.Shared._CP14.DemiplaneTraveling; public abstract partial class CP14SharedStationDemiplaneMapSystem : EntitySystem { public static bool NodeInFronrierZone(Dictionary nodes, HashSet<(Vector2i, Vector2i)> edges, Vector2i key) { if (!nodes.TryGetValue(key, out var node)) return false; if (node.Scanned || node.Start) return false; //return false if no finished or start nodes near var near = new List(); foreach (var edge in edges) { var node1 = nodes[edge.Item1]; var node2 = nodes[edge.Item2]; if (node1 != node && node2 != node) continue; if (node1.Scanned || node1.Start || node2.Scanned || node2.Start) { return true; } } return false; } } [Serializable, NetSerializable] public sealed class CP14DemiplaneMapEjectMessage(Vector2i position) : BoundUserInterfaceMessage { public readonly Vector2i Position = position; } [Serializable, NetSerializable] public sealed class CP14DemiplaneMapRevokeMessage(Vector2i position) : BoundUserInterfaceMessage { public readonly Vector2i Position = position; }