Safe Haskell | None |
---|---|
Language | Haskell2010 |
Game.LambdaHack.Content.PlaceKind
Contents
Description
The type of place kinds. Every room in the game is an instantiated place kind.
Synopsis
- data PlaceKind = PlaceKind {}
- makeData :: [PlaceKind] -> [GroupName PlaceKind] -> [GroupName PlaceKind] -> ContentData PlaceKind
- data Cover
- data Fence
- data PlaceEntry
- deadEndId :: ContentId PlaceKind
- validateSingle :: PlaceKind -> [Text]
- validateAll :: [PlaceKind] -> ContentData PlaceKind -> [Text]
Documentation
Parameters for the generation of small areas within a dungeon level.
Constructors
PlaceKind | |
Fields
|
makeData :: [PlaceKind] -> [GroupName PlaceKind] -> [GroupName PlaceKind] -> ContentData PlaceKind Source #
A method of filling the whole area (except for CVerbatim and CMirror, which are just placed in the middle of the area) by transforming a given corner.
Constructors
CAlternate | reflect every other corner, overlapping 1 row and column |
CStretch | fill symmetrically 4 corners and stretch their borders |
CReflect | tile separately and symmetrically quarters of the place |
CVerbatim | just build the given interior, without filling the area |
CMirror | build the given interior in one of 4 mirrored variants |
Instances
The choice of a fence type for the place.
Constructors
FWall | put a solid wall fence around the place |
FFloor | leave an empty space, like the room's floor |
FGround | leave an empty space, like the cave's ground |
FNone | skip the fence and fill all with the place proper |
Instances
data PlaceEntry Source #
Constructors
PEntry (ContentId PlaceKind) | |
PAround (ContentId PlaceKind) | |
PExists (ContentId PlaceKind) |
Instances
Internal operations
validateSingle :: PlaceKind -> [Text] Source #
Catch invalid place kind definitions. In particular, verify that the top-left corner map is rectangular and not empty.
validateAll :: [PlaceKind] -> ContentData PlaceKind -> [Text] Source #
Validate all place kinds.