56 lines
1.3 KiB
Haskell
56 lines
1.3 KiB
Haskell
module Dodge.Default.Wall (
|
|
defaultWall,
|
|
defaultMachineWall,
|
|
defaultWindow,
|
|
defaultCrystalWall,
|
|
defaultDoorWall,
|
|
defaultDirtWall,
|
|
defaultAutoWall,
|
|
) where
|
|
|
|
import Control.Lens
|
|
import Dodge.Data.Wall
|
|
import Geometry.Data
|
|
|
|
defaultWall :: Wall
|
|
defaultWall =
|
|
Wall
|
|
{ _wlLine = (V2 0 0, V2 50 0)
|
|
, _wlID = 0
|
|
, _wlOpacity = Opaque 11
|
|
, _wlUnshadowed = True
|
|
, _wlRotateTo = True
|
|
, _wlStructure = StandaloneWall
|
|
, _wlHeight = 100
|
|
, _wlMaterial = Stone
|
|
, _wlTouchThrough = False
|
|
}
|
|
|
|
defaultDoorWall :: Wall
|
|
defaultDoorWall = defaultWall & wlMaterial .~ Metal & wlOpacity .~ Opaque 0
|
|
|
|
defaultAutoWall :: Wall
|
|
defaultAutoWall = defaultDoorWall & wlOpacity .~ Opaque 9
|
|
|
|
defaultCrystalWall :: Wall
|
|
defaultCrystalWall = defaultWall & wlOpacity .~ SeeThrough & wlMaterial .~ Crystal
|
|
|
|
defaultMachineWall :: Wall
|
|
defaultMachineWall =
|
|
defaultWall
|
|
& wlOpacity .~ SeeAbove
|
|
& wlRotateTo .~ False
|
|
& wlStructure .~ MachinePart 0
|
|
& wlMaterial .~ Metal
|
|
& wlTouchThrough .~ True
|
|
|
|
defaultDirtWall :: Wall
|
|
defaultDirtWall =
|
|
defaultWall
|
|
& wlOpacity .~ Opaque 6
|
|
& wlRotateTo .~ False
|
|
& wlMaterial .~ Dirt
|
|
|
|
defaultWindow :: Wall
|
|
defaultWindow = defaultWall & wlOpacity .~ SeeThrough & wlMaterial .~ Glass
|