grid.Grid: let add() and sub() use self.set() instead of reimplementing part of it. Also makes sure default values aren't part of the dict anymore.

This commit is contained in:
Stefan Harmuth 2021-12-05 06:45:35 +01:00
parent 8f024354e6
commit e2d36cbde6

14
grid.py
View File

@ -48,7 +48,7 @@ class Grid:
self.__grid[pos] = not self.__default self.__grid[pos] = not self.__default
def set(self, pos: Coordinate, value: Any = True): def set(self, pos: Coordinate, value: Any = True):
if value in OFF_STATES and pos in self.__grid: if (value == self.__default or value in OFF_STATES) and pos in self.__grid:
del self.__grid[pos] del self.__grid[pos]
elif value not in OFF_STATES: elif value not in OFF_STATES:
self.__trackBoundaries(pos) self.__trackBoundaries(pos)
@ -90,18 +90,10 @@ class Grid:
return self.minX <= pos.x <= self.maxX and self.minY <= pos.y <= self.maxY return self.minX <= pos.x <= self.maxX and self.minY <= pos.y <= self.maxY
def add(self, pos: Coordinate, value: Union[float, int] = 1): def add(self, pos: Coordinate, value: Union[float, int] = 1):
if pos in self.__grid: self.set(pos, self.get(pos) + value)
self.__grid[pos] += value
else:
self.__trackBoundaries(pos)
self.__grid[pos] = self.__default + value
def sub(self, pos: Coordinate, value: Union[float, int] = 1): def sub(self, pos: Coordinate, value: Union[float, int] = 1):
if pos in self.__grid: self.set(pos, self.get(pos) - value)
self.__grid[pos] -= value
else:
self.__trackBoundaries(pos)
self.__grid[pos] = self.__default - value
def getActiveCells(self): def getActiveCells(self):
return [i for i in self.__grid.keys()] return [i for i in self.__grid.keys()]