| 520 | */ |
| 521 | template<typename... aT> |
| 522 | bool CallLuaModuleFunction( |
| 523 | color_ostream &out, const char* module_name, const char* fn_name, std::tuple<aT...>&& args = {}, |
| 524 | size_t nres = 0, Lua::LuaLambda && res_lambda = Lua::DEFAULT_LUA_LAMBDA) |
| 525 | { |
| 526 | auto L = DFHack::Core::getInstance().getLuaState(); |
| 527 | bool ok; |
| 528 | |
| 529 | ok = Lua::CallLuaModuleFunction(out, L, module_name, fn_name, sizeof...(aT), nres, |
| 530 | [&args](lua_State *L) { |
| 531 | std::apply([&L](auto&&... param){ ((Lua::Push(L, param)), ...); }, args); |
| 532 | }, |
| 533 | std::forward<Lua::LuaLambda&&>(res_lambda)); |
| 534 | return ok; |
| 535 | } |
| 536 | |
| 537 | template<typename aT> |
| 538 | bool CallLuaModuleFunction( |