Remove separate wall color, should be handled by material type

This commit is contained in:
2025-10-23 21:27:14 +01:00
parent 819f0d37ea
commit 3c6d269d00
24 changed files with 136 additions and 123 deletions
+4 -5
View File
@@ -3,25 +3,24 @@ module Dodge.Default.Door (
module Dodge.Default.Wall,
) where
import Color
import Control.Lens
import Dodge.Data.Door
import Dodge.Data.Wall
import Dodge.Default.Wall
switchWallCol :: Color -> Wall
switchWallCol col = defaultSwitchWall & wlColor .~ col
--switchWallCol :: Color -> Wall
--switchWallCol col = defaultSwitchWall
defaultAutoWall :: Wall
defaultAutoWall =
defaultDoorWall
& wlColor .~ dim yellow
-- & wlColor .~ dim yellow
& wlOpacity .~ Opaque 9
defaultSwitchWall :: Wall
defaultSwitchWall =
defaultDoorWall
& wlColor .~ red
-- & wlColor .~ red
& wlOpacity .~ Opaque 0
defaultDoor :: Door
+20 -30
View File
@@ -8,11 +8,10 @@ module Dodge.Default.Wall (
defaultDirtWall,
) where
import qualified Data.Set as S
import Control.Lens
import qualified Data.Set as S
import Dodge.Data.Wall
import Geometry.Data
import Picture
{- Indestructible wall. -}
defaultWall :: Wall
@@ -20,34 +19,34 @@ defaultWall =
Wall
{ _wlLine = (V2 0 0, V2 50 0)
, _wlID = 0
, _wlColor = greyN 0.6
, _wlPathFlag = S.fromList [WallBlockVisibility
, WallNotAutoOpen, WallNotDestrucable]
-- , _wlColor = greyN 0.6
, _wlPathFlag =
S.fromList
[ WallBlockVisibility
, WallNotAutoOpen
, WallNotDestrucable
]
, _wlOpacity = Opaque 11
, _wlPenetrable = False
, _wlFireThrough = False
, _wlTouchThrough = False
, _wlUnshadowed = True
, _wlRotateTo = True
, _wlStructure = StandaloneWall
, _wlWalkable = False
, _wlHeight = 100
, _wlMaterial = Stone
, _wlBouncy = True
, _wlTouchThrough = False
}
defaultDoorWall :: Wall
defaultDoorWall = defaultWall { _wlMaterial = Metal }
& wlPathFlag . at WallNotDestrucable .~ Nothing
defaultDoorWall =
defaultWall{_wlMaterial = Metal}
& wlPathFlag . at WallNotDestrucable .~ Nothing
{- Indestructible see-through wall. -}
defaultCrystalWall :: Wall
defaultCrystalWall =
defaultWall
{ _wlColor = withAlpha 0.5 aquamarine
, _wlOpacity = SeeThrough
, _wlMaterial = Crystal
}
defaultCrystalWall = defaultWall & wlOpacity .~ SeeThrough & wlMaterial .~ Crystal
-- { _wlColor = withAlpha 0.5 aquamarine
-- , _wlOpacity = SeeThrough
-- , _wlMaterial = Crystal
-- }
defaultMachineWall :: Wall
defaultMachineWall =
@@ -56,37 +55,28 @@ defaultMachineWall =
, _wlRotateTo = False
, _wlStructure = MachinePart 0
, _wlMaterial = Metal
, _wlPenetrable = True
}
defaultSensorWall :: Wall
defaultSensorWall = defaultMachineWall & wlBouncy .~ False
defaultSensorWall = defaultMachineWall
defaultDirtWall :: Wall
defaultDirtWall =
defaultWall
{ _wlLine = (V2 0 0, V2 50 0)
, _wlID = 0
, _wlColor = dirtColor
-- , _wlColor = dirtColor
, _wlOpacity = Opaque 6
, _wlRotateTo = False
, _wlFireThrough = False
, _wlPenetrable = True
, _wlMaterial = Dirt
}
dirtColor :: Color
dirtColor = dark $ dark orange
--dirtColor = V4 (150 / 256) (75 / 256) 0 (250 / 256)
defaultWindow :: Wall
defaultWindow =
defaultWall
{ _wlLine = (V2 0 0, V2 50 0)
, _wlID = 0
, _wlColor = withAlpha 0.5 cyan
-- , _wlColor = withAlpha 0.5 cyan
, _wlOpacity = SeeThrough
, _wlFireThrough = False
, _wlMaterial = Glass
, _wlPenetrable = True
}