31 lines
1.0 KiB
Haskell
31 lines
1.0 KiB
Haskell
module Dodge.Room.Start
|
|
where
|
|
import Dodge.Room.Data
|
|
import Dodge.Room.Link
|
|
import Dodge.Room.Procedural
|
|
import Dodge.Room.Foreground
|
|
import Dodge.LevelGen.Data
|
|
import Picture
|
|
--import Geometry
|
|
|
|
import Data.Tree
|
|
import Control.Monad.State
|
|
import Control.Lens
|
|
import System.Random
|
|
|
|
startRoom :: RandomGen g => State g (Tree (Either Room Room))
|
|
startRoom = do
|
|
w <- state $ randomR (100,400)
|
|
h <- state $ randomR (200,400)
|
|
let fground = sPS (0,0) 0 $ PutForeground $ pictures
|
|
--[ highDiagonalMesh (0,0) (0,h) w 50
|
|
----, setDepth (-0.1) $ color orange $ pictures
|
|
---- [ polygon $ rectNSEW 50 40 140 (-20)
|
|
---- , translate 60 45 $ scale 0.5 1 $ thickArc 0 pi 75 10
|
|
---- , translate (-20) 300 $ polygon $ rectNSEW 10 0 40 0
|
|
---- ]
|
|
--, highDiagonalMesh (w,0) (0,0) h 50
|
|
[ highPipe (0,h/2) (w, h/2)
|
|
]
|
|
pure . Right <$> randomiseOutLinks (shiftRoomBy ((-20,-20),0) $ roomRectAutoLinks w h & rmPS %~ (fground :))
|