Safe Haskell | None |
---|---|

Language | Haskell2010 |

Rectangular areas of levels and their basic operations.

## Synopsis

- data Area
- toArea :: (X, Y, X, Y) -> Maybe Area
- fromArea :: Area -> (X, Y, X, Y)
- trivialArea :: Point -> Area
- isTrivialArea :: Area -> Bool
- mkFixed :: (X, Y) -> Area -> Point -> Area
- data SpecialArea
- grid :: EnumMap Point (GroupName PlaceKind) -> [Point] -> (X, Y) -> Area -> ((X, Y), EnumMap Point SpecialArea)
- shrink :: Area -> Maybe Area
- expand :: Area -> Area
- sumAreas :: Area -> Area -> Area

# Documentation

The type of areas. The bottom left and the top right points.

trivialArea :: Point -> Area Source #

isTrivialArea :: Area -> Bool Source #

data SpecialArea Source #

## Instances

Show SpecialArea Source # | |

Defined in Game.LambdaHack.Server.DungeonGen.Area showsPrec :: Int -> SpecialArea -> ShowS # show :: SpecialArea -> String # showList :: [SpecialArea] -> ShowS # |

grid :: EnumMap Point (GroupName PlaceKind) -> [Point] -> (X, Y) -> Area -> ((X, Y), EnumMap Point SpecialArea) Source #

Divide uniformly a larger area into the given number of smaller areas overlapping at the edges.

When a list of fixed centers (some important points inside) of (non-overlapping) areas is given, incorporate those, with as little disruption, as possible.