using System.Collections.Generic; using System.Reflection; using Common.Base; namespace Model { public class BehaviorTreeComponent: Component, IAssemblyLoader { private readonly Dictionary trees = new Dictionary(); public void Load(Assembly assembly) { BehaviorTreeFactory behaviorTreeFactory = BehaviorTreeFactory.Instance; behaviorTreeFactory.Load(assembly); NodeConfig[] nodeConfigs = World.Instance.GetComponent().GetAll(); foreach (NodeConfig nodeConfig in nodeConfigs) { BehaviorTree behaviorTree = behaviorTreeFactory.CreateTree(nodeConfig); this.trees[nodeConfig.Id] = behaviorTree; } } public BehaviorTree this[int id] { get { return this.trees[id]; } } } }