#include "../app/State.hpp"
#include "../ui/ClientController.hpp"
+#include "DirectCLIFeedback.hpp"
#include "PreloadState.hpp"
#include "UnloadState.hpp"
#include "../ai/Spawner.hpp"
+#include "../audio/SoundBank.hpp"
#include "../graphics/SkyBox.hpp"
-#include "../model/Skeletons.hpp"
+#include "../shared/ChatState.hpp"
+#include "../shared/CLI.hpp"
+#include "../shared/WorldResources.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"
class MasterState
: public State
-, public ClientController {
+, public ClientController
+, public ChatState::Responder {
public:
MasterState(
void OnResume() override;
void OnPause() override;
+ void OnFocus() override;
+ void OnBlur() override;
+
void Handle(const SDL_Event &) override;
void Update(int dt) override;
void Render(Viewport &) override;
void SetVideo(bool) override;
void SetHUD(bool) override;
void SetDebug(bool) override;
+ void NextCamera() override;
void Exit() override;
+ void OnLineSubmit(const std::string &) override;
+
private:
Config &config;
Environment &env;
- BlockTypeRegistry block_types;
+ WorldResources res;
+ SoundBank sounds;
const WorldSave &save;
World world;
ChunkIndex &spawn_index;
Generator generator;
ChunkLoader chunk_loader;
ChunkRenderer chunk_renderer;
- Skeletons skeletons;
Spawner spawner;
SkyBox sky;
+ CLI cli;
+ DirectCLIFeedback cli_ctx;
+
PreloadState preload;
UnloadState unload;
+ ChatState chat;
};