X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fapp%2FEnvironment.hpp;h=f3aa4b5fe92ae3599bafb400aa9a593d9f292b65;hb=78dcbeb7a905c4c153cb1b20e23f5adc1efc6d7e;hp=4c935d815e2f4a13483452e791a203dcfce31db7;hpb=82ec71079e4763f2b2d66c0c210e37df40c89034;p=blank.git diff --git a/src/app/Environment.hpp b/src/app/Environment.hpp index 4c935d8..f3aa4b5 100644 --- a/src/app/Environment.hpp +++ b/src/app/Environment.hpp @@ -3,6 +3,7 @@ #include "Assets.hpp" #include "FrameCounter.hpp" +#include "MessageState.hpp" #include "StateControl.hpp" #include "../audio/Audio.hpp" #include "../graphics/Viewport.hpp" @@ -15,20 +16,50 @@ namespace blank { class Window; -struct Environment { +struct HeadlessEnvironment { + + struct Config { + std::string asset_path; + std::string save_path; + + std::string GetWorldPath( + const std::string &world_name + ) const; + std::string GetWorldPath( + const std::string &world_name, + const std::string &hostname + ) const; + } config; + + AssetLoader loader; + + FrameCounter counter; + + StateControl state; + + + explicit HeadlessEnvironment(const Config &); + +}; + + +struct Environment +: public HeadlessEnvironment { + + Assets assets; Audio audio; Viewport viewport; Window &window; - Assets assets; Keymap keymap; - FrameCounter counter; - StateControl state; + MessageState msg_state; + + Environment(Window &win, const Config &); - explicit Environment(Window &win, const std::string &asset_path); + void ShowMessage(const char *); };