This is probably not what you expect, but…
You can do this in render script:
if shared_state_module.some_go_context then -- context == self
local current = _G[3700146495]
_G[3700146495] = shared_state_module.some_go_context
local result = go.get_world_transform()
_G[3700146495] = current
print(result)
end
or make extension:
static
int execute_in_context(lua_State *L) {
dmScript::GetInstance(L);
int self = dmScript::Ref(L, LUA_REGISTRYINDEX);
lua_pushvalue(L, 2);
dmScript::SetInstance(L);
lua_call(L, lua_gettop(L) - 1, LUA_MULTRET);
int results_count = lua_gettop(L);
lua_rawgeti(L, LUA_REGISTRYINDEX, self);
dmScript::SetInstance(L);
dmScript::Unref(L, LUA_REGISTRYINDEX, self);
return results_count;
}
what used like this:
extension.execute_in_context(run_what, in_which_context, param1, param2, etc...))