#include "StateControl.hpp"
#include "../audio/Audio.hpp"
#include "../graphics/Viewport.hpp"
+#include "../ui/Keymap.hpp"
+
+#include <string>
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 &);
};