]> git.localhorst.tv Git - blank.git/blobdiff - src/app/Environment.hpp
group entity updates in as few packets as possible
[blank.git] / src / app / Environment.hpp
index b9dcc2900f97760f92e6948a7434619252756330..97f4a7ec54434e839dfaba76c66095a80bb17cf7 100644 (file)
@@ -6,6 +6,7 @@
 #include "StateControl.hpp"
 #include "../audio/Audio.hpp"
 #include "../graphics/Viewport.hpp"
+#include "../ui/Keymap.hpp"
 
 #include <string>
 
@@ -14,19 +15,46 @@ 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, const std::string &asset_path);
+       explicit HeadlessEnvironment(const Config &);
+
+};
+
+
+struct Environment
+: public HeadlessEnvironment {
+
+       Assets assets;
+
+       Audio audio;
+       Viewport viewport;
+       Window &window;
+
+       Keymap keymap;
+
+
+       Environment(Window &win, const Config &);
 
 };