static int get_LoadAssetUpdateCallback(IntPtr L)
    {
        object o = null;

        try
        {
            o = ToLua.ToObject(L, 1);
            GameFramework.Resource.LoadAssetCallbacks      obj = (GameFramework.Resource.LoadAssetCallbacks)o;
            GameFramework.Resource.LoadAssetUpdateCallback ret = obj.LoadAssetUpdateCallback;
            ToLua.Push(L, ret);
            return(1);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e, o == null ? "attempt to index LoadAssetUpdateCallback on a nil value" : e.Message));
        }
    }
    static int _CreateGameFramework_Resource_LoadAssetCallbacks(IntPtr L)
    {
        try
        {
            int count = LuaDLL.lua_gettop(L);

            if (count == 1)
            {
                GameFramework.Resource.LoadAssetSuccessCallback arg0 = null;
                LuaTypes funcType1 = LuaDLL.lua_type(L, 1);

                if (funcType1 != LuaTypes.LUA_TFUNCTION)
                {
                    arg0 = (GameFramework.Resource.LoadAssetSuccessCallback)ToLua.CheckObject(L, 1, typeof(GameFramework.Resource.LoadAssetSuccessCallback));
                }
                else
                {
                    LuaFunction func = ToLua.ToLuaFunction(L, 1);
                    arg0 = DelegateFactory.CreateDelegate(typeof(GameFramework.Resource.LoadAssetSuccessCallback), func) as GameFramework.Resource.LoadAssetSuccessCallback;
                }

                GameFramework.Resource.LoadAssetCallbacks obj = new GameFramework.Resource.LoadAssetCallbacks(arg0);
                ToLua.PushObject(L, obj);
                return(1);
            }
            else if (count == 2 && TypeChecker.CheckTypes(L, 1, typeof(GameFramework.Resource.LoadAssetSuccessCallback), typeof(GameFramework.Resource.LoadAssetDependencyAssetCallback)))
            {
                GameFramework.Resource.LoadAssetSuccessCallback arg0 = null;
                LuaTypes funcType1 = LuaDLL.lua_type(L, 1);

                if (funcType1 != LuaTypes.LUA_TFUNCTION)
                {
                    arg0 = (GameFramework.Resource.LoadAssetSuccessCallback)ToLua.CheckObject(L, 1, typeof(GameFramework.Resource.LoadAssetSuccessCallback));
                }
                else
                {
                    LuaFunction func = ToLua.ToLuaFunction(L, 1);
                    arg0 = DelegateFactory.CreateDelegate(typeof(GameFramework.Resource.LoadAssetSuccessCallback), func) as GameFramework.Resource.LoadAssetSuccessCallback;
                }

                GameFramework.Resource.LoadAssetDependencyAssetCallback arg1 = null;
                LuaTypes funcType2 = LuaDLL.lua_type(L, 2);

                if (funcType2 != LuaTypes.LUA_TFUNCTION)
                {
                    arg1 = (GameFramework.Resource.LoadAssetDependencyAssetCallback)ToLua.CheckObject(L, 2, typeof(GameFramework.Resource.LoadAssetDependencyAssetCallback));
                }
                else
                {
                    LuaFunction func = ToLua.ToLuaFunction(L, 2);
                    arg1 = DelegateFactory.CreateDelegate(typeof(GameFramework.Resource.LoadAssetDependencyAssetCallback), func) as GameFramework.Resource.LoadAssetDependencyAssetCallback;
                }

                GameFramework.Resource.LoadAssetCallbacks obj = new GameFramework.Resource.LoadAssetCallbacks(arg0, arg1);
                ToLua.PushObject(L, obj);
                return(1);
            }
            else if (count == 2 && TypeChecker.CheckTypes(L, 1, typeof(GameFramework.Resource.LoadAssetSuccessCallback), typeof(GameFramework.Resource.LoadAssetUpdateCallback)))
            {
                GameFramework.Resource.LoadAssetSuccessCallback arg0 = null;
                LuaTypes funcType1 = LuaDLL.lua_type(L, 1);

                if (funcType1 != LuaTypes.LUA_TFUNCTION)
                {
                    arg0 = (GameFramework.Resource.LoadAssetSuccessCallback)ToLua.CheckObject(L, 1, typeof(GameFramework.Resource.LoadAssetSuccessCallback));
                }
                else
                {
                    LuaFunction func = ToLua.ToLuaFunction(L, 1);
                    arg0 = DelegateFactory.CreateDelegate(typeof(GameFramework.Resource.LoadAssetSuccessCallback), func) as GameFramework.Resource.LoadAssetSuccessCallback;
                }

                GameFramework.Resource.LoadAssetUpdateCallback arg1 = null;
                LuaTypes funcType2 = LuaDLL.lua_type(L, 2);

                if (funcType2 != LuaTypes.LUA_TFUNCTION)
                {
                    arg1 = (GameFramework.Resource.LoadAssetUpdateCallback)ToLua.CheckObject(L, 2, typeof(GameFramework.Resource.LoadAssetUpdateCallback));
                }
                else
                {
                    LuaFunction func = ToLua.ToLuaFunction(L, 2);
                    arg1 = DelegateFactory.CreateDelegate(typeof(GameFramework.Resource.LoadAssetUpdateCallback), func) as GameFramework.Resource.LoadAssetUpdateCallback;
                }

                GameFramework.Resource.LoadAssetCallbacks obj = new GameFramework.Resource.LoadAssetCallbacks(arg0, arg1);
                ToLua.PushObject(L, obj);
                return(1);
            }
            else if (count == 2 && TypeChecker.CheckTypes(L, 1, typeof(GameFramework.Resource.LoadAssetSuccessCallback), typeof(GameFramework.Resource.LoadAssetFailureCallback)))
            {
                GameFramework.Resource.LoadAssetSuccessCallback arg0 = null;
                LuaTypes funcType1 = LuaDLL.lua_type(L, 1);

                if (funcType1 != LuaTypes.LUA_TFUNCTION)
                {
                    arg0 = (GameFramework.Resource.LoadAssetSuccessCallback)ToLua.CheckObject(L, 1, typeof(GameFramework.Resource.LoadAssetSuccessCallback));
                }
                else
                {
                    LuaFunction func = ToLua.ToLuaFunction(L, 1);
                    arg0 = DelegateFactory.CreateDelegate(typeof(GameFramework.Resource.LoadAssetSuccessCallback), func) as GameFramework.Resource.LoadAssetSuccessCallback;
                }

                GameFramework.Resource.LoadAssetFailureCallback arg1 = null;
                LuaTypes funcType2 = LuaDLL.lua_type(L, 2);

                if (funcType2 != LuaTypes.LUA_TFUNCTION)
                {
                    arg1 = (GameFramework.Resource.LoadAssetFailureCallback)ToLua.CheckObject(L, 2, typeof(GameFramework.Resource.LoadAssetFailureCallback));
                }
                else
                {
                    LuaFunction func = ToLua.ToLuaFunction(L, 2);
                    arg1 = DelegateFactory.CreateDelegate(typeof(GameFramework.Resource.LoadAssetFailureCallback), func) as GameFramework.Resource.LoadAssetFailureCallback;
                }

                GameFramework.Resource.LoadAssetCallbacks obj = new GameFramework.Resource.LoadAssetCallbacks(arg0, arg1);
                ToLua.PushObject(L, obj);
                return(1);
            }
            else if (count == 3 && TypeChecker.CheckTypes(L, 1, typeof(GameFramework.Resource.LoadAssetSuccessCallback), typeof(GameFramework.Resource.LoadAssetFailureCallback), typeof(GameFramework.Resource.LoadAssetDependencyAssetCallback)))
            {
                GameFramework.Resource.LoadAssetSuccessCallback arg0 = null;
                LuaTypes funcType1 = LuaDLL.lua_type(L, 1);

                if (funcType1 != LuaTypes.LUA_TFUNCTION)
                {
                    arg0 = (GameFramework.Resource.LoadAssetSuccessCallback)ToLua.CheckObject(L, 1, typeof(GameFramework.Resource.LoadAssetSuccessCallback));
                }
                else
                {
                    LuaFunction func = ToLua.ToLuaFunction(L, 1);
                    arg0 = DelegateFactory.CreateDelegate(typeof(GameFramework.Resource.LoadAssetSuccessCallback), func) as GameFramework.Resource.LoadAssetSuccessCallback;
                }

                GameFramework.Resource.LoadAssetFailureCallback arg1 = null;
                LuaTypes funcType2 = LuaDLL.lua_type(L, 2);

                if (funcType2 != LuaTypes.LUA_TFUNCTION)
                {
                    arg1 = (GameFramework.Resource.LoadAssetFailureCallback)ToLua.CheckObject(L, 2, typeof(GameFramework.Resource.LoadAssetFailureCallback));
                }
                else
                {
                    LuaFunction func = ToLua.ToLuaFunction(L, 2);
                    arg1 = DelegateFactory.CreateDelegate(typeof(GameFramework.Resource.LoadAssetFailureCallback), func) as GameFramework.Resource.LoadAssetFailureCallback;
                }

                GameFramework.Resource.LoadAssetDependencyAssetCallback arg2 = null;
                LuaTypes funcType3 = LuaDLL.lua_type(L, 3);

                if (funcType3 != LuaTypes.LUA_TFUNCTION)
                {
                    arg2 = (GameFramework.Resource.LoadAssetDependencyAssetCallback)ToLua.CheckObject(L, 3, typeof(GameFramework.Resource.LoadAssetDependencyAssetCallback));
                }
                else
                {
                    LuaFunction func = ToLua.ToLuaFunction(L, 3);
                    arg2 = DelegateFactory.CreateDelegate(typeof(GameFramework.Resource.LoadAssetDependencyAssetCallback), func) as GameFramework.Resource.LoadAssetDependencyAssetCallback;
                }

                GameFramework.Resource.LoadAssetCallbacks obj = new GameFramework.Resource.LoadAssetCallbacks(arg0, arg1, arg2);
                ToLua.PushObject(L, obj);
                return(1);
            }
            else if (count == 3 && TypeChecker.CheckTypes(L, 1, typeof(GameFramework.Resource.LoadAssetSuccessCallback), typeof(GameFramework.Resource.LoadAssetFailureCallback), typeof(GameFramework.Resource.LoadAssetUpdateCallback)))
            {
                GameFramework.Resource.LoadAssetSuccessCallback arg0 = null;
                LuaTypes funcType1 = LuaDLL.lua_type(L, 1);

                if (funcType1 != LuaTypes.LUA_TFUNCTION)
                {
                    arg0 = (GameFramework.Resource.LoadAssetSuccessCallback)ToLua.CheckObject(L, 1, typeof(GameFramework.Resource.LoadAssetSuccessCallback));
                }
                else
                {
                    LuaFunction func = ToLua.ToLuaFunction(L, 1);
                    arg0 = DelegateFactory.CreateDelegate(typeof(GameFramework.Resource.LoadAssetSuccessCallback), func) as GameFramework.Resource.LoadAssetSuccessCallback;
                }

                GameFramework.Resource.LoadAssetFailureCallback arg1 = null;
                LuaTypes funcType2 = LuaDLL.lua_type(L, 2);

                if (funcType2 != LuaTypes.LUA_TFUNCTION)
                {
                    arg1 = (GameFramework.Resource.LoadAssetFailureCallback)ToLua.CheckObject(L, 2, typeof(GameFramework.Resource.LoadAssetFailureCallback));
                }
                else
                {
                    LuaFunction func = ToLua.ToLuaFunction(L, 2);
                    arg1 = DelegateFactory.CreateDelegate(typeof(GameFramework.Resource.LoadAssetFailureCallback), func) as GameFramework.Resource.LoadAssetFailureCallback;
                }

                GameFramework.Resource.LoadAssetUpdateCallback arg2 = null;
                LuaTypes funcType3 = LuaDLL.lua_type(L, 3);

                if (funcType3 != LuaTypes.LUA_TFUNCTION)
                {
                    arg2 = (GameFramework.Resource.LoadAssetUpdateCallback)ToLua.CheckObject(L, 3, typeof(GameFramework.Resource.LoadAssetUpdateCallback));
                }
                else
                {
                    LuaFunction func = ToLua.ToLuaFunction(L, 3);
                    arg2 = DelegateFactory.CreateDelegate(typeof(GameFramework.Resource.LoadAssetUpdateCallback), func) as GameFramework.Resource.LoadAssetUpdateCallback;
                }

                GameFramework.Resource.LoadAssetCallbacks obj = new GameFramework.Resource.LoadAssetCallbacks(arg0, arg1, arg2);
                ToLua.PushObject(L, obj);
                return(1);
            }
            else if (count == 4 && TypeChecker.CheckTypes(L, 1, typeof(GameFramework.Resource.LoadAssetSuccessCallback), typeof(GameFramework.Resource.LoadAssetFailureCallback), typeof(GameFramework.Resource.LoadAssetUpdateCallback), typeof(GameFramework.Resource.LoadAssetDependencyAssetCallback)))
            {
                GameFramework.Resource.LoadAssetSuccessCallback arg0 = null;
                LuaTypes funcType1 = LuaDLL.lua_type(L, 1);

                if (funcType1 != LuaTypes.LUA_TFUNCTION)
                {
                    arg0 = (GameFramework.Resource.LoadAssetSuccessCallback)ToLua.CheckObject(L, 1, typeof(GameFramework.Resource.LoadAssetSuccessCallback));
                }
                else
                {
                    LuaFunction func = ToLua.ToLuaFunction(L, 1);
                    arg0 = DelegateFactory.CreateDelegate(typeof(GameFramework.Resource.LoadAssetSuccessCallback), func) as GameFramework.Resource.LoadAssetSuccessCallback;
                }

                GameFramework.Resource.LoadAssetFailureCallback arg1 = null;
                LuaTypes funcType2 = LuaDLL.lua_type(L, 2);

                if (funcType2 != LuaTypes.LUA_TFUNCTION)
                {
                    arg1 = (GameFramework.Resource.LoadAssetFailureCallback)ToLua.CheckObject(L, 2, typeof(GameFramework.Resource.LoadAssetFailureCallback));
                }
                else
                {
                    LuaFunction func = ToLua.ToLuaFunction(L, 2);
                    arg1 = DelegateFactory.CreateDelegate(typeof(GameFramework.Resource.LoadAssetFailureCallback), func) as GameFramework.Resource.LoadAssetFailureCallback;
                }

                GameFramework.Resource.LoadAssetUpdateCallback arg2 = null;
                LuaTypes funcType3 = LuaDLL.lua_type(L, 3);

                if (funcType3 != LuaTypes.LUA_TFUNCTION)
                {
                    arg2 = (GameFramework.Resource.LoadAssetUpdateCallback)ToLua.CheckObject(L, 3, typeof(GameFramework.Resource.LoadAssetUpdateCallback));
                }
                else
                {
                    LuaFunction func = ToLua.ToLuaFunction(L, 3);
                    arg2 = DelegateFactory.CreateDelegate(typeof(GameFramework.Resource.LoadAssetUpdateCallback), func) as GameFramework.Resource.LoadAssetUpdateCallback;
                }

                GameFramework.Resource.LoadAssetDependencyAssetCallback arg3 = null;
                LuaTypes funcType4 = LuaDLL.lua_type(L, 4);

                if (funcType4 != LuaTypes.LUA_TFUNCTION)
                {
                    arg3 = (GameFramework.Resource.LoadAssetDependencyAssetCallback)ToLua.CheckObject(L, 4, typeof(GameFramework.Resource.LoadAssetDependencyAssetCallback));
                }
                else
                {
                    LuaFunction func = ToLua.ToLuaFunction(L, 4);
                    arg3 = DelegateFactory.CreateDelegate(typeof(GameFramework.Resource.LoadAssetDependencyAssetCallback), func) as GameFramework.Resource.LoadAssetDependencyAssetCallback;
                }

                GameFramework.Resource.LoadAssetCallbacks obj = new GameFramework.Resource.LoadAssetCallbacks(arg0, arg1, arg2, arg3);
                ToLua.PushObject(L, obj);
                return(1);
            }
            else
            {
                return(LuaDLL.luaL_throw(L, "invalid arguments to ctor method: GameFramework.Resource.LoadAssetCallbacks.New"));
            }
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }
        static int __CreateInstance(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                if (LuaAPI.lua_gettop(L) == 2 && translator.Assignable <GameFramework.Resource.LoadAssetSuccessCallback>(L, 2))
                {
                    GameFramework.Resource.LoadAssetSuccessCallback _loadAssetSuccessCallback = translator.GetDelegate <GameFramework.Resource.LoadAssetSuccessCallback>(L, 2);

                    GameFramework.Resource.LoadAssetCallbacks gen_ret = new GameFramework.Resource.LoadAssetCallbacks(_loadAssetSuccessCallback);
                    translator.Push(L, gen_ret);

                    return(1);
                }
                if (LuaAPI.lua_gettop(L) == 3 && translator.Assignable <GameFramework.Resource.LoadAssetSuccessCallback>(L, 2) && translator.Assignable <GameFramework.Resource.LoadAssetFailureCallback>(L, 3))
                {
                    GameFramework.Resource.LoadAssetSuccessCallback _loadAssetSuccessCallback = translator.GetDelegate <GameFramework.Resource.LoadAssetSuccessCallback>(L, 2);
                    GameFramework.Resource.LoadAssetFailureCallback _loadAssetFailureCallback = translator.GetDelegate <GameFramework.Resource.LoadAssetFailureCallback>(L, 3);

                    GameFramework.Resource.LoadAssetCallbacks gen_ret = new GameFramework.Resource.LoadAssetCallbacks(_loadAssetSuccessCallback, _loadAssetFailureCallback);
                    translator.Push(L, gen_ret);

                    return(1);
                }
                if (LuaAPI.lua_gettop(L) == 3 && translator.Assignable <GameFramework.Resource.LoadAssetSuccessCallback>(L, 2) && translator.Assignable <GameFramework.Resource.LoadAssetUpdateCallback>(L, 3))
                {
                    GameFramework.Resource.LoadAssetSuccessCallback _loadAssetSuccessCallback = translator.GetDelegate <GameFramework.Resource.LoadAssetSuccessCallback>(L, 2);
                    GameFramework.Resource.LoadAssetUpdateCallback  _loadAssetUpdateCallback  = translator.GetDelegate <GameFramework.Resource.LoadAssetUpdateCallback>(L, 3);

                    GameFramework.Resource.LoadAssetCallbacks gen_ret = new GameFramework.Resource.LoadAssetCallbacks(_loadAssetSuccessCallback, _loadAssetUpdateCallback);
                    translator.Push(L, gen_ret);

                    return(1);
                }
                if (LuaAPI.lua_gettop(L) == 3 && translator.Assignable <GameFramework.Resource.LoadAssetSuccessCallback>(L, 2) && translator.Assignable <GameFramework.Resource.LoadAssetDependencyAssetCallback>(L, 3))
                {
                    GameFramework.Resource.LoadAssetSuccessCallback         _loadAssetSuccessCallback         = translator.GetDelegate <GameFramework.Resource.LoadAssetSuccessCallback>(L, 2);
                    GameFramework.Resource.LoadAssetDependencyAssetCallback _loadAssetDependencyAssetCallback = translator.GetDelegate <GameFramework.Resource.LoadAssetDependencyAssetCallback>(L, 3);

                    GameFramework.Resource.LoadAssetCallbacks gen_ret = new GameFramework.Resource.LoadAssetCallbacks(_loadAssetSuccessCallback, _loadAssetDependencyAssetCallback);
                    translator.Push(L, gen_ret);

                    return(1);
                }
                if (LuaAPI.lua_gettop(L) == 4 && translator.Assignable <GameFramework.Resource.LoadAssetSuccessCallback>(L, 2) && translator.Assignable <GameFramework.Resource.LoadAssetFailureCallback>(L, 3) && translator.Assignable <GameFramework.Resource.LoadAssetUpdateCallback>(L, 4))
                {
                    GameFramework.Resource.LoadAssetSuccessCallback _loadAssetSuccessCallback = translator.GetDelegate <GameFramework.Resource.LoadAssetSuccessCallback>(L, 2);
                    GameFramework.Resource.LoadAssetFailureCallback _loadAssetFailureCallback = translator.GetDelegate <GameFramework.Resource.LoadAssetFailureCallback>(L, 3);
                    GameFramework.Resource.LoadAssetUpdateCallback  _loadAssetUpdateCallback  = translator.GetDelegate <GameFramework.Resource.LoadAssetUpdateCallback>(L, 4);

                    GameFramework.Resource.LoadAssetCallbacks gen_ret = new GameFramework.Resource.LoadAssetCallbacks(_loadAssetSuccessCallback, _loadAssetFailureCallback, _loadAssetUpdateCallback);
                    translator.Push(L, gen_ret);

                    return(1);
                }
                if (LuaAPI.lua_gettop(L) == 4 && translator.Assignable <GameFramework.Resource.LoadAssetSuccessCallback>(L, 2) && translator.Assignable <GameFramework.Resource.LoadAssetFailureCallback>(L, 3) && translator.Assignable <GameFramework.Resource.LoadAssetDependencyAssetCallback>(L, 4))
                {
                    GameFramework.Resource.LoadAssetSuccessCallback         _loadAssetSuccessCallback         = translator.GetDelegate <GameFramework.Resource.LoadAssetSuccessCallback>(L, 2);
                    GameFramework.Resource.LoadAssetFailureCallback         _loadAssetFailureCallback         = translator.GetDelegate <GameFramework.Resource.LoadAssetFailureCallback>(L, 3);
                    GameFramework.Resource.LoadAssetDependencyAssetCallback _loadAssetDependencyAssetCallback = translator.GetDelegate <GameFramework.Resource.LoadAssetDependencyAssetCallback>(L, 4);

                    GameFramework.Resource.LoadAssetCallbacks gen_ret = new GameFramework.Resource.LoadAssetCallbacks(_loadAssetSuccessCallback, _loadAssetFailureCallback, _loadAssetDependencyAssetCallback);
                    translator.Push(L, gen_ret);

                    return(1);
                }
                if (LuaAPI.lua_gettop(L) == 5 && translator.Assignable <GameFramework.Resource.LoadAssetSuccessCallback>(L, 2) && translator.Assignable <GameFramework.Resource.LoadAssetFailureCallback>(L, 3) && translator.Assignable <GameFramework.Resource.LoadAssetUpdateCallback>(L, 4) && translator.Assignable <GameFramework.Resource.LoadAssetDependencyAssetCallback>(L, 5))
                {
                    GameFramework.Resource.LoadAssetSuccessCallback         _loadAssetSuccessCallback         = translator.GetDelegate <GameFramework.Resource.LoadAssetSuccessCallback>(L, 2);
                    GameFramework.Resource.LoadAssetFailureCallback         _loadAssetFailureCallback         = translator.GetDelegate <GameFramework.Resource.LoadAssetFailureCallback>(L, 3);
                    GameFramework.Resource.LoadAssetUpdateCallback          _loadAssetUpdateCallback          = translator.GetDelegate <GameFramework.Resource.LoadAssetUpdateCallback>(L, 4);
                    GameFramework.Resource.LoadAssetDependencyAssetCallback _loadAssetDependencyAssetCallback = translator.GetDelegate <GameFramework.Resource.LoadAssetDependencyAssetCallback>(L, 5);

                    GameFramework.Resource.LoadAssetCallbacks gen_ret = new GameFramework.Resource.LoadAssetCallbacks(_loadAssetSuccessCallback, _loadAssetFailureCallback, _loadAssetUpdateCallback, _loadAssetDependencyAssetCallback);
                    translator.Push(L, gen_ret);

                    return(1);
                }
            }
            catch (System.Exception gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + gen_e));
            }
            return(LuaAPI.luaL_error(L, "invalid arguments to GameFramework.Resource.LoadAssetCallbacks constructor!"));
        }