Пример #1
0
        public GoalGraph(GraphSearchData gsData, State state, Level level)
        {
            foreach (var box in state.GetBoxes(level))
            {
                AddNode(new GoalNode(new EntityNodeInfo(box, EntityType.BOX)));
            }
            foreach (var agent in state.GetAgents(level))
            {
                AddNode(new GoalNode(new EntityNodeInfo(agent, EntityType.AGENT)));
            }
            foreach (var goal in level.Goals)
            {
                AddNode(new GoalNode(new EntityNodeInfo(goal.Ent, goal.EntType)));
            }

            GraphCreator.CreateGraphIgnoreEntityType(gsData, this, level, EntityType.MOVEABLE);
        }
Пример #2
0
        internal BoxConflictGraph(GraphSearchData gsData, State state, Level level, HashSet <Entity> removedEntities)
        {
            CreatedFromThisState = state;

            foreach (var box in state.GetBoxes(level))
            {
                if (removedEntities.Contains(box))
                {
                    continue;
                }
                AddNode(new BoxConflictNode(new EntityNodeInfo(box, EntityType.BOX)));
            }
            foreach (var agent in state.GetAgents(level))
            {
                if (removedEntities.Contains(agent))
                {
                    continue;
                }
                AddNode(new BoxConflictNode(new EntityNodeInfo(agent, EntityType.AGENT)));
            }

            GraphCreator.CreateGraphIgnoreEntityType(gsData, this, level, EntityType.GOAL);
        }