]> git.localhorst.tv Git - blank.git/blob - src/app/UnloadState.hpp
group entity updates in as few packets as possible
[blank.git] / src / app / UnloadState.hpp
1 #ifndef BLANK_APP_UNLOADSTATE_HPP_
2 #define BLANK_APP_UNLOADSTATE_HPP_
3
4 #include "State.hpp"
5
6 #include "../ui/Progress.hpp"
7
8 #include <cstddef>
9 #include <list>
10
11
12 namespace blank {
13
14 class Chunk;
15 class ChunkStore;
16 class Environment;
17 class WorldSave;
18
19 class UnloadState
20 : public State {
21
22 public:
23         UnloadState(Environment &, ChunkStore &, const WorldSave &);
24
25         void OnResume();
26
27         void Handle(const SDL_Event &) override;
28         void Update(int dt) override;
29         void Render(Viewport &) override;
30
31 private:
32         Environment &env;
33         ChunkStore &chunks;
34         const WorldSave &save;
35         Progress progress;
36         std::list<Chunk>::iterator cur;
37         std::list<Chunk>::iterator end;
38         std::size_t done;
39         std::size_t total;
40         std::size_t per_update;
41
42 };
43
44 }
45
46 #endif