public object getAsObject(LuaCore.lua_State luaState, int stackPos) { if (LuaLib.lua_type(luaState, stackPos) == LuaTypes.Table) { if (LuaLib.luaL_getmetafield(luaState, stackPos, "__index")) { if (LuaLib.luaL_checkmetatable(luaState, -1)) { LuaLib.lua_insert(luaState, stackPos); LuaLib.lua_remove(luaState, stackPos + 1); } else { LuaLib.lua_settop(luaState, -2); } } } object obj = translator.getObject(luaState, stackPos); return(obj); }