]> git.localhorst.tv Git - blank.git/blobdiff - src/app/UnloadState.cpp
split chunk stuff
[blank.git] / src / app / UnloadState.cpp
index 534a14acb4a0b9496382fb6023b2ea3dd9418a35..43aae056f27727ebc036e75d69dc044549dcec6f 100644 (file)
@@ -7,14 +7,18 @@
 
 namespace blank {
 
-UnloadState::UnloadState(Environment &env, ChunkLoader &loader)
+UnloadState::UnloadState(
+       Environment &env,
+       ChunkStore &chunks,
+       const WorldSave &save)
 : env(env)
-, loader(loader)
+, chunks(chunks)
+, save(save)
 , progress(env.assets.large_ui_font)
-, cur(loader.Loaded().begin())
-, end(loader.Loaded().end())
+, cur(chunks.begin())
+, end(chunks.end())
 , done(0)
-, total(loader.Loaded().size())
+, total(chunks.NumLoaded())
 , per_update(64) {
        progress.Position(glm::vec3(0.0f), Gravity::CENTER);
        progress.Template("Unloading chunks: %d/%d (%d%%)");
@@ -22,10 +26,10 @@ UnloadState::UnloadState(Environment &env, ChunkLoader &loader)
 
 
 void UnloadState::OnResume() {
-       cur = loader.Loaded().begin();
-       end = loader.Loaded().end();
+       cur = chunks.begin();
+       end = chunks.end();
        done = 0;
-       total = loader.Loaded().size();
+       total = chunks.NumLoaded();
 }
 
 
@@ -36,7 +40,7 @@ void UnloadState::Handle(const SDL_Event &) {
 void UnloadState::Update(int dt) {
        for (std::size_t i = 0; i < per_update && cur != end; ++i, ++cur, ++done) {
                if (cur->ShouldUpdateSave()) {
-                       loader.SaveFile().Write(*cur);
+                       save.Write(*cur);
                }
        }
        if (cur == end) {