コード例 #1
0
 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));
 }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }