#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 TutorialCSCallLuaItfDBridge : LuaBase, Tutorial.CSCallLua.ItfD { public static LuaBase __Create(int reference, LuaEnv luaenv) { return new TutorialCSCallLuaItfDBridge(reference, luaenv); } public TutorialCSCallLuaItfDBridge(int reference, LuaEnv luaenv) : base(reference, luaenv) { } int Tutorial.CSCallLua.ItfD.add(int a, int b) { #if THREAD_SAFE || HOTFIX_ENABLE lock (luaEnv.luaEnvLock) { #endif RealStatePtr L = luaEnv.L; int err_func = LuaAPI.load_error_func(L, luaEnv.errorFuncRef); LuaAPI.lua_getref(L, luaReference); LuaAPI.xlua_pushasciistring(L, "add"); 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 add"); luaEnv.ThrowExceptionFromError(err_func - 1); } LuaAPI.lua_pushvalue(L, -2); LuaAPI.lua_remove(L, -3); LuaAPI.xlua_pushinteger(L, a); LuaAPI.xlua_pushinteger(L, b); int __gen_error = LuaAPI.lua_pcall(L, 3, 1, err_func); if (__gen_error != 0) luaEnv.ThrowExceptionFromError(err_func - 1); int __gen_ret = LuaAPI.xlua_tointeger(L, err_func + 1); LuaAPI.lua_settop(L, err_func - 1); return __gen_ret; #if THREAD_SAFE || HOTFIX_ENABLE } #endif } int Tutorial.CSCallLua.ItfD.f1 { get { #if THREAD_SAFE || HOTFIX_ENABLE lock (luaEnv.luaEnvLock) { #endif RealStatePtr L = luaEnv.L; int oldTop = LuaAPI.lua_gettop(L); LuaAPI.lua_getref(L, luaReference); LuaAPI.xlua_pushasciistring(L, "f1"); if (0 != LuaAPI.xlua_pgettable(L, -2)) { luaEnv.ThrowExceptionFromError(oldTop); } int __gen_ret = LuaAPI.xlua_tointeger(L, -1); LuaAPI.lua_pop(L, 2); return __gen_ret; #if THREAD_SAFE || HOTFIX_ENABLE } #endif } set { #if THREAD_SAFE || HOTFIX_ENABLE lock (luaEnv.luaEnvLock) { #endif RealStatePtr L = luaEnv.L; int oldTop = LuaAPI.lua_gettop(L); LuaAPI.lua_getref(L, luaReference); LuaAPI.xlua_pushasciistring(L, "f1"); LuaAPI.xlua_pushinteger(L, value); if (0 != LuaAPI.xlua_psettable(L, -3)) { luaEnv.ThrowExceptionFromError(oldTop); } LuaAPI.lua_pop(L, 1); #if THREAD_SAFE || HOTFIX_ENABLE } #endif } } int Tutorial.CSCallLua.ItfD.f2 { get { #if THREAD_SAFE || HOTFIX_ENABLE lock (luaEnv.luaEnvLock) { #endif RealStatePtr L = luaEnv.L; int oldTop = LuaAPI.lua_gettop(L); LuaAPI.lua_getref(L, luaReference); LuaAPI.xlua_pushasciistring(L, "f2"); if (0 != LuaAPI.xlua_pgettable(L, -2)) { luaEnv.ThrowExceptionFromError(oldTop); } int __gen_ret = LuaAPI.xlua_tointeger(L, -1); LuaAPI.lua_pop(L, 2); return __gen_ret; #if THREAD_SAFE || HOTFIX_ENABLE } #endif } set { #if THREAD_SAFE || HOTFIX_ENABLE lock (luaEnv.luaEnvLock) { #endif RealStatePtr L = luaEnv.L; int oldTop = LuaAPI.lua_gettop(L); LuaAPI.lua_getref(L, luaReference); LuaAPI.xlua_pushasciistring(L, "f2"); LuaAPI.xlua_pushinteger(L, value); if (0 != LuaAPI.xlua_psettable(L, -3)) { luaEnv.ThrowExceptionFromError(oldTop); } LuaAPI.lua_pop(L, 1); #if THREAD_SAFE || HOTFIX_ENABLE } #endif } } } }