Create post world load function
This commit is contained in:
+17
-9
@@ -1,5 +1,7 @@
|
||||
module Dodge.LevelGen where
|
||||
|
||||
import Dodge.Layout
|
||||
import Data.Preload.Render
|
||||
import Control.Lens
|
||||
import Control.Monad.State
|
||||
import Data.Foldable
|
||||
@@ -8,15 +10,14 @@ import Dodge.Combine.Graph
|
||||
import Dodge.Data.GenWorld
|
||||
import Dodge.Floor
|
||||
import Dodge.Initialisation
|
||||
import Dodge.Layout
|
||||
import Dodge.Tree
|
||||
import Geometry.ConvexPoly
|
||||
import qualified IntMapHelp as IM
|
||||
import System.Directory
|
||||
import System.Random
|
||||
|
||||
generateWorldFromSeed :: Int -> IO World
|
||||
generateWorldFromSeed i = do
|
||||
generateWorldFromSeed :: RenderData -> Int -> IO World
|
||||
generateWorldFromSeed rdata i = do
|
||||
createDirectoryIfMissing True "log"
|
||||
createDirectoryIfMissing True "graph"
|
||||
writeFile "log/attemptedSeeds" ""
|
||||
@@ -24,13 +25,20 @@ generateWorldFromSeed i = do
|
||||
writeFile "log/aGeneratedRoomLayout" ""
|
||||
generateGraphs
|
||||
(roomList, bounds) <- layoutLevelFromSeed 0 i
|
||||
postGenerationProcessing $!
|
||||
_gwWorld (generateLevelFromRoomList roomList initialWorld{_randGen = mkStdGen i})
|
||||
& cWorld . cwGen . cwgRoomClipping .~ bounds
|
||||
& cWorld . cwGen . cwgSeed .~ i
|
||||
postGenerationProcessing rdata
|
||||
$! (generateLevelFromRoomList roomList initialWorld{_randGen = mkStdGen i})
|
||||
& gwWorld . cWorld . cwGen . cwgRoomClipping .~ bounds
|
||||
& gwWorld . cWorld . cwGen . cwgSeed .~ i
|
||||
|
||||
postGenerationProcessing :: World -> IO World
|
||||
postGenerationProcessing w =
|
||||
postGenerationProcessing :: RenderData -> GenWorld -> IO World
|
||||
postGenerationProcessing _ gw = do
|
||||
let w' = _gwWorld gw
|
||||
-- nfloorvxs <- foldM (pokeTile (rdata ^. floorVBO . vboPtr))
|
||||
-- 0
|
||||
-- (tilesFromRooms . IM.elems $ _genRooms gw)
|
||||
-- bufferPokedVBO (rdata ^. floorVBO) nfloorvxs
|
||||
let w = w' -- & cWorld . numberFloorVerxs .~ nfloorvxs
|
||||
& cWorld . cwTiles .~ (tilesFromRooms . IM.elems $ _genRooms gw)
|
||||
return $ foldl' assignPushDoors w (w ^. cWorld . lWorld . doors)
|
||||
|
||||
generateGraphs :: IO ()
|
||||
|
||||
Reference in New Issue
Block a user