1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-08-21 18:11:11 +00:00

Remove dependency on marshal and many other async changes

This makes a number of changes:
  * Remove the dependency on marshal by using string.dump and loadstring.
  * Use lua_tolstring rather than having Lua functions pass string lengths to C++.
  * Move lua_api/l_async_events.* to cpp_api/s_async.*, where it belongs.
  * Make AsyncWorkerThread a child of ScriptApiBase, this removes some duplicate functionality.
  * Don't wait for async threads to shut down.  (Is this safe?  Might result in corruption if the thread is writing to a file.)
  * Pop more unused items from the stack
  * Code style fixes
  * Other misc changes
This commit is contained in:
ShadowNinja 2014-04-15 13:41:07 -04:00
parent db4ea4658c
commit 6ab3b4c838
16 changed files with 571 additions and 1262 deletions

View file

@ -56,6 +56,9 @@ GameScripting::GameScripting(Server* server)
// Create the main minetest table
lua_newtable(L);
lua_setglobal(L, "minetest");
lua_getglobal(L, "minetest");
int top = lua_gettop(L);
lua_newtable(L);
lua_setfield(L, -2, "object_refs");
@ -63,15 +66,11 @@ GameScripting::GameScripting(Server* server)
lua_newtable(L);
lua_setfield(L, -2, "luaentities");
lua_setglobal(L, "minetest");
// Initialize our lua_api modules
lua_getglobal(L, "minetest");
int top = lua_gettop(L);
InitializeModApi(L, top);
lua_pop(L, 1);
infostream << "SCRIPTAPI: initialized game modules" << std::endl;
infostream << "SCRIPTAPI: Initialized game modules" << std::endl;
}
void GameScripting::InitializeModApi(lua_State *L, int top)