using System; using System.Collections.Generic; using Robust.Shared.Interfaces.Reflection; using Robust.Shared.IoC; using Robust.Shared.Utility; namespace Content.Server.AI.WorldState { // This will also handle the global blackboard at some point /// /// Manager the AI blackboard states /// public sealed class BlackboardManager { // Cache the known types public IReadOnlyCollection AiStates => _aiStates; private List _aiStates = new List(); public void Initialize() { var reflectionManager = IoCManager.Resolve(); foreach (var state in reflectionManager.GetAllChildren(typeof(IAiState))) { _aiStates.Add(state); } DebugTools.AssertNotNull(_aiStates); } } }