Esempio n. 1
0
        private bool TryGetObject(ScriptState luaState, object o, out int index)
        {
            bool found = _mappings.TryGetValue(o, out index);

            if (found)
            {
                LuaCore.GetMetatable(luaState, DotNetObjectsMetatable.GlobalName);
                LuaCore.RawGetIndex(luaState, -1, index);
                var type = LuaCore.GetType(luaState, -1);
                if (type != ScriptTypes.Nil)
                {
                    LuaCore.RemoveValue(luaState, -2);
                    return(true);
                }
                LuaCore.RemoveValue(luaState, -1);
                LuaCore.RemoveValue(luaState, -1);
                Remove(luaState, index);
            }
            return(false);
        }