//创建行为树 private void CreateBev(BevTrees BevTrees) { //实体 foreach (string key in BevTrees.EntityTrees.Keys) { EntityReqId reqId = (EntityReqId)Enum.Parse(typeof(EntityReqId), key); //创建树 NodeDataJson nodeJson = BevTrees.EntityTrees[key]; Node rootNode = Node.CreateNodeInstance(nodeJson); Node.CreateNodeRelation(rootNode, nodeJson.ChildNodes); BaseEntityBehavior request = new BaseEntityBehavior(rootNode); EntityBevDict.Add((int)reqId, request); } //世界 foreach (string key in BevTrees.WorldTrees.Keys) { WorldReqId reqId = (WorldReqId)Enum.Parse(typeof(WorldReqId), key); //创建树 NodeDataJson nodeJson = BevTrees.WorldTrees[key]; Node rootNode = Node.CreateNodeInstance(nodeJson); Node.CreateNodeRelation(rootNode, nodeJson.ChildNodes); BaseWorldBehavior request = new BaseWorldBehavior(rootNode); WorldBevDict.Add((int)reqId, request); } }
/// <summary> /// 获得世界行为树 /// </summary> public Node GetWorldBevNode(int bevId) { BaseWorldBehavior behavior = GetWorldBev(bevId); if (behavior != null) { return(behavior.Tree); } return(null); }
/// <summary> /// 放入世界行为 /// </summary> public void PushWorldBev(WorldWorkData workData) { //删除 BaseWorldBehavior lastBehavior = GetWorldBev(workData.ClearReqId); if (lastBehavior != null) { lastBehavior.RemoveWorkData(workData); } //添加 BaseWorldBehavior currBehavior = GetWorldBev(workData.CurrReqId); if (currBehavior != null) { currBehavior.AddWorkData(workData); } }