Пример #1
0
        /*
         * Gets an object from the Lua stack according to its Lua type.
         */
        internal object GetObject(LuaState luaState, int index)
        {
            var type = LuaLib.LuaType(luaState, index);

            switch (type)
            {
            case LuaTypes.Number:
            {
                return(LuaLib.LuaToNumber(luaState, index));
            }

            case LuaTypes.String:
            {
                return(LuaLib.LuaToString(luaState, index));
            }

            case LuaTypes.Boolean:
            {
                return(LuaLib.LuaToBoolean(luaState, index));
            }

            case LuaTypes.Table:
            {
                return(GetTable(luaState, index));
            }

            case LuaTypes.Function:
            {
                return(GetFunction(luaState, index));
            }

            case LuaTypes.UserData:
            {
                int udata = LuaLib.LuaNetToNetObject(luaState, index);
                return(udata != -1 ? objects [udata] : GetUserData(luaState, index));
            }

            default:
                return(null);
            }
        }
Пример #2
0
        /*
         * Gets the CLR object in the index positon of the Lua stack. Returns
         * delegates as Lua functions.
         */
        internal object GetNetObject(LuaState luaState, int index)
        {
            int idx = LuaLib.LuaNetToNetObject(luaState, index);

            return(idx != -1 ? objects [idx] : null);
        }