LambdaHack-0.4.9.0: A game engine library for roguelike dungeon crawlers

Safe HaskellNone

Game.LambdaHack.Server.DungeonGen.Place

Description

Generation of places from place kinds.

Synopsis

Documentation

type TileMapEM = EnumMap Point (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.

data Place Source

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

Constructors

Place 

Instances

placeCheckSource

Arguments

:: Area

the area to fill

-> PlaceKind

the place kind to construct

-> Bool 

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.

buildFenceRnd :: COps -> GroupName -> Area -> Rnd TileMapEMSource

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

buildPlaceSource

Arguments

:: COps

the game content

-> CaveKind

current cave kind

-> Bool

whether the cave is dark

-> Id TileKind

dark fence tile, if fence hollow

-> Id TileKind

lit fence tile, if fence hollow

-> AbsDepth

current level depth

-> AbsDepth

absolute depth

-> Area

whole area of the place, fence included

-> Rnd (TileMapEM, Place) 

Given a few parameters, roll and construct a Place datastructure and fill a cave section acccording to it.