//Nodes need to know what their neighbors are for pathfinding to be efficient public static List <BoardNode> IdentifyNeighbors(NodeGrid gridArg, SpaceCoordinate coordArg) { List <BoardNode> lNeighbors = new List <BoardNode>(); foreach (SpaceMovement iMove in gridArg.ALL_DIRECTIONS) { SpaceCoordinate possNeighborCoord = coordArg.CoordAtMove(iMove); BoardNode lNode = gridArg.BoardNodes.Find(x => x.Coordinates.Equals(coordArg)); if (lNode != null) { lNeighbors.Add(lNode); } } return(lNeighbors); }
//returns the board space that is at a particular movement from an initial coordinate public BoardSpace SpaceAtMove(SpaceCoordinate coordArg, SpaceMovement moveArg) { SpaceCoordinate lCoord = coordArg.CoordAtMove(moveArg); return(GetBoardSpace(lCoord)); }