Safe Haskell | None |
---|

Generation of places from place kinds.

# Documentation

type TileMapXY = EnumMap PointXY (Id TileKind)Source

The map of tile kinds in a place (and generally anywhere in a cave).
The map is sparse. The default tile that eventually fills the empty spaces
is specified in the cave kind specification with `cdefTile`

.

The parameters of a place. Most are immutable and set at the time when a place is generated.

For `CAlternate`

tiling, require the place be comprised
of an even number of whole corners, with exactly one square
overlap between consecutive coners and no trimming.
For other tiling methods, check that the area is large enough for tiling
the corner twice in each direction, with a possible one row/column overlap.

buildFence :: Id TileKind -> Area -> TileMapXYSource

Construct a fence around an area, with the given tile kind.

:: COps | the game content |

-> CaveKind | current cave kind |

-> Id TileKind | fence tile, if fence hollow |

-> Int | current level depth |

-> Int | maximum depth |

-> Area | interior area of the place |

-> Rnd (TileMapXY, Place) |

Given a few parameters, roll and construct a `Place`

datastructure
and fill a cave section acccording to it.