diff --git a/erynrl/map/generator/__init__.py b/erynrl/map/generator/__init__.py index ff99a64..2d4e361 100644 --- a/erynrl/map/generator/__init__.py +++ b/erynrl/map/generator/__init__.py @@ -1,13 +1,23 @@ +from typing import List + import numpy as np -from ..tile import Empty from .corridor import CorridorGenerator from .room import RoomGenerator +from ...geometry import Point class MapGenerator: '''Abstract base class defining an interface for generating a map and applying it to a set of tiles.''' + @property + def up_stairs(self) -> List[Point]: + raise NotImplementedError() + + @property + def down_stairs(self) -> List[Point]: + raise NotImplementedError() + def generate(self, tiles: np.ndarray): raise NotImplementedError() @@ -21,6 +31,14 @@ class RoomsAndCorridorsGenerator(MapGenerator): self.room_generator = room_generator self.corridor_generator = corridor_generator + @property + def up_stairs(self) -> List[Point]: + return self.room_generator.up_stairs + + @property + def down_stairs(self) -> List[Point]: + return self.room_generator.down_stairs + def generate(self, tiles: np.ndarray): self.room_generator.generate() self.room_generator.apply(tiles)