Skip to content
Snippets Groups Projects
Commit 50621ffe authored by Perttu Ahola's avatar Perttu Ahola
Browse files

Fix mod paths

parent db4911f9
No related branches found
No related tags found
No related merge requests found
...@@ -885,25 +885,13 @@ Server::Server( ...@@ -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( ...@@ -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) ...@@ -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 ...@@ -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_)
{} {}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment