mirror of
https://github.com/luanti-org/luanti.git
synced 2025-09-05 18:41:05 +00:00
Use a settings object for the main settings
This unifies the settings APIs. This also unifies the sync and async registration APIs, since the async registration API did not support adding non-functions to the API table.
This commit is contained in:
parent
a024042bf5
commit
43d1f375d1
46 changed files with 411 additions and 417 deletions
|
@ -76,14 +76,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 +199,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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue