diff --git a/tools/grid.py b/tools/grid.py index 825d7b7..049e549 100644 --- a/tools/grid.py +++ b/tools/grid.py @@ -183,6 +183,19 @@ class Grid: else: return list(self.__grid.keys()) + def getActiveRegion(self, start: Coordinate, includeDiagonal: bool = False, ignore: List[Coordinate] = None) \ + -> List[Coordinate]: + if not self.get(start): + return [] + if ignore is None: + ignore = [] + ignore.append(start) + for c in self.getNeighboursOf(start, includeDiagonal=includeDiagonal): + if c not in ignore: + ignore = self.getActiveRegion(c, includeDiagonal, ignore) + + return ignore + def values(self): return self.__grid.values()