Add various capabilities for generating graphs, fixes to lasgun

This commit is contained in:
2022-07-06 11:54:29 +01:00
parent cd3463d3d8
commit d63495e335
29 changed files with 1801 additions and 178 deletions
+5 -1
View File
@@ -24,10 +24,11 @@ import qualified Data.Text.IO as TIO
generateWorldFromSeed :: Int -> IO World
generateWorldFromSeed i = do
createDirectoryIfMissing True "log"
createDirectoryIfMissing True "graph"
writeFile "log/attemptedSeeds" ""
writeFile "log/treeCluster" ""
writeFile "log/aGeneratedRoomLayout" ""
TIO.writeFile "log/itemCombinations.gv" combinationsDotGraph
generateGraphs
(roomList,bounds) <- layoutLevelFromSeed 0 i
return $ saveLevelStartSlot
$ postGenerationProcessing
@@ -37,6 +38,9 @@ generateWorldFromSeed i = do
postGenerationProcessing :: World -> World
postGenerationProcessing w = foldl' assignPushDoors w (_doors w)
generateGraphs :: IO ()
generateGraphs = TIO.writeFile "graph/itemCombinations.gv" combinationsDotGraph
assignPushDoors :: World -> Door -> World
assignPushDoors w dr = case dr ^?! drPushedBy of
PushedBy i -> w & doors . ix i . drPushes ?~ _drID dr