public object getAsObject(IntPtr luaState, int stackPos) { if (LuaAPI.lua_type(luaState, stackPos) == LuaTypes.LUA_TTABLE) { if (LuaTypes.LUA_TNIL != LuaAPI.luaL_getmetafield(luaState, stackPos, "__index")) { if (LuaAPI.luaL_checkmetatable(luaState, -1)) { LuaAPI.lua_insert(luaState, stackPos); LuaAPI.lua_remove(luaState, stackPos + 1); } else { LuaAPI.lua_settop(luaState, -2); } } } object obj = translator.getObject(luaState, stackPos); return(obj); }