1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Add ModMetadata API (#5131)

* mod can create a ModMetadata object where store its values and retrieve it.
* Modmetadata object can only be fetched at mod loading
* Save when modified using same time as map interval or at server stop
* add helper function to get mod storage path
* ModMetadata has exactly same calls than all every other Metadata
This commit is contained in:
Loïc Blot 2017-02-08 00:15:55 +01:00 committed by GitHub
parent 0680c47d6c
commit ef6feca501
12 changed files with 384 additions and 12 deletions

View file

@ -76,13 +76,27 @@ const std::string &Metadata::getString(const std::string &name,
return resolveString(it->second, recursion);
}
void Metadata::setString(const std::string &name, const std::string &var)
/**
* Sets var to name key in the metadata storage
*
* @param name
* @param var
* @return true if key-value pair is created or changed
*/
bool Metadata::setString(const std::string &name, const std::string &var)
{
if (var.empty()) {
m_stringvars.erase(name);
} else {
m_stringvars[name] = var;
return true;
}
StringMap::iterator it = m_stringvars.find(name);
if (it != m_stringvars.end() && it->second == var) {
return false;
}
m_stringvars[name] = var;
return true;
}
const std::string &Metadata::resolveString(const std::string &str,