コード例 #1
0
    static int Call(IntPtr L)
    {
        try
        {
            int count = LuaDLL.lua_gettop(L);

            if (count == 2 && TypeChecker.CheckTypes <object[]>(L, 2))
            {
                LuaEventCallback obj  = (LuaEventCallback)ToLua.CheckObject <LuaEventCallback>(L, 1);
                object[]         arg0 = ToLua.ToObjectArray(L, 2);
                obj.Call(arg0);
                return(0);
            }
            else if (count == 2 && TypeChecker.CheckTypes <object>(L, 2))
            {
                LuaEventCallback obj  = (LuaEventCallback)ToLua.CheckObject <LuaEventCallback>(L, 1);
                object           arg0 = ToLua.ToVarObject(L, 2);
                obj.Call(arg0);
                return(0);
            }
            else
            {
                return(LuaDLL.luaL_throw(L, "invalid arguments to method: LuaEventCallback.Call"));
            }
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }
コード例 #2
0
    static int RemoveCallback(IntPtr L)
    {
        try
        {
            int count = LuaDLL.lua_gettop(L);

            if (count == 2 && TypeChecker.CheckTypes <LuaEventCallback>(L, 2))
            {
                QKEvent          obj  = (QKEvent)ToLua.CheckObject <QKEvent>(L, 1);
                LuaEventCallback arg0 = (LuaEventCallback)ToLua.ToObject(L, 2);
                obj.RemoveCallback(arg0);
                return(0);
            }
            else if (count == 2 && TypeChecker.CheckTypes <IEventCallback>(L, 2))
            {
                QKEvent        obj  = (QKEvent)ToLua.CheckObject <QKEvent>(L, 1);
                IEventCallback arg0 = (IEventCallback)ToLua.ToObject(L, 2);
                obj.RemoveCallback(arg0);
                return(0);
            }
            else
            {
                return(LuaDLL.luaL_throw(L, "invalid arguments to method: QKEvent.RemoveCallback"));
            }
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }
コード例 #3
0
    static int AddCallback(IntPtr L)
    {
        try
        {
            int count = LuaDLL.lua_gettop(L);

            if (count == 2)
            {
                QKEvent        obj  = (QKEvent)ToLua.CheckObject <QKEvent>(L, 1);
                IEventCallback arg0 = (IEventCallback)ToLua.CheckObject <IEventCallback>(L, 2);
                obj.AddCallback(arg0);
                return(0);
            }
            else if (count == 3)
            {
                QKEvent          obj  = (QKEvent)ToLua.CheckObject <QKEvent>(L, 1);
                object           arg0 = ToLua.ToVarObject(L, 2);
                LuaFunction      arg1 = ToLua.CheckLuaFunction(L, 3);
                LuaEventCallback o    = obj.AddCallback(arg0, arg1);
                ToLua.PushObject(L, o);
                return(1);
            }
            else
            {
                return(LuaDLL.luaL_throw(L, "invalid arguments to method: QKEvent.AddCallback"));
            }
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }
コード例 #4
0
ファイル: IQKEvent.cs プロジェクト: TheWindRest/GameClient
    public LuaEventCallback AddCallback(object ob, LuaFunction func)
    {
        LuaEventCallback cback = new LuaEventCallback();

        cback.Init(ob, func);
        m_Callbacks.Add(cback);
        return(cback);
    }
コード例 #5
0
 public void AddLuaCallback(LuaEventCallback callback)
 {
     if (m_luaCallbacks == null)
     {
         m_luaCallbacks = new List <LuaEventCallback>();
     }
     m_luaCallbacks.Add(callback);
 }
コード例 #6
0
ファイル: IQKEvent.cs プロジェクト: TheWindRest/GameClient
    public void RemoveCallback(LuaEventCallback callBack)
    {
        callBack.Dispose();

        if (m_Callbacks.Contains(callBack))
        {
            m_Callbacks.Remove(callBack);
        }
    }
コード例 #7
0
 public void RemoveLuaCallback(LuaEventCallback callback)
 {
     if (m_dispatching)
     {
         m_removed.Add(callback);
     }
     else
     {
         m_luaCallbacks.Remove(callback);
     }
 }
コード例 #8
0
 static int Dispose(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 1);
         LuaEventCallback obj = (LuaEventCallback)ToLua.CheckObject <LuaEventCallback>(L, 1);
         obj.Dispose();
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
コード例 #9
0
    static int get_ClassRef(IntPtr L)
    {
        object o = null;

        try
        {
            o = ToLua.ToObject(L, 1);
            LuaEventCallback obj = (LuaEventCallback)o;
            object           ret = obj.ClassRef;
            ToLua.Push(L, ret);
            return(1);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e, o, "attempt to index ClassRef on a nil value"));
        }
    }
コード例 #10
0
    static int _CreateLuaEventCallback(IntPtr L)
    {
        try
        {
            int count = LuaDLL.lua_gettop(L);

            if (count == 0)
            {
                LuaEventCallback obj = new LuaEventCallback();
                ToLua.PushObject(L, obj);
                return(1);
            }
            else
            {
                return(LuaDLL.luaL_throw(L, "invalid arguments to ctor method: LuaEventCallback.New"));
            }
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }
コード例 #11
0
 public static void Register(EventInstance e, LuaEventCallback callback)
 {
     m_eventCallbacks.Add(e, callback);
 }