Work on rooms

This commit is contained in:
2026-03-21 18:48:44 +00:00
parent b52964f606
commit 5394450800
9 changed files with 170 additions and 173 deletions
+17 -13
View File
@@ -2,8 +2,6 @@
module Dodge.Room.SensorDoor (sensAboveDoor, sensorRoomRunPast) where
import Dodge.RoomLink
import Dodge.Room.Procedural
import Control.Monad
import qualified Data.Set as S
import Dodge.Cleat
@@ -17,6 +15,8 @@ import Dodge.Room.Door
import Dodge.Room.Link
import Dodge.Room.Modify
import Dodge.Room.Ngon
import Dodge.Room.Procedural
import Dodge.RoomLink
import Dodge.Terminal
import Dodge.Tree
import Dodge.Wire
@@ -28,8 +28,12 @@ import RandomHelp
-- for roomRectAutoLinks-- make the locked door a center door?
sensorRoom :: SensorType -> Int -> State LayoutVars (Tree Room)
sensorRoom senseType n = do
--rm <- join $ takeOne [addLightsNGon =<< roomNgon 8 200, roomRectAutoLights 200 200]
rm <- join $ takeOne [ roomRectAutoLights 200 200 <&> rmLinks %~ setOutLinks nonCornerLinks]
rm <-
join $
takeOne
[ addLightsNGon =<< roomNgon 8 200
, roomRectAutoLights 200 200 <&> rmLinks %~ setOutLinks nonCornerLinks
]
cenroom <- shuffleLinks $ sensInsideDoor senseType n rm
return $
treePost
@@ -75,7 +79,8 @@ sensAboveDoor sensetype wth ps =
sensInsideDoor :: SensorType -> Int -> Room -> Room
sensInsideDoor senseType i rm =
rm
& rmName .++~ take 4 (show senseType)
& rmName
.++~ take 4 (show senseType)
& rmPmnts
.++~ [ psPt atFstLnkOut . PutForeground $ floorWire (V2 20 0) (V2 20 (-100))
, psPt atFstLnkOut . PutForeground $ floorWire (V2 0 (-100)) (V2 20 (-100))
@@ -87,12 +92,11 @@ sensInsideDoor senseType i rm =
, sensAboveDoor senseType 10 (atFstLnkOutShiftInward 100) & plExternalID ?~ i
]
where
termpos rp rm' = isUnusedLnk rp rm'
&& all ((>30) . dist (_rpPos rp) . _rpPos) (filter usedlnks $ rm' ^. rmPos)
termpos rp rm' =
isUnusedLnk rp rm'
&& all ((> 30) . dist (_rpPos rp) . _rpPos) (filter usedlnks $ rm' ^. rmPos)
usedlnks rp = case _rpType rp of
UsedOutLink {} -> True
UsedInLink {} -> True
UnusedLink {} -> False
NotLink {} -> False
UsedOutLink{} -> True
UsedInLink{} -> True
UnusedLink{} -> False
NotLink{} -> False