Example #1
0
        //创建决策
        private void CreateDec(DecTrees DecTrees)
        {
            //实体
            foreach (string key in DecTrees.EntityTrees.Keys)
            {
                EntityDecGroup group = (EntityDecGroup)Enum.Parse(typeof(EntityDecGroup), key);

                //创建树
                NodeDataJson nodeJson = DecTrees.EntityTrees[key];
                Node         rootNode = Node.CreateNodeInstance(nodeJson);
                Node.CreateNodeRelation(rootNode, nodeJson.ChildNodes);

                BaseEntityDecision decision = new BaseEntityDecision(rootNode);;
                EntityDesDict.Add((int)group, decision);
            }

            //世界
            foreach (string key in DecTrees.WorldTrees.Keys)
            {
                WorldDecGroup group = (WorldDecGroup)Enum.Parse(typeof(WorldDecGroup), key);

                //创建树
                NodeDataJson nodeJson = DecTrees.WorldTrees[key];
                Node         rootNode = Node.CreateNodeInstance(nodeJson);
                Node.CreateNodeRelation(rootNode, nodeJson.ChildNodes);

                BaseWorldDecision decision = new BaseWorldDecision(rootNode);
                WorldDesDict.Add((int)group, decision);
            }
        }
Example #2
0
 //添加实体决策器
 public void RegEntityDecision(int decId, BaseEntityDecision decision)
 {
     if (EntityDesDict.ContainsKey(decId))
     {
         return;
     }
     EntityDesDict.Add(decId, decision);
 }
Example #3
0
        /// <summary>
        /// 删除决策实体
        /// </summary>
        public void RemoveDecisionEntity(int decId, int entityId)
        {
            if (!EntityDesDict.ContainsKey(decId))
            {
                return;
            }
            BaseEntityDecision decision = EntityDesDict[decId];

            decision.RemoveEntity(entityId);
        }
Example #4
0
        /// <summary>
        /// 添加决策实体
        /// </summary>
        public void AddDecisionEntity(int decId, EntityWorkData workData)
        {
            if (!EntityDesDict.ContainsKey(decId))
            {
                ECSLocate.ECSLog.LogR("添加决策实体错误,没有对应决策树>>>>>>>", decId);
                return;
            }
            BaseEntityDecision decision = EntityDesDict[decId];

            decision.AddEntity(workData);
        }
Example #5
0
        /// <summary>
        /// 获得决策实体
        /// </summary>
        public EntityWorkData GetEntityWorkData(int entityId)
        {
            Entity         entity = ECSLocate.ECS.GetEntity(entityId);
            EntityDecGroup group  = entity.GetEntityDecGroup();

            if (!EntityDesDict.ContainsKey((int)group))
            {
                return(null);
            }

            BaseEntityDecision decision = EntityDesDict[(int)group];

            return(decision.GetEntity(entityId));
        }