From c4d0c249affbf0d6885b2b5aad77a128b3bf8f4d Mon Sep 17 00:00:00 2001 From: Vera Aguilera Puerto Date: Sat, 10 Apr 2021 13:25:44 +0200 Subject: [PATCH] Helper methods for NodeContainer Including a GetNode and TryGetNode --- .../NodeContainer/NodeContainerComponent.cs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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;