using System; using System.Collections.Generic; namespace ET { [CodeProcess] public class AIDispatcherComponent: Singleton, ISingletonAwake { private readonly Dictionary aiHandlers = new(); public void Awake() { var types = CodeTypes.Instance.GetTypes(typeof (AIHandlerAttribute)); foreach (Type type in types) { AAIHandler aaiHandler = Activator.CreateInstance(type) as AAIHandler; if (aaiHandler == null) { Log.Error($"robot ai is not AAIHandler: {type.Name}"); continue; } this.aiHandlers.Add(type.Name, aaiHandler); } } public AAIHandler Get(string key) { this.aiHandlers.TryGetValue(key, out var aaiHandler); return aaiHandler; } } }