Work on wall materials etc
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user