예제 #1
0
        public static object ToVarObject(IntPtr L, int stackPos)
        {
            switch (LuaDLL.lua_type(L, stackPos))
            {
            case LuaTypes.LUA_TNIL:
                return(null);

            case LuaTypes.LUA_TBOOLEAN:
                return(LuaDLL.lua_toboolean(L, stackPos));

            case LuaTypes.LUA_TLIGHTUSERDATA:
                return(LuaDLL.lua_touserdata(L, stackPos));

            case LuaTypes.LUA_TNUMBER:
                return(LuaDLL.lua_tonumber(L, stackPos));

            case LuaTypes.LUA_TSTRING:
                return(LuaDLL.lua_tostring(L, stackPos));

            case LuaTypes.LUA_TTABLE:
                return(ToLua.ToVarTable(L, stackPos));

            case LuaTypes.LUA_TFUNCTION:
                return(ToLua.ToLuaFunction(L, stackPos));

            case LuaTypes.LUA_TUSERDATA:
                return(ToLua.ToObject(L, stackPos));

            case LuaTypes.LUA_TTHREAD:
                return(ToLua.ToLuaThread(L, stackPos));

            default:
                return(null);
            }
        }
예제 #2
0
        public static LuaThread CheckLuaThread(IntPtr L, int stackPos)
        {
            LuaTypes luaTypes = LuaDLL.lua_type(L, stackPos);

            if (luaTypes == LuaTypes.LUA_TNIL)
            {
                return(null);
            }
            if (luaTypes != LuaTypes.LUA_TTHREAD)
            {
                LuaDLL.luaL_typerror(L, stackPos, "thread", null);
                return(null);
            }
            return(ToLua.ToLuaThread(L, stackPos));
        }