Simplify room out/in placements
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
{- Rooms that contain two doors and a switch alternating both. -}
|
||||
module Dodge.Room.Airlock where
|
||||
|
||||
import Data.Maybe
|
||||
import Control.Lens
|
||||
import Control.Monad
|
||||
--import Dodge.Annotation.Data
|
||||
@@ -41,14 +42,15 @@ decontamRoom i =
|
||||
]
|
||||
& rmOutPmnt . at i ?~
|
||||
analyser (NoItemZone ps) (PS 50 0) (PS mcpos 0)
|
||||
& rmInPmnt .~ [InPlacement f i]
|
||||
& rmInPmnt .~ [f]
|
||||
& rmBound .~ [rectNSWE 75 15 0 40, switchcut]
|
||||
where
|
||||
f _ (pmnt : _) = putDoubleDoor DoorObstacle (switchWallCol red) (cond pmnt)
|
||||
(V2 (-10) 35)
|
||||
(V2 (-10) 65)
|
||||
2
|
||||
f _ _ = error "tried to put a door using an empty placement list"
|
||||
f gw = fromMaybe (error "tried to put a door using an empty placement list") $ do
|
||||
pmnt <- gw ^? genPmnt . ix i . _head
|
||||
return $ putDoubleDoor DoorObstacle (switchWallCol red) (cond pmnt)
|
||||
(V2 (-10) 35)
|
||||
(V2 (-10) 65)
|
||||
2
|
||||
cond pmnt = WdTrig $ pmnt ^?! plMID . _Just
|
||||
mcpos = V2 70 50
|
||||
cutps = [rectNSWE 100 0 0 40, switchcut]
|
||||
|
||||
Reference in New Issue
Block a user