Give MapGenerator up_stairs and down_stairs properties

This commit is contained in:
Eryn Wells 2023-02-09 21:00:51 -08:00
parent d9aa8097c5
commit fff3260d01

View file

@ -1,13 +1,23 @@
from typing import List
import numpy as np import numpy as np
from ..tile import Empty
from .corridor import CorridorGenerator from .corridor import CorridorGenerator
from .room import RoomGenerator from .room import RoomGenerator
from ...geometry import Point
class MapGenerator: class MapGenerator:
'''Abstract base class defining an interface for generating a map and applying it to a set of tiles.''' '''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): def generate(self, tiles: np.ndarray):
raise NotImplementedError() raise NotImplementedError()
@ -21,6 +31,14 @@ class RoomsAndCorridorsGenerator(MapGenerator):
self.room_generator = room_generator self.room_generator = room_generator
self.corridor_generator = corridor_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): def generate(self, tiles: np.ndarray):
self.room_generator.generate() self.room_generator.generate()
self.room_generator.apply(tiles) self.room_generator.apply(tiles)