Move towards better annotations when generating layouts

This commit is contained in:
2022-05-20 11:14:11 +01:00
parent 887dd547d9
commit 1739d648fe
6 changed files with 52 additions and 29 deletions
+8 -3
View File
@@ -20,6 +20,7 @@ import qualified Data.IntMap.Strict as IM
generateWorldFromSeed :: Int -> IO World
generateWorldFromSeed i = do
writeFile "attemptedSeeds" ""
(roomList,bounds) <- layoutLevelFromSeed 0 i
return $ saveLevelStartSlot $ _gWorld (generateLevelFromRoomList roomList
initialWorld{_randGen=mkStdGen i})
@@ -29,12 +30,16 @@ layoutLevelFromSeed :: Int -> Int -> IO (IM.IntMap Room,[ConvexPoly])
layoutLevelFromSeed i seed = do
let i' = i + 1
putStrLn $ "Generating level with seed " ++ show seed
appendFile "attemptedSeeds" $ show seed ++ "\n"
let g = mkStdGen seed
let rmtree = inorderNumberTree $ evalState initialRoomTree g
putStrLn "Compact layout: "
let treecluster = evalState initialRoomTree g
putStrLn "Room cluster layout:"
putStrLn $ drawTree $ fmap snd treecluster
let rmtree = inorderNumberTree $ expandTree $ fmap fst treecluster
putStrLn "Room layout (compact): "
putStrLn $ compactDrawTree $ fmap (show . snd) rmtree
let nameshow (r,rid) = _rmName r ++ "-" ++ show rid
writeFile "aGeneratedRoomLayout" $ drawTree $ fmap nameshow rmtree
appendFile "aGeneratedRoomLayout" $ drawTree $ fmap nameshow rmtree
putStrLn "Layout with room names (also written to aGeneratedRoomLayout):"
mrs <- positionRoomsFromTree rmtree
case mrs of