Files
loop/src/Dodge/WorldLoad.hs
T
2023-04-25 10:23:43 +01:00

23 lines
674 B
Haskell

module Dodge.WorldLoad where
import Control.Lens
import Control.Monad
import Data.Preload.Render
import Dodge.Data.Universe
import Shader.Bind
import Shader.Data
import Shader.Poke.Floor
postUniverseLoadSideEffect :: Universe -> Universe
postUniverseLoadSideEffect = uvIOEffects %~ (\f uv -> (uvWorld . cWorld) (postWorldLoad (uv ^. preloadData . renderData)) uv >>= f)
postWorldLoad :: RenderData -> CWorld -> IO CWorld
postWorldLoad rdata cw = do
nfloorvxs <-
foldM
(pokeTile (rdata ^. floorVBO . vboPtr))
0
(cw ^. cwTiles)
bufferPokedVBO (rdata ^. floorVBO) nfloorvxs
return $ cw & numberFloorVerxs .~ nfloorvxs