using System; using System.Collections.Generic; using Robust.Shared.Interfaces.Reflection; using Robust.Shared.IoC; namespace Content.Server.AI.Utility.Considerations { public class ConsiderationsManager { private readonly Dictionary _considerations = new Dictionary(); 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)]; } } }