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