BehaviorTreeComponent.cs 843 B

123456789101112131415161718192021222324
  1. using System.Collections.Generic;
  2. using System.Reflection;
  3. using Common.Base;
  4. namespace Model
  5. {
  6. public class BehaviorTreeComponent : Component<World>, IAssemblyLoader
  7. {
  8. private Dictionary<int, BehaviorTree> trees = new Dictionary<int, BehaviorTree>();
  9. public void Load(Assembly assembly)
  10. {
  11. BehaviorTreeFactory behaviorTreeFactory = BehaviorTreeFactory.Instance;
  12. behaviorTreeFactory.Load(assembly);
  13. NodeConfig[] nodeConfigs = World.Instance.GetComponent<ConfigComponent>().GetAll<NodeConfig>();
  14. foreach (NodeConfig nodeConfig in nodeConfigs)
  15. {
  16. BehaviorTree behaviorTree = behaviorTreeFactory.CreateTree(nodeConfig);
  17. this.trees[nodeConfig.Id] = behaviorTree;
  18. }
  19. }
  20. }
  21. }