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
+2
View File
@@ -16,6 +16,8 @@ decoratedBlock decf mat col h ps = PutBlock bl wl $ reverse ps
& blHeight .~ h
wl =
defaultWall
& wlPathFlag . at WallNotDestrucable .~ Nothing
& wlPathFlag . at WallBlockVisibility .~ Nothing
& wlRotateTo .~ False
& wlOpacity .~ SeeAbove
& wlMaterial .~ mat
+2 -1
View File
@@ -5,12 +5,13 @@ module Dodge.Placement.Instance.Door (
switchDoor, -- not used 9/3/22
) where
import Dodge.Default.Wall
import Dodge.Default.Door
import qualified Data.Set as S
import Color
import Control.Lens
import Dodge.Data.CreatureEffect
import Dodge.Data.GenWorld
import Dodge.Default.Door
import Dodge.LevelGen.PlacementHelper
import Dodge.LevelGen.Switch
import Geometry
@@ -4,6 +4,7 @@ module Dodge.Placement.PlaceSpot.TriggerDoor (
updateDoorEdges,
) where
import Dodge.Default.Wall
import qualified Data.Set as S
import Dodge.ShiftPoint
import Linear
+1 -1
View File
@@ -3,12 +3,12 @@
{- Rooms that contain two doors and a switch alternating both. -}
module Dodge.Room.Airlock where
import Dodge.Default.Wall
import Dodge.Room.Path
import Control.Lens
import Control.Monad
import Data.Maybe
import Dodge.Data.GenWorld
import Dodge.Default.Door
import Dodge.Default.Room
import Dodge.LevelGen.PlacementHelper
import Dodge.LevelGen.Switch
+1 -1
View File
@@ -1,9 +1,9 @@
{- Rooms that connect other rooms, blocking sight. -}
module Dodge.Room.Door where
import Dodge.Default.Wall
import Data.Maybe
import Dodge.Data.GenWorld
import Dodge.Default.Door
import Dodge.Default.Room
import Dodge.Placement.Instance
import Dodge.RoomLink
+1
View File
@@ -2,6 +2,7 @@
-- | Rooms containing long doors, probably with a big reveal behind them.
module Dodge.Room.LongDoor where
import Dodge.Default.Wall
import Control.Monad
import Dodge.LevelGen.Switch
import Data.Maybe
+1
View File
@@ -10,6 +10,7 @@ module Dodge.Room.Procedural (
makeGrid,
) where
import Dodge.Default.Wall
import Control.Monad
import Tile
import qualified Data.Set as S