diff --git a/Content.Server/GameObjects/Components/NodeContainer/NodeContainerComponent.cs b/Content.Server/GameObjects/Components/NodeContainer/NodeContainerComponent.cs index 4c6df76104..e41f2accf6 100644 --- a/Content.Server/GameObjects/Components/NodeContainer/NodeContainerComponent.cs +++ b/Content.Server/GameObjects/Components/NodeContainer/NodeContainerComponent.cs @@ -1,5 +1,6 @@ #nullable enable using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using Content.Server.GameObjects.Components.NodeContainer.NodeGroups; using Content.Server.GameObjects.Components.NodeContainer.Nodes; using Content.Shared.GameObjects.EntitySystems; @@ -64,6 +65,23 @@ namespace Content.Server.GameObjects.Components.NodeContainer } } + public T GetNode(string identifier) where T : Node + { + return (T)_nodes[identifier]; + } + + public bool TryGetNode(string identifier, [NotNullWhen(true)] out T? node) where T : Node + { + if (_nodes.TryGetValue(identifier, out var n) && n is T t) + { + node = t; + return true; + } + + node = null; + return false; + } + public void Examine(FormattedMessage message, bool inDetailsRange) { if (!_examinable || !inDetailsRange) return;