using Robust.Shared.Reflection; namespace Content.Server.AI.Utility.Considerations { public sealed class ConsiderationsManager { private readonly Dictionary _considerations = new(); public void Initialize() { var reflectionManager = IoCManager.Resolve(); var typeFactory = IoCManager.Resolve(); foreach (var conType in reflectionManager.GetAllChildren(typeof(Consideration))) { var con = (Consideration) typeFactory.CreateInstance(conType); _considerations.Add(conType, con); } } public T Get() where T : Consideration { return (T) _considerations[typeof(T)]; } } }