From 314be3895ece7dbeb47bcdd85a05acbc4bc0ff9c Mon Sep 17 00:00:00 2001 From: Joel Kronqvist Date: Sat, 1 Nov 2025 21:46:26 +0200 Subject: feat: (a bit hacky) pressure plate, signal and door system --- Walls.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 Walls.py (limited to 'Walls.py') diff --git a/Walls.py b/Walls.py new file mode 100644 index 0000000..860a7ef --- /dev/null +++ b/Walls.py @@ -0,0 +1,38 @@ + +from Vec import Vec2 + + +class Walls: + """Contains the walls of a game. + Supports iterating over the walls and checking if there is a wall at a specific coordinate. + Useful as a wrapper to later increase performance of these operations.""" + + _walls = [] + + def __init__(self, walls): + self._walls = walls + + def fromString(wallString): + walls = [] + y = 0 + for line in wallString.split('\n'): + x = 0 + for char in line: + if char == "#": + walls.append(Vec2(x, y)) + x += 1 + y += 1 + return Walls(walls) + + def walls(self): + return self._walls + + def wallAt(self, pos): + return (pos in self._walls) + + def width(self): + return max(self._walls, key=lambda p: p.x).x + 1 + + def height(self): + return max(self._walls, key=lambda p: p.y).y + 1 + -- cgit v1.2.3