Liquorice-0.0.1: Algorithmic Doom map generation

Copyright© Jonathan Dowland 2020
LicenseGPL-3
Maintainerjon+hackage@dow.land
Stabilityexperimental
PortabilityPOSIX
Safe HaskellNone
LanguageHaskell98

Liquorice

Description

The Liquorice fundamental data-types.

Synopsis

Documentation

data Context Source #

A Context holds the entirety of all geometry that has been defined at a point in a program: properties of the Pen: location and orientation; Palette-like properties of the Pen: the current thing Type, textures for parts of Lines and Sectors, etc.; Lists of geometric objects (linedefs,sectors,things).

Instances
Eq Context Source # 
Instance details

Defined in Liquorice

Methods

(==) :: Context -> Context -> Bool #

(/=) :: Context -> Context -> Bool #

Show Context Source # 
Instance details

Defined in Liquorice

type Point = (Int, Int) Source #

A 2D coordinate.

data Orientation Source #

Possible orientations for the Pen: The four cardinal directions.

Constructors

North 
East 
South 
West 

prev :: (Eq a, Bounded a, Enum a) => a -> a Source #

Utility function, a wrapping alternative to pred.

next :: (Eq a, Bounded a, Enum a) => a -> a Source #

Utility function, a wrapping alternative to succ.

data Thing Source #

An approximation of Doom's Thing data-type, with unboxed fields.

Constructors

Thing 
Instances
Eq Thing Source # 
Instance details

Defined in Liquorice

Methods

(==) :: Thing -> Thing -> Bool #

(/=) :: Thing -> Thing -> Bool #

Show Thing Source # 
Instance details

Defined in Liquorice

Methods

showsPrec :: Int -> Thing -> ShowS #

show :: Thing -> String #

showList :: [Thing] -> ShowS #

Binary Thing Source # 
Instance details

Defined in Liquorice.Wad

Methods

put :: Thing -> Put #

get :: Get Thing #

putList :: [Thing] -> Put #

data Sector Source #

An approximation of Doom's Sector data-type, with unboxed fields. Unlike Doom's Sector data structure, we maintain a list of lines that belong to a given Sector.

Instances
Eq Sector Source # 
Instance details

Defined in Liquorice

Methods

(==) :: Sector -> Sector -> Bool #

(/=) :: Sector -> Sector -> Bool #

Show Sector Source # 
Instance details

Defined in Liquorice

Binary Sector Source # 
Instance details

Defined in Liquorice.Wad

Methods

put :: Sector -> Put #

get :: Get Sector #

putList :: [Sector] -> Put #

start :: Context Source #

An initial Context, from which to derive a new map. Empty lines and Sector lists and sensible default values for "palette" parameters.