mirror of
https://github.com/luanti-org/luanti.git
synced 2025-07-27 17:28:41 +00:00
Add texture pack selection to main menu
This commit is contained in:
parent
fe1fe1b1e4
commit
383153419b
10 changed files with 125 additions and 17 deletions
|
@ -3482,6 +3482,7 @@ void the_game(
|
|||
infostream << "\t\t" << i << ":" << texture->getName().getPath().c_str()
|
||||
<< std::endl;
|
||||
}
|
||||
clearTextureNameCache();
|
||||
infostream << "\tRemaining materials: "
|
||||
<< driver-> getMaterialRendererCount ()
|
||||
<< " (note: irrlicht doesn't support removing renderers)"<< std::endl;
|
||||
|
|
|
@ -82,6 +82,7 @@ void guiLuaApi::initialize(lua_State* L,GUIEngine* engine)
|
|||
retval &= API_FCT(set_topleft_text);
|
||||
retval &= API_FCT(get_modpath);
|
||||
retval &= API_FCT(get_gamepath);
|
||||
retval &= API_FCT(get_texturepath);
|
||||
retval &= API_FCT(get_dirlist);
|
||||
retval &= API_FCT(create_dir);
|
||||
retval &= API_FCT(delete_dir);
|
||||
|
@ -829,6 +830,15 @@ int guiLuaApi::l_get_gamepath(lua_State *L)
|
|||
return 1;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
int guiLuaApi::l_get_texturepath(lua_State *L)
|
||||
{
|
||||
std::string gamepath
|
||||
= fs::RemoveRelativePathComponents(porting::path_user + DIR_DELIM + "textures");
|
||||
lua_pushstring(L, gamepath.c_str());
|
||||
return 1;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
int guiLuaApi::l_get_dirlist(lua_State *L) {
|
||||
const char *path = luaL_checkstring(L, 1);
|
||||
|
|
|
@ -164,6 +164,8 @@ private:
|
|||
static int l_get_modpath(lua_State *L);
|
||||
|
||||
static int l_get_gamepath(lua_State *L);
|
||||
|
||||
static int l_get_texturepath(lua_State *L);
|
||||
|
||||
static int l_get_dirlist(lua_State *L);
|
||||
|
||||
|
|
|
@ -4273,8 +4273,7 @@ void Server::fillMediaCache()
|
|||
paths.push_back(mod.path + DIR_DELIM + "media");
|
||||
paths.push_back(mod.path + DIR_DELIM + "models");
|
||||
}
|
||||
std::string path_all = "textures";
|
||||
paths.push_back(path_all + DIR_DELIM + "all");
|
||||
paths.push_back(porting::path_user + DIR_DELIM + "textures" + DIR_DELIM + "server");
|
||||
|
||||
// Collect media file information from paths into cache
|
||||
for(std::list<std::string>::iterator i = paths.begin();
|
||||
|
|
17
src/tile.cpp
17
src/tile.cpp
|
@ -131,18 +131,6 @@ std::string getTexturePath(const std::string &filename)
|
|||
// Check all filename extensions. Returns "" if not found.
|
||||
fullpath = getImagePath(testpath);
|
||||
}
|
||||
|
||||
/*
|
||||
Check from $user/textures/all
|
||||
*/
|
||||
if(fullpath == "")
|
||||
{
|
||||
std::string texture_path = porting::path_user + DIR_DELIM
|
||||
+ "textures" + DIR_DELIM + "all";
|
||||
std::string testpath = texture_path + DIR_DELIM + filename;
|
||||
// Check all filename extensions. Returns "" if not found.
|
||||
fullpath = getImagePath(testpath);
|
||||
}
|
||||
|
||||
/*
|
||||
Check from default data directory
|
||||
|
@ -163,6 +151,11 @@ std::string getTexturePath(const std::string &filename)
|
|||
return fullpath;
|
||||
}
|
||||
|
||||
void clearTextureNameCache()
|
||||
{
|
||||
g_texturename_to_path_cache.clear();
|
||||
}
|
||||
|
||||
/*
|
||||
Stores internal information about a texture.
|
||||
*/
|
||||
|
|
|
@ -57,6 +57,8 @@ std::string getImagePath(std::string path);
|
|||
*/
|
||||
std::string getTexturePath(const std::string &filename);
|
||||
|
||||
void clearTextureNameCache();
|
||||
|
||||
/*
|
||||
ITextureSource::generateTextureFromMesh parameters
|
||||
*/
|
||||
|
|
|
@ -118,6 +118,11 @@ public:
|
|||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
void clear ()
|
||||
{
|
||||
m_values.clear();
|
||||
}
|
||||
|
||||
private:
|
||||
std::map<Key, Value> m_values;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue