예제 #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);
            }
        }
예제 #2
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));
        }
예제 #3
0
파일: Entity.cs 프로젝트: ALunGame/LCECS
 //初始化
 public void Init(int id, string entityName, EntityDecGroup group)
 {
     Id         = id;
     EntityName = entityName;
     DecGroup   = group;
 }
예제 #4
0
 public void RemoveDecisionEntity(EntityDecGroup decId, int entityId)
 {
     decisionCenter.RemoveDecisionEntity((int)decId, entityId);
 }
예제 #5
0
 public void AddDecisionEntity(EntityDecGroup decId, EntityWorkData workData)
 {
     decisionCenter.AddDecisionEntity((int)decId, workData);
 }
예제 #6
0
 public void RegEntityDecision(EntityDecGroup decId, BaseEntityDecision decision)
 {
     decisionCenter.RegEntityDecision((int)decId, decision);
 }