diff options
author | red-001 <red-001@outlook.ie> | 2017-06-23 01:51:57 +0100 |
---|---|---|
committer | paramat <mat.gregory@virginmedia.com> | 2018-01-16 08:45:17 +0000 |
commit | 4c0d4e4105d2f2e63b9a43bb83fecf92288f63b3 (patch) | |
tree | 36a586497c474ec35fd26fc58d48ba8397916b6f | |
parent | 70a90bc83a0b244a494627cfbc0305946bb1e593 (diff) | |
download | minetest-4c0d4e4105d2f2e63b9a43bb83fecf92288f63b3.tar.gz minetest-4c0d4e4105d2f2e63b9a43bb83fecf92288f63b3.tar.bz2 minetest-4c0d4e4105d2f2e63b9a43bb83fecf92288f63b3.zip |
Load a texturepack from the 'textures' subfolder of a game
-rw-r--r-- | doc/lua_api.txt | 68 | ||||
-rw-r--r-- | src/server.cpp | 10 |
2 files changed, 38 insertions, 40 deletions
diff --git a/doc/lua_api.txt b/doc/lua_api.txt index f588211b6..da4655682 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -47,47 +47,41 @@ Paths Games ----- Games are looked up from: - -* `$path_share/games/gameid/` -* `$path_user/games/gameid/` - -where `gameid` is unique to each game. - -The game directory contains the file `game.conf`, which contains: - - name = <Human-readable full name of the game> - -e.g. - - name = Minetest - -Optionally, game.conf can also contain: - - disallowed_mapgens = <comma-separated mapgens> - -e.g. - - disallowed_mapgens = v5,v6,flat - -These mapgens are removed from the list of mapgens for the game. - -The game directory can contain the file minetest.conf, which will be used -to set default settings when running the particular game. -It can also contain a settingtypes.txt in the same format as the one in builtin. -This settingtypes.txt will be parsed by the menu and the settings will be displayed -in the "Games" category in the settings tab. + * `$path_share/games/gameid/` + * `$path_user/games/gameid/` +Where `gameid` is unique to each game. + +The game directory can contain the following files: + * `game.conf` + Which contains: + * name = <Human-readable full name of the game> + e.g. + name = Minetest + * Optionally, game.conf can also contain: + disallowed_mapgens = <comma-separated mapgens> + e.g. + disallowed_mapgens = v5,v6,flat + These mapgens are removed from the list of mapgens for the game. + * minetest.conf + Used to set default settings when running this game. + * settingtypes.txt + In the same format as the one in builtin. + This settingtypes.txt will be parsed by the menu and the settings will be + displayed in the "Games" category in the advanced settings tab. + * If the subgame contains a folder called `textures` the server will load it + as a texturepack, overriding mod textures. + Any server texturepack will override mod textures and the game texturepack. ### Menu images -Games can provide custom main menu images. They are put inside a `menu` directory -inside the game directory. - -The images are named `$identifier.png`, where `$identifier` is -one of `overlay,background,footer,header`. -If you want to specify multiple images for one identifier, add additional images named -like `$identifier.$n.png`, with an ascending number $n starting with 1, and a random -image will be chosen from the provided ones. +Games can provide custom main menu images. They are put inside a `menu` +directory inside the game directory. +The images are named `$identifier.png`, where `$identifier` is one of +`overlay`, `background`, `footer`, `header`. +If you want to specify multiple images for one identifier, add additional +images named like `$identifier.$n.png`, with an ascending number $n starting +with 1, and a random image will be chosen from the provided ones. Mod load path ------------- diff --git a/src/server.cpp b/src/server.cpp index 26b3bb4b1..d011089c3 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -253,7 +253,10 @@ Server::Server( m_nodedef->updateAliases(m_itemdef); // Apply texture overrides from texturepack/override.txt - for (const auto &path : fs::GetRecursiveDirs(g_settings->get("texture_path"))) + std::vector<std::string> paths; + fs::GetRecursiveDirs(paths, g_settings->get("texture_path")); + fs::GetRecursiveDirs(paths, m_gamespec.path + DIR_DELIM + "textures"); + for (const std::string &path : paths) m_nodedef->applyTextureOverrides(path + DIR_DELIM + "override.txt"); m_nodedef->setNodeRegistrationStatus(true); @@ -2259,8 +2262,9 @@ void Server::fillMediaCache() paths.push_back(mod.path + DIR_DELIM + "models"); paths.push_back(mod.path + DIR_DELIM + "locale"); } - fs::GetRecursiveDirs(paths, porting::path_user + DIR_DELIM + - "textures" + DIR_DELIM + "server"); + fs::GetRecursiveDirs(paths, m_gamespec.path + DIR_DELIM + "textures"); + fs::GetRecursiveDirs(paths, porting::path_user + DIR_DELIM + "textures" + DIR_DELIM + "server"); + // Collect media file information from paths into cache for (const std::string &mediapath : paths) { std::vector<fs::DirListNode> dirlist = fs::GetDirListing(mediapath); |