少年修仙传客户端基础资源
leonard Wu
2018-08-03 254bb1fd79edeecd47566cece994b36c1814025d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#if USE_UNI_LUA
using LuaAPI = UniLua.Lua;
using RealStatePtr = UniLua.ILuaState;
using LuaCSFunction = UniLua.CSharpFunctionDelegate;
#else
using LuaAPI = XLua.LuaDLL.Lua;
using RealStatePtr = System.IntPtr;
using LuaCSFunction = XLua.LuaDLL.lua_CSFunction;
#endif
 
using XLua;
using System.Collections.Generic;
 
 
namespace XLua.CSObjectWrap
{
    using Utils = XLua.Utils;
    public class Coroutine_RunnerWrap 
    {
        public static void __Register(RealStatePtr L)
        {
            ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
            System.Type type = typeof(Coroutine_Runner);
            Utils.BeginObjectRegister(type, L, translator, 0, 1, 0, 0);
            
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "YieldAndCallback", _m_YieldAndCallback);
            
            
            
            
            
            Utils.EndObjectRegister(type, L, translator, null, null,
                null, null, null);
 
            Utils.BeginClassRegister(type, L, __CreateInstance, 1, 0, 0);
            
            
            
            
            
            
            Utils.EndClassRegister(type, L, translator);
        }
        
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int __CreateInstance(RealStatePtr L)
        {
            
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                if(LuaAPI.lua_gettop(L) == 1)
                {
                    
                    Coroutine_Runner gen_ret = new Coroutine_Runner();
                    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 Coroutine_Runner constructor!");
            
        }
        
        
        
        
        
        
        
        
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_YieldAndCallback(RealStatePtr L)
        {
            try {
            
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
            
            
                Coroutine_Runner gen_to_be_invoked = (Coroutine_Runner)translator.FastGetCSObj(L, 1);
            
            
                
                {
                    object _to_yield = translator.GetObject(L, 2, typeof(object));
                    System.Action _callback = translator.GetDelegate<System.Action>(L, 3);
                    
                    gen_to_be_invoked.YieldAndCallback( _to_yield, _callback );
                    
                    
                    
                    return 0;
                }
                
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
            
        }
        
        
        
        
        
        
        
        
        
        
    }
}