#region Copyright & License Information /* * Copyright 2007-2020 The OpenRA Developers (see AUTHORS) * This file is part of OpenRA, which is free software. It is made * available to you under the terms of the GNU General Public License * as published by the Free Software Foundation, either version 3 of * the License, or (at your option) any later version. For more * information, see COPYING. */ #endregion using System.Collections.Generic; using System.Linq; namespace OpenRA.Widgets { public static class ChromeMetrics { static Dictionary data = new Dictionary(); public static void Initialize(ModData modData) { data = new Dictionary(); var metrics = MiniYaml.Merge(modData.Manifest.ChromeMetrics.Select( y => MiniYaml.FromStream(modData.DefaultFileSystem.Open(y), y))); foreach (var m in metrics) foreach (var n in m.Value.Nodes) data[n.Key] = n.Value.Value; } public static T Get(string key) { return FieldLoader.GetValue(key, data[key]); } public static bool TryGet(string key, out T result) { if (!data.TryGetValue(key, out var s)) { result = default(T); return false; } result = FieldLoader.GetValue(key, s); return true; } } }