少年修仙传客户端基础资源
client_Wu Xijin
2018-10-26 028dcd5c7b04c7c31ab10e71eca0b6cb9edd7150
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
#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;
 
 
namespace XLua.CSObjectWrap
{
    public class XLuaTestIExchangerBridge : LuaBase, XLuaTest.IExchanger
    {
        public static LuaBase __Create(int reference, LuaEnv luaenv)
        {
            return new XLuaTestIExchangerBridge(reference, luaenv);
        }
        
        public XLuaTestIExchangerBridge(int reference, LuaEnv luaenv) : base(reference, luaenv)
        {
        }
        
        
        public void exchange(System.Array arr)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
                RealStatePtr L = luaEnv.L;
                int err_func = LuaAPI.load_error_func(L, luaEnv.errorFuncRef);
                ObjectTranslator translator = luaEnv.translator;
                
                LuaAPI.lua_getref(L, luaReference);
                LuaAPI.xlua_pushasciistring(L, "exchange");
                if (0 != LuaAPI.xlua_pgettable(L, -2))
                {
                    luaEnv.ThrowExceptionFromError(err_func - 1);
                }
                if(!LuaAPI.lua_isfunction(L, -1))
                {
                    LuaAPI.xlua_pushasciistring(L, "no such function exchange");
                    luaEnv.ThrowExceptionFromError(err_func - 1);
                }
                LuaAPI.lua_pushvalue(L, -2);
                LuaAPI.lua_remove(L, -3);
                translator.Push(L, arr);
                
                int __gen_error = LuaAPI.lua_pcall(L, 2, 0, err_func);
                if (__gen_error != 0)
                    luaEnv.ThrowExceptionFromError(err_func - 1);
                
                
                
                LuaAPI.lua_settop(L, err_func - 1);
                
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        
 
        
        
        
        
        
    }
}