Files
loop/src/Dodge/LevelGen/LevelStructure.hs
T
2022-06-02 19:06:00 +01:00

35 lines
965 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 Dodge.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
import Control.Monad.State
import System.Random
worldToGenWorld :: IM.IntMap Room -> World -> World
worldToGenWorld rms w = w & genParams .~ gparams
& genRooms .~ rms
-- , _gPlacements = IM.empty
-- , _gRooms = rms
where
gparams = evalState generateGenParams (_randGen w)
generateGenParams :: RandomGen g => State g GenParams
generateGenParams = do
cols <- shuffle [Red .. Orange]
shps <- shuffle [PlusDecoration ..]
return . GenParams . M.fromList . zip [Flaming,Lasering,Electrical]
$ zip cols shps