diff --git a/src/engine.cpp b/src/engine.cpp index 9d2c455f..b7396ff3 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -66,6 +66,7 @@ Engine::Engine(EngineSettings& settings, SettingsHandler& settingsHandler, Engin : settings(settings), settingsHandler(settingsHandler), paths(paths), interpreter(std::make_unique()) { + paths->prepare(); loadSettings(); controller = std::make_unique(this); diff --git a/src/files/engine_paths.cpp b/src/files/engine_paths.cpp index d99bb51b..c08d6bd2 100644 --- a/src/files/engine_paths.cpp +++ b/src/files/engine_paths.cpp @@ -11,9 +11,17 @@ #include "WorldFiles.hpp" const fs::path SCREENSHOTS_FOLDER {"screenshots"}; +const fs::path CONTENT_FOLDER {"content"}; const fs::path CONTROLS_FILE {"controls.toml"}; const fs::path SETTINGS_FILE {"settings.toml"}; +void EnginePaths::prepare() { + fs::path contentFolder = userfiles/fs::path(CONTENT_FOLDER); + if (!fs::is_directory(contentFolder)) { + fs::create_directories(contentFolder); + } +} + fs::path EnginePaths::getUserfiles() const { return userfiles; } diff --git a/src/files/engine_paths.hpp b/src/files/engine_paths.hpp index eb1fba3b..025835ac 100644 --- a/src/files/engine_paths.hpp +++ b/src/files/engine_paths.hpp @@ -21,6 +21,8 @@ class EnginePaths { fs::path worldFolder; std::vector* contentPacks = nullptr; public: + void prepare(); + fs::path getUserfiles() const; fs::path getResources() const;