]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/script/cpp_api/s_async.cpp
Expose getPointedThing to Lua
[dragonfireclient.git] / src / script / cpp_api / s_async.cpp
index 080ae887c3089fd87dfcf5fe79a0aa550fca76e6..5cca5fc03778f2b27bc050cb43d8cd51375946d8 100644 (file)
@@ -33,13 +33,6 @@ extern "C" {
 #include "porting.h"
 #include "common/c_internal.h"
 
-/******************************************************************************/
-AsyncEngine::AsyncEngine() :
-       initDone(false),
-       jobIdCounter(0)
-{
-}
-
 /******************************************************************************/
 AsyncEngine::~AsyncEngine()
 {
@@ -76,14 +69,9 @@ AsyncEngine::~AsyncEngine()
 }
 
 /******************************************************************************/
-bool AsyncEngine::registerFunction(const char* name, lua_CFunction func)
+void AsyncEngine::registerStateInitializer(StateInitializer func)
 {
-       if (initDone) {
-               return false;
-       }
-
-       functionList[name] = func;
-       return true;
+       stateInitializers.push_back(func);
 }
 
 /******************************************************************************/
@@ -204,11 +192,9 @@ void AsyncEngine::pushFinishedJobs(lua_State* L) {
 /******************************************************************************/
 void AsyncEngine::prepareEnvironment(lua_State* L, int top)
 {
-       for (UNORDERED_MAP<std::string, lua_CFunction>::iterator it = functionList.begin();
-                       it != functionList.end(); ++it) {
-               lua_pushstring(L, it->first.c_str());
-               lua_pushcfunction(L, it->second);
-               lua_settable(L, top);
+       for (std::vector<StateInitializer>::iterator it = stateInitializers.begin();
+                       it != stateInitializers.end(); it++) {
+               (*it)(L, top);
        }
 }