]> git.lizzy.rs Git - minetest.git/commitdiff
game.conf: Add setting to use volatile a map backend (#12956)
authorSmallJoker <SmallJoker@users.noreply.github.com>
Tue, 15 Nov 2022 15:45:48 +0000 (16:45 +0100)
committerGitHub <noreply@github.com>
Tue, 15 Nov 2022 15:45:48 +0000 (16:45 +0100)
doc/lua_api.txt
src/content/subgames.cpp

index 26d105db0a38b95e85533a2b27d1bf3210a8abb3..3ac530dd41a075e62e09716b292e95dd933c8f61 100644 (file)
@@ -85,6 +85,8 @@ The game directory can contain the following files:
       (this does not work for `enable_server`).
       Only these settings are supported:
           `enable_damage`, `creative_mode`, `enable_server`.
+    * `map_persistent`: Specifies whether newly created worlds should use
+      a persistent map backend. Defaults to `true` (= "sqlite3")
     * `author`: The author of the game. It only appears when downloaded from
                 ContentDB.
     * `release`: Ignore this: Should only ever be set by ContentDB, as it is
index 3658fa83efd23b892b8233dc1523ae6de14c0d6d..c50c6f429c878445400110d0310b0fa02179ed1d 100644 (file)
@@ -380,11 +380,21 @@ void loadGameConfAndInitWorld(const std::string &path, const std::string &name,
        // Create world.mt if does not already exist
        std::string worldmt_path = final_path + DIR_DELIM "world.mt";
        if (!fs::PathExists(worldmt_path)) {
-               Settings conf;
+               Settings gameconf;
+               std::string gameconf_path = gamespec.path + DIR_DELIM "game.conf";
+               gameconf.readConfigFile(gameconf_path.c_str());
+
+               Settings conf; // for world.mt
 
                conf.set("world_name", name);
                conf.set("gameid", gamespec.id);
-               conf.set("backend", "sqlite3");
+
+               std::string backend = "sqlite3";
+               if (gameconf.exists("map_persistent") && !gameconf.getBool("map_persistent")) {
+                       backend = "dummy";
+               }
+               conf.set("backend", backend);
+
                conf.set("player_backend", "sqlite3");
                conf.set("auth_backend", "sqlite3");
                conf.set("mod_storage_backend", "sqlite3");