Give MapGenerator up_stairs and down_stairs properties
This commit is contained in:
parent
d9aa8097c5
commit
fff3260d01
1 changed files with 19 additions and 1 deletions
|
@ -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)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue