]> git.localhorst.tv Git - blank.git/blob - src/client/InteractiveState.hpp
send entity visual from server to client
[blank.git] / src / client / InteractiveState.hpp
1 #ifndef BLANK_CLIENT_INTERACTIVESTATE_HPP_
2 #define BLANK_CLIENT_INTERACTIVESTATE_HPP_
3
4 #include "../app/State.hpp"
5 #include "../io/WorldSave.hpp"
6 #include "../model/Skeletons.hpp"
7 #include "../ui/Interface.hpp"
8 #include "../world/BlockTypeRegistry.hpp"
9 #include "../world/ChunkRenderer.hpp"
10 #include "../world/World.hpp"
11
12
13 namespace blank {
14
15 class Environment;
16
17 namespace client {
18
19 class MasterState;
20
21 class InteractiveState
22 : public State {
23
24 public:
25         explicit InteractiveState(MasterState &, std::uint32_t player_id);
26
27         World &GetWorld() noexcept { return world; }
28         Interface &GetInterface() noexcept { return interface; }
29         Skeletons &GetSkeletons() noexcept { return skeletons; }
30
31         void OnEnter() override;
32
33         void Handle(const SDL_Event &) override;
34         void Update(int dt) override;
35         void Render(Viewport &) override;
36
37 private:
38         MasterState &master;
39         BlockTypeRegistry block_types;
40         WorldSave save;
41         World world;
42         Interface interface;
43         ChunkRenderer chunk_renderer;
44         Skeletons skeletons;
45
46 };
47
48 }
49 }
50
51 #endif