X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fapp%2FEnvironment.hpp;h=97f4a7ec54434e839dfaba76c66095a80bb17cf7;hb=d4c71969df4f6b5e6b750c98268d30ca6784908b;hp=b465bfb48f19c88e7e157e68b3f5c9f2e10ca66d;hpb=afd253b2dd10fdf2d4655d3d4a5766e6aa8c1a2c;p=blank.git diff --git a/src/app/Environment.hpp b/src/app/Environment.hpp index b465bfb..97f4a7e 100644 --- a/src/app/Environment.hpp +++ b/src/app/Environment.hpp @@ -6,25 +6,55 @@ #include "StateControl.hpp" #include "../audio/Audio.hpp" #include "../graphics/Viewport.hpp" +#include "../ui/Keymap.hpp" + +#include namespace blank { class Window; -struct Environment { +struct HeadlessEnvironment { - Audio audio; - Viewport viewport; - Window &window; + 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; - Assets assets; FrameCounter counter; StateControl state; - explicit Environment(Window &win); + explicit HeadlessEnvironment(const Config &); + +}; + + +struct Environment +: public HeadlessEnvironment { + + Assets assets; + + Audio audio; + Viewport viewport; + Window &window; + + Keymap keymap; + + + Environment(Window &win, const Config &); };