33 lines
844 B
Haskell
33 lines
844 B
Haskell
--{-# LANGUAGE TemplateHaskell #-}
|
|
{-# LANGUAGE StrictData #-}
|
|
module Dodge.LevelGen.LevelStructure
|
|
( module Dodge.LevelGen.Data
|
|
, worldToGenWorld
|
|
) where
|
|
import Dodge.LevelGen.Data
|
|
--import Dodge.Tree.Compose.Data
|
|
import Dodge.Data
|
|
import RandomHelp
|
|
import Color
|
|
import LensHelp
|
|
|
|
--import Data.Tree
|
|
import qualified Data.IntMap.Strict as IM
|
|
import qualified Data.Map.Strict as M
|
|
--import Control.Lens
|
|
|
|
worldToGenWorld :: IM.IntMap Room -> World -> World
|
|
worldToGenWorld rms w = w
|
|
& genParams .~ evalState generateGenParams (_randGen w)
|
|
& genRooms .~ rms
|
|
|
|
generateGenParams :: RandomGen g => State g GenParams
|
|
generateGenParams = do
|
|
cols <- shuffle [RED .. ORANGE]
|
|
shps <- shuffle [PLUS ..]
|
|
return
|
|
. GenParams
|
|
. M.fromList
|
|
. zip [FLAMING,LASERING,ELECTRICAL]
|
|
$ zip cols shps
|