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:
parent
8f024354e6
commit
e2d36cbde6
14
grid.py
14
grid.py
@ -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()]
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user