private static void GetRoads(RoadPlannerComponent roadPlanner, Point current, int distance) { if (distance <= 0) { return; } // if the current point doesn't have a road return empty list if (!roadPlanner.IsRoadAt(current)) { return; } if (_roadsConnected.Contains(current)) { return; } _roadsConnected.Add(current); // check each ortho location GetRoads(roadPlanner, new Point(current.X - 1, current.Y), distance - 1); GetRoads(roadPlanner, new Point(current.X, current.Y - 1), distance - 1); GetRoads(roadPlanner, new Point(current.X + 1, current.Y), distance - 1); GetRoads(roadPlanner, new Point(current.X, current.Y + 1), distance - 1); }
public static List <Point> GetRoadsWithinDistance(RoadPlannerComponent roadPlanner, Point start, int distance) { _roadsConnected.Clear(); GetRoads(roadPlanner, start, distance); return(_roadsConnected); }