Files
loop/src/Dodge/Default/Wall.hs
T
2025-10-24 23:22:16 +01:00

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