mirror of
https://github.com/minetest/minetest.git
synced 2024-11-23 16:13:46 +01:00
Load a texturepack from the 'textures' subfolder of a game
This commit is contained in:
parent
70a90bc83a
commit
4c0d4e4105
@ -47,47 +47,41 @@ Paths
|
|||||||
Games
|
Games
|
||||||
-----
|
-----
|
||||||
Games are looked up from:
|
Games are looked up from:
|
||||||
|
|
||||||
* `$path_share/games/gameid/`
|
* `$path_share/games/gameid/`
|
||||||
* `$path_user/games/gameid/`
|
* `$path_user/games/gameid/`
|
||||||
|
Where `gameid` is unique to each game.
|
||||||
|
|
||||||
where `gameid` is unique to each game.
|
The game directory can contain the following files:
|
||||||
|
* `game.conf`
|
||||||
The game directory contains the file `game.conf`, which contains:
|
Which contains:
|
||||||
|
* name = <Human-readable full name of the game>
|
||||||
name = <Human-readable full name of the game>
|
|
||||||
|
|
||||||
e.g.
|
e.g.
|
||||||
|
|
||||||
name = Minetest
|
name = Minetest
|
||||||
|
* Optionally, game.conf can also contain:
|
||||||
Optionally, game.conf can also contain:
|
|
||||||
|
|
||||||
disallowed_mapgens = <comma-separated mapgens>
|
disallowed_mapgens = <comma-separated mapgens>
|
||||||
|
|
||||||
e.g.
|
e.g.
|
||||||
|
|
||||||
disallowed_mapgens = v5,v6,flat
|
disallowed_mapgens = v5,v6,flat
|
||||||
|
|
||||||
These mapgens are removed from the list of mapgens for the game.
|
These mapgens are removed from the list of mapgens for the game.
|
||||||
|
* minetest.conf
|
||||||
The game directory can contain the file minetest.conf, which will be used
|
Used to set default settings when running this game.
|
||||||
to set default settings when running the particular game.
|
* settingtypes.txt
|
||||||
It can also contain a settingtypes.txt in the same format as the one in builtin.
|
In the same format as the one in builtin.
|
||||||
This settingtypes.txt will be parsed by the menu and the settings will be displayed
|
This settingtypes.txt will be parsed by the menu and the settings will be
|
||||||
in the "Games" category in the settings tab.
|
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
|
### Menu images
|
||||||
|
|
||||||
Games can provide custom main menu images. They are put inside a `menu` directory
|
Games can provide custom main menu images. They are put inside a `menu`
|
||||||
inside the game directory.
|
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.
|
|
||||||
|
|
||||||
|
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
|
Mod load path
|
||||||
-------------
|
-------------
|
||||||
|
@ -253,7 +253,10 @@ Server::Server(
|
|||||||
m_nodedef->updateAliases(m_itemdef);
|
m_nodedef->updateAliases(m_itemdef);
|
||||||
|
|
||||||
// Apply texture overrides from texturepack/override.txt
|
// 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->applyTextureOverrides(path + DIR_DELIM + "override.txt");
|
||||||
|
|
||||||
m_nodedef->setNodeRegistrationStatus(true);
|
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 + "models");
|
||||||
paths.push_back(mod.path + DIR_DELIM + "locale");
|
paths.push_back(mod.path + DIR_DELIM + "locale");
|
||||||
}
|
}
|
||||||
fs::GetRecursiveDirs(paths, porting::path_user + DIR_DELIM +
|
fs::GetRecursiveDirs(paths, m_gamespec.path + DIR_DELIM + "textures");
|
||||||
"textures" + DIR_DELIM + "server");
|
fs::GetRecursiveDirs(paths, porting::path_user + DIR_DELIM + "textures" + DIR_DELIM + "server");
|
||||||
|
|
||||||
// Collect media file information from paths into cache
|
// Collect media file information from paths into cache
|
||||||
for (const std::string &mediapath : paths) {
|
for (const std::string &mediapath : paths) {
|
||||||
std::vector<fs::DirListNode> dirlist = fs::GetDirListing(mediapath);
|
std::vector<fs::DirListNode> dirlist = fs::GetDirListing(mediapath);
|
||||||
|
Loading…
Reference in New Issue
Block a user