Fix mod paths
parent
db4911f956
commit
50621ffe85
|
@ -885,25 +885,13 @@ Server::Server(
|
||||||
infostream<<"- world: "<<m_path_world<<std::endl;
|
infostream<<"- world: "<<m_path_world<<std::endl;
|
||||||
infostream<<"- config: "<<m_path_config<<std::endl;
|
infostream<<"- config: "<<m_path_config<<std::endl;
|
||||||
infostream<<"- game: "<<m_gamespec.path<<std::endl;
|
infostream<<"- game: "<<m_gamespec.path<<std::endl;
|
||||||
for(std::set<std::string>::const_iterator i = m_gamespec.addon_paths.begin();
|
|
||||||
i != m_gamespec.addon_paths.end(); i++)
|
|
||||||
infostream<<"- addons: "<<(*i)<<std::endl;
|
|
||||||
|
|
||||||
// Path to builtin.lua
|
|
||||||
std::string builtinpath = porting::path_share + DIR_DELIM + "builtin"
|
|
||||||
+ DIR_DELIM + "builtin.lua";
|
|
||||||
|
|
||||||
// Add default global mod search path
|
|
||||||
m_modspaths.push_front(m_gamespec.path + DIR_DELIM "mods");
|
|
||||||
// Add world mod search path
|
// Add world mod search path
|
||||||
m_modspaths.push_front(m_path_world + DIR_DELIM + "worldmods");
|
m_modspaths.push_front(m_path_world + DIR_DELIM + "worldmods");
|
||||||
// Add addon mod search path
|
// Add addon mod search path
|
||||||
for(std::set<std::string>::const_iterator i = m_gamespec.addon_paths.begin();
|
for(std::set<std::string>::const_iterator i = m_gamespec.mods_paths.begin();
|
||||||
i != m_gamespec.addon_paths.end(); i++)
|
i != m_gamespec.mods_paths.end(); i++)
|
||||||
m_modspaths.push_front((*i) + DIR_DELIM + "mods");
|
m_modspaths.push_front((*i));
|
||||||
// Add simple user mod search path
|
|
||||||
m_modspaths.push_front(porting::path_user + DIR_DELIM + "mods"
|
|
||||||
+ DIR_DELIM + m_gamespec.id);
|
|
||||||
|
|
||||||
// Print out mod search paths
|
// Print out mod search paths
|
||||||
for(core::list<std::string>::Iterator i = m_modspaths.begin();
|
for(core::list<std::string>::Iterator i = m_modspaths.begin();
|
||||||
|
@ -912,6 +900,10 @@ Server::Server(
|
||||||
infostream<<"- mods: "<<modspath<<std::endl;
|
infostream<<"- mods: "<<modspath<<std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path to builtin.lua
|
||||||
|
std::string builtinpath = porting::path_share + DIR_DELIM + "builtin"
|
||||||
|
+ DIR_DELIM + "builtin.lua";
|
||||||
|
|
||||||
// Create world if it doesn't exist
|
// Create world if it doesn't exist
|
||||||
if(!initializeWorld(m_path_world, m_gamespec.id))
|
if(!initializeWorld(m_path_world, m_gamespec.id))
|
||||||
throw ServerError("Failed to initialize world");
|
throw ServerError("Failed to initialize world");
|
||||||
|
|
|
@ -38,14 +38,16 @@ SubgameSpec findSubgame(const std::string &id)
|
||||||
}
|
}
|
||||||
if(!fs::PathExists(game_path))
|
if(!fs::PathExists(game_path))
|
||||||
return SubgameSpec();
|
return SubgameSpec();
|
||||||
// Find addon directories
|
// Find mod directories
|
||||||
std::set<std::string> addon_paths;
|
std::set<std::string> mods_paths;
|
||||||
|
mods_paths.insert(game_path + DIR_DELIM + "mods");
|
||||||
if(!user_game)
|
if(!user_game)
|
||||||
addon_paths.insert(share + DIR_DELIM + "addons" + DIR_DELIM + id);
|
mods_paths.insert(share + DIR_DELIM + "mods" + DIR_DELIM + id);
|
||||||
addon_paths.insert(user + DIR_DELIM + "addons" + DIR_DELIM + id);
|
if(user != share || user_game)
|
||||||
|
mods_paths.insert(user + DIR_DELIM + "mods" + DIR_DELIM + id);
|
||||||
// TODO: Read proper name from game_path/game.conf
|
// TODO: Read proper name from game_path/game.conf
|
||||||
std::string game_name = id;
|
std::string game_name = id;
|
||||||
return SubgameSpec(id, game_path, addon_paths, game_name);
|
return SubgameSpec(id, game_path, mods_paths, game_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::set<std::string> getAvailableGameIds()
|
std::set<std::string> getAvailableGameIds()
|
||||||
|
|
|
@ -28,16 +28,16 @@ struct SubgameSpec
|
||||||
{
|
{
|
||||||
std::string id; // "" = game does not exist
|
std::string id; // "" = game does not exist
|
||||||
std::string path;
|
std::string path;
|
||||||
std::set<std::string> addon_paths;
|
std::set<std::string> mods_paths;
|
||||||
std::string name;
|
std::string name;
|
||||||
|
|
||||||
SubgameSpec(const std::string &id_="",
|
SubgameSpec(const std::string &id_="",
|
||||||
const std::string &path_="",
|
const std::string &path_="",
|
||||||
const std::set<std::string> &addon_paths_=std::set<std::string>(),
|
const std::set<std::string> &mods_paths_=std::set<std::string>(),
|
||||||
const std::string &name_=""):
|
const std::string &name_=""):
|
||||||
id(id_),
|
id(id_),
|
||||||
path(path_),
|
path(path_),
|
||||||
addon_paths(addon_paths_),
|
mods_paths(mods_paths_),
|
||||||
name(name_)
|
name(name_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue