]> git.localhorst.tv Git - blank.git/blob - src/app/PreloadState.cpp
simple preloader
[blank.git] / src / app / PreloadState.cpp
1 #include "PreloadState.hpp"
2
3 #include "Environment.hpp"
4 #include "../world/ChunkLoader.hpp"
5
6 #include <iostream>
7
8
9 namespace blank {
10
11 PreloadState::PreloadState(Environment &env, ChunkLoader &loader)
12 : env(env)
13 , loader(loader)
14 , per_update(256) {
15
16 }
17
18
19 void PreloadState::Handle(const SDL_Event &) {
20 }
21
22 void PreloadState::Update(int dt) {
23         loader.LoadN(per_update);
24         if (loader.ToLoad() == 0) {
25                 std::cout << "preload: populating VBOs" << std::endl;
26                 for (auto &chunk : loader.Loaded()) {
27                         chunk.CheckUpdate();
28                 }
29                 std::cout << "preload: complete" << std::endl;
30                 env.state.Pop();
31         }
32 }
33
34 void PreloadState::Render(Viewport &) {
35         // TODO: make a nice progress bar or some other fancy shit
36         std::cout << "preload: " << loader.ToLoad() << " chunks remaining" << std::endl;
37 }
38
39 }