Safe Haskell | None |
---|
Operations on the Area
type that involve random numbers.
Picking points inside areas
Create a random room according to given parameters.
Create a void room, i.e., a single point area.
Choosing connections
connectGrid :: (X, Y) -> Rnd [(PointXY, PointXY)]
Pick a subset of connections between adjacent areas within a grid until there is only one connected component in the graph of all areas.
randomConnection :: (X, Y) -> Rnd (PointXY, PointXY)
Pick a single random connection between adjacent areas within a grid.
Plotting corridors
connectPlaces :: Area -> Area -> Rnd Corridor
Try to connect two places with a corridor.
Choose entrances at least 4 or 3 tiles distant from the edges, if the place
is big enough. Note that with pfence == FNone
, the area considered
is the interior of the place, without the outermost tiles.