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); }
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); }