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