]> git.localhorst.tv Git - blank.git/blob - src/app/ServerState.hpp
aa7e779c7dd7acf6736e930f50d463c288543775
[blank.git] / src / app / ServerState.hpp
1 #ifndef BLANK_APP_SERVERSTATE_HPP_
2 #define BLANK_APP_SERVERSTATE_HPP_
3
4 #include "IntervalTimer.hpp"
5 #include "State.hpp"
6 #include "../ai/Spawner.hpp"
7 #include "../model/Skeletons.hpp"
8 #include "../net/Server.hpp"
9 #include "../world/BlockTypeRegistry.hpp"
10 #include "../world/World.hpp"
11
12
13 namespace blank {
14
15 class HeadlessEnvironment;
16
17 class ServerState
18 : public State {
19
20 public:
21         ServerState(
22                 HeadlessEnvironment &,
23                 const World::Config &,
24                 const WorldSave &,
25                 const Server::Config &
26         );
27
28         void Handle(const SDL_Event &) override;
29         void Update(int dt) override;
30         void Render(Viewport &) override;
31
32 private:
33         HeadlessEnvironment &env;
34         BlockTypeRegistry block_types;
35         World world;
36         Skeletons skeletons;
37         Spawner spawner;
38         Server server;
39         IntervalTimer push_timer;
40
41 };
42
43 }
44
45 #endif