Files
loop/src/Dodge/LevelGen/LevelStructure.hs
T
2025-09-23 21:02:27 +01:00

32 lines
828 B
Haskell

module Dodge.LevelGen.LevelStructure (
module Dodge.LevelGen.PlacementHelper,
worldToGenWorld,
) where
import Color
import qualified Data.Map.Strict as M
import Dodge.Data.GenWorld
import Dodge.LevelGen.PlacementHelper
import qualified IntMapHelp as IM
import LensHelp
import RandomHelp
worldToGenWorld :: IM.IntMap Room -> World -> GenWorld
worldToGenWorld rms w =
GenWorld
{ _gwWorld = w & cWorld . cwGen . cwgParams .~ evalState generateGenParams (_randGen w)
, _genRooms = rms
, _genPmnt = mempty
, _genInts = mempty
}
generateGenParams :: RandomGen g => State g GenParams
generateGenParams = do
cols <- shuffle [RED .. ORANGE]
shps <- shuffle [PLUS ..]
return
. GenParams
. M.fromList
. zip [LaserSensor ..]
$ zip cols shps