public object getAsObject(IntPtr luaState, int stackPos) { if (LuaDLL.lua_type(luaState, stackPos) == LuaTypes.LUA_TTABLE && LuaDLL.luaL_getmetafield(luaState, stackPos, "__index") != LuaTypes.LUA_TNIL) { if (LuaDLL.luaL_checkmetatable(luaState, -1)) { LuaDLL.lua_insert(luaState, stackPos); LuaDLL.lua_remove(luaState, stackPos + 1); } else { LuaDLL.lua_settop(luaState, -2); } } return(this.translator.getObject(luaState, stackPos)); }
public object getAsObject(KopiLua.Lua.lua_State luaState, int stackPos) { if (LuaDLL.lua_type(luaState, stackPos) == LuaTypes.LUA_TTABLE) { if (LuaDLL.luaL_getmetafield(luaState, stackPos, "__index")) { if (LuaDLL.luaL_checkmetatable(luaState, -1)) { LuaDLL.lua_insert(luaState, stackPos); LuaDLL.lua_remove(luaState, stackPos + 1); } else { LuaDLL.lua_settop(luaState, -2); } } } object obj = translator.getObject(luaState, stackPos); return(obj); }
public object getAsNetObject(IntPtr luaState, int stackPos) { object obj = translator.getNetObject(luaState, stackPos); if (obj == null && LuaDLL.lua_type(luaState, stackPos) == LuaTypes.LUA_TTABLE) { if (LuaDLL.luaL_getmetafield(luaState, stackPos, "__index")) { if (LuaDLL.luaL_checkmetatable(luaState, -1)) { LuaDLL.lua_insert(luaState, stackPos); LuaDLL.lua_remove(luaState, stackPos + 1); obj = translator.getNetObject(luaState, stackPos); } else { LuaDLL.lua_settop(luaState, -2); } } } return(obj); }