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

Add ModStorageAPI to client side modding (#5396)

mod storage is located into user_path / client / mod_storage
This commit is contained in:
Loïc Blot 2017-03-16 07:53:39 +01:00 committed by GitHub
parent 46276414ed
commit eb88e5dd4b
8 changed files with 68 additions and 11 deletions

View file

@ -33,10 +33,9 @@ int ModApiStorage::l_get_mod_storage(lua_State *L)
std::string mod_name = lua_tostring(L, -1);
ModMetadata *store = new ModMetadata(mod_name);
// For server side
if (Server *server = getServer(L)) {
store->load(server->getModStoragePath());
server->registerModStorage(store);
if (IGameDef *gamedef = getGameDef(L)) {
store->load(gamedef->getModStoragePath());
gamedef->registerModStorage(store);
} else {
assert(false); // this should not happen
}
@ -70,8 +69,8 @@ int StorageRef::gc_object(lua_State *L)
{
StorageRef *o = *(StorageRef **)(lua_touserdata(L, 1));
// Server side
if (Server *server = getServer(L))
server->unregisterModStorage(getobject(o)->getModName());
if (IGameDef *gamedef = getGameDef(L))
gamedef->unregisterModStorage(getobject(o)->getModName());
delete o;
return 0;
}