예제 #1
0
    //创建行为树
    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);
        }
    }
예제 #2
0
    /// <summary>
    /// 获得世界行为树
    /// </summary>
    public Node GetWorldBevNode(int bevId)
    {
        BaseWorldBehavior behavior = GetWorldBev(bevId);

        if (behavior != null)
        {
            return(behavior.Tree);
        }
        return(null);
    }
예제 #3
0
    /// <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);
        }
    }