Destroy() public static method

public static Destroy ( Lua L, LWF obj ) : void
L Lua
obj LWF
return void
コード例 #1
0
        public void DestroyMovieLua(Movie movie)
        {
            if (luaState == null)
            {
                return;
            }

            Lua.lua_State l = (Lua.lua_State)luaState;
            Lua.lua_getglobal(l, "LWF");
            /* -1: LWF */
            if (!Lua.lua_istable(l, -1))
            {
                Lua.lua_pop(l, 1);
                /* 0 */
                return;
            }
            Lua.lua_getfield(l, -1, "Instances");
            /* -2: LWF */
            /* -1: LWF.Instances */
            Lua.lua_remove(l, -2);
            /* -1: LWF.Instances */
            if (!Lua.lua_istable(l, -1))
            {
                Lua.lua_pop(l, 1);
                /* 0 */
                return;
            }
            Lua.lua_getfield(l, -1, instanceIdString);
            /* -2: LWF.Instances */
            /* -1: LWF.Instances.<instanceId> */
            Lua.lua_remove(l, -2);
            /* -1: LWF.Instances.<instanceId> */
            if (!Lua.lua_istable(l, -1))
            {
                Lua.lua_pop(l, 1);
                /* 0 */
                return;
            }
            Lua.lua_getfield(l, -1, "Movies");
            /* -2: LWF.Instances.<instanceId> */
            /* -1: LWF.Instances.<instanceId>.Movies */
            Lua.lua_remove(l, -2);
            /* -1: LWF.Instances.<instanceId>.Movies */
            if (!Lua.lua_istable(l, -1))
            {
                Lua.lua_pop(l, 1);
                /* 0 */
                return;
            }
            Lua.lua_pushnil(l);
            /* -2: LWF.Instances.<instanceId>.Movies */
            /* -1: nil */
            Lua.lua_setfield(l, -2, movie.iObjectId.ToString());
            /* LWF.Instances.<instanceId>.Movies.<iObjectId> = nil */
            /* -1: LWF.Instances.<instanceId>.Movies */
            Lua.lua_pop(l, 1);
            /* 0 */
            Luna_LWF_Movie.Destroy(l, movie);
            return;
        }
コード例 #2
0
ファイル: lwf_lua.cs プロジェクト: xubingyue/lwf
        public void DestroyMovieLua(Movie movie)
        {
            if (luaState == null)
            {
                return;
            }

            Lua.lua_State l = (Lua.lua_State)luaState;
            Lua.lua_getglobal(l, "LWF");
            /* -1: LWF */
            if (!Lua.lua_istable(l, -1))
            {
                Lua.lua_pop(l, 1);
                /* 0 */
                return;
            }
            Lua.lua_getfield(l, -1, "Script");
            /* -2: LWF */
            /* -1: LWF.Script */
            Lua.lua_remove(l, -2);
            /* -1: LWF.Script */
            if (!Lua.lua_istable(l, -1))
            {
                Lua.lua_pop(l, 1);
                /* 0 */
                return;
            }
            Lua.lua_getfield(l, -1, name);
            /* -2: LWF.Script */
            /* -1: LWF.Script.<name> */
            Lua.lua_remove(l, -2);
            /* -1: LWF.Script.<name> */
            if (!Lua.lua_istable(l, -1))
            {
                Lua.lua_pop(l, 1);
                /* 0 */
                return;
            }
            Lua.lua_getfield(l, -1, "Destroy");
            /* -2: LWF.Script.<name> */
            /* -1: LWF.Script.<name>.Destroy */
            Lua.lua_remove(l, -2);
            /* -1: LWF.Script.<name>.Destroy */
            if (Lua.lua_isfunction(l, -1))
            {
                Luna_LWF_LWF.push(l, this, false);
                /* -2: LWF.Script.<name>.Destroy */
                /* -1: LWF instance */
                if (Lua.lua_pcall(l, 1, 0, 0) != 0)
                {
                    Lua.lua_pop(l, 1);
                }
                /* 0 */
            }
            Lua.lua_getglobal(l, "LWF");
            /* -1: LWF */
            if (!Lua.lua_istable(l, -1))
            {
                Lua.lua_pop(l, 1);
                /* 0 */
                return;
            }
            Lua.lua_getfield(l, -1, "Instances");
            /* -2: LWF */
            /* -1: LWF.Instances */
            Lua.lua_remove(l, -2);
            /* -1: LWF.Instances */
            if (!Lua.lua_istable(l, -1))
            {
                Lua.lua_pop(l, 1);
                /* 0 */
                return;
            }
            Lua.lua_getfield(l, -1, instanceIdString);
            /* -2: LWF.Instances */
            /* -1: LWF.Instances.<instanceId> */
            Lua.lua_remove(l, -2);
            /* -1: LWF.Instances.<instanceId> */
            if (!Lua.lua_istable(l, -1))
            {
                Lua.lua_pop(l, 1);
                /* 0 */
                return;
            }
            Lua.lua_getfield(l, -1, "Movies");
            /* -2: LWF.Instances.<instanceId> */
            /* -1: LWF.Instances.<instanceId>.Movies */
            Lua.lua_remove(l, -2);
            /* -1: LWF.Instances.<instanceId>.Movies */
            if (!Lua.lua_istable(l, -1))
            {
                Lua.lua_pop(l, 1);
                /* 0 */
                return;
            }
            Lua.lua_pushnil(l);
            /* -2: LWF.Instances.<instanceId>.Movies */
            /* -1: nil */
            Lua.lua_setfield(l, -2, movie.iObjectId.ToString());
            /* LWF.Instances.<instanceId>.Movies.<iObjectId> = nil */
            /* -1: LWF.Instances.<instanceId>.Movies */
            Lua.lua_pop(l, 1);
            /* 0 */
            Luna_LWF_Movie.Destroy(l, movie);
            return;
        }