X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;ds=sidebyside;f=src%2Fstandalone%2FMasterState.hpp;h=680bb5e620cbaa15a9a3f6414f02ecf0c767263c;hb=ba55bf4293f3abc742eef710545a4b207ba2c820;hp=ca5cab29879ebdaf6c9a7cd73ec895736213666a;hpb=e1209ec25c4cc91e13889876106f56bd51aa96e2;p=blank.git diff --git a/src/standalone/MasterState.hpp b/src/standalone/MasterState.hpp index ca5cab2..680bb5e 100644 --- a/src/standalone/MasterState.hpp +++ b/src/standalone/MasterState.hpp @@ -2,39 +2,50 @@ #define BLANK_STANDALONE_MASTERSTATE_HPP_ #include "../app/State.hpp" +#include "../ui/ClientController.hpp" #include "PreloadState.hpp" #include "UnloadState.hpp" #include "../ai/Spawner.hpp" #include "../graphics/SkyBox.hpp" +#include "../model/ShapeRegistry.hpp" #include "../model/Skeletons.hpp" +#include "../ui/DirectInput.hpp" +#include "../ui/HUD.hpp" +#include "../ui/InteractiveManipulator.hpp" #include "../ui/Interface.hpp" #include "../world/BlockTypeRegistry.hpp" +#include "../world/ChunkIndex.hpp" #include "../world/ChunkLoader.hpp" #include "../world/ChunkRenderer.hpp" #include "../world/Generator.hpp" +#include "../world/Player.hpp" #include "../world/World.hpp" namespace blank { +class Config; class Environment; namespace standalone { class MasterState -: public State { +: public State +, public ClientController { public: MasterState( Environment &, + Config &, const Generator::Config &, - const Interface::Config &, const World::Config &, const WorldSave & ); + ~MasterState(); - void OnEnter() override; + void OnResume() override; + void OnPause() override; void Handle(const SDL_Event &) override; void Update(int dt) override; @@ -43,10 +54,25 @@ public: World &GetWorld() noexcept { return world; } Interface &GetInterface() noexcept { return interface; } + void SetAudio(bool) override; + void SetVideo(bool) override; + void SetHUD(bool) override; + void SetDebug(bool) override; + void Exit() override; + private: + Config &config; Environment &env; + ShapeRegistry shapes; BlockTypeRegistry block_types; + const WorldSave &save; World world; + ChunkIndex &spawn_index; + Player &player; + bool spawn_player; + HUD hud; + InteractiveManipulator manip; + DirectInput input; Interface interface; Generator generator; ChunkLoader chunk_loader;