Work on wall materials etc

This commit is contained in:
2025-10-24 13:30:46 +01:00
parent 9eed2706b0
commit 0eeae7e6bc
10 changed files with 200 additions and 216 deletions
+3 -24
View File
@@ -1,36 +1,15 @@
module Dodge.Default.Door (
module Dodge.Default.Door,
module Dodge.Default.Wall,
) where
module Dodge.Default.Door ( defaultDoor) where
import Control.Lens
import Dodge.Data.Door
import Dodge.Data.Wall
import Dodge.Default.Wall
--switchWallCol :: Color -> Wall
--switchWallCol col = defaultSwitchWall
defaultAutoWall :: Wall
defaultAutoWall =
defaultDoorWall
-- & wlColor .~ dim yellow
& wlOpacity .~ Opaque 9
& wlPathFlag . at WallNotAutoOpen .~ Nothing
defaultDoor :: Door
defaultDoor =
Door
{ _drID = 0
-- , _drWallIDs = mempty
-- , _drStatus = DoorClosed
, _drTrigger = WdBlConst False
, _drUpdate = DoorDoNothing
-- , _drPos = (0, 0)
-- , _drOpenPos = (0, 0)
-- , _drClosePos = (0, 0)
, _drZeroPos = (0,0)
, _drOnePos = (0,0)
, _drZeroPos = (0, 0)
, _drOnePos = (0, 0)
, _drLerp = 0
, _drFootPrint = mempty
, _drHP = 10000
+18 -9
View File
@@ -5,6 +5,7 @@ module Dodge.Default.Wall (
defaultCrystalWall,
defaultDoorWall,
defaultDirtWall,
defaultAutoWall,
) where
import Control.Lens
@@ -19,11 +20,7 @@ defaultWall =
{ _wlLine = (V2 0 0, V2 50 0)
, _wlID = 0
, _wlPathFlag =
S.fromList
[ WallBlockVisibility
, WallNotAutoOpen
, WallNotDestrucable
]
S.fromList [minBound .. maxBound]
, _wlOpacity = Opaque 11
, _wlUnshadowed = True
, _wlRotateTo = True
@@ -34,14 +31,23 @@ defaultWall =
}
defaultDoorWall :: Wall
defaultDoorWall = defaultWall
defaultDoorWall =
defaultWall
& wlPathFlag . at WallNotDestrucable .~ Nothing
& wlMaterial .~ Metal
& wlOpacity .~ Opaque 0
defaultAutoWall :: Wall
defaultAutoWall =
defaultDoorWall
& wlOpacity .~ Opaque 9
& wlPathFlag . at WallNotAutoOpen .~ Nothing
{- Indestructible see-through wall. -}
defaultCrystalWall :: Wall
defaultCrystalWall = defaultWall & wlOpacity .~ SeeThrough & wlMaterial .~ Crystal
defaultCrystalWall =
defaultWall & wlOpacity .~ SeeThrough & wlMaterial .~ Crystal
& wlPathFlag . at WallBlockVisibility .~ Nothing
defaultMachineWall :: Wall
defaultMachineWall =
@@ -52,24 +58,27 @@ defaultMachineWall =
, _wlMaterial = Metal
, _wlTouchThrough = True
}
& wlPathFlag . at WallBlockVisibility .~ Nothing
& wlPathFlag . at WallNotDestrucable .~ Nothing
defaultDirtWall :: Wall
defaultDirtWall =
defaultWall
{ _wlLine = (V2 0 0, V2 50 0)
, _wlID = 0
-- , _wlColor = dirtColor
, _wlOpacity = Opaque 6
, _wlRotateTo = False
, _wlMaterial = Dirt
}
& wlPathFlag . at WallNotDestrucable .~ Nothing
defaultWindow :: Wall
defaultWindow =
defaultWall
{ _wlLine = (V2 0 0, V2 50 0)
, _wlID = 0
-- , _wlColor = withAlpha 0.5 cyan
, _wlOpacity = SeeThrough
, _wlMaterial = Glass
}
& wlPathFlag . at WallNotDestrucable .~ Nothing
& wlPathFlag . at WallBlockVisibility .~ Nothing