178 lines
4.1 KiB
C#
178 lines
4.1 KiB
C#
#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
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|