1 #include "UnloadState.hpp"
3 #include "Environment.hpp"
4 #include "../world/ChunkLoader.hpp"
5 #include "../world/WorldSave.hpp"
10 UnloadState::UnloadState(Environment &env, ChunkLoader &loader)
13 , font(env.assets.LoadFont("DejaVuSans", 24))
15 , cur(loader.Loaded().begin())
16 , end(loader.Loaded().end())
18 , total(loader.Loaded().size())
20 progress.Position(glm::vec3(0.0f), Gravity::CENTER);
21 progress.Template("Unloading chunks: %d/%d (%d%%)");
25 void UnloadState::OnResume() {
26 cur = loader.Loaded().begin();
27 end = loader.Loaded().end();
29 total = loader.Loaded().size();
33 void UnloadState::Handle(const SDL_Event &) {
37 void UnloadState::Update(int dt) {
38 for (std::size_t i = 0; i < per_update && cur != end; ++i, ++cur, ++done) {
39 if (cur->ShouldUpdateSave()) {
40 loader.SaveFile().Write(*cur);
46 progress.Update(done, total);
50 void UnloadState::Render(Viewport &viewport) {
51 progress.Render(viewport);