Ejemplo n.º 1
0
 public static lua_CFunction lua_atpanic(lua_State L, lua_CFunction panicf)
 {
     lua_CFunction old;
       lua_lock(L);
       old = G(L).panic;
       G(L).panic = panicf;
       lua_unlock(L);
       return old;
 }
Ejemplo n.º 2
0
 /// <summary>Creates a new timer.</summary>
 /// <param name="luaState">Pointer to lua_State struct.</param>
 /// <param name="identifier">Identifier of the timer to adjust.</param>
 /// <param name="delay">The delay interval in seconds.</param>
 /// <param name="repetitions">The number of times to repeat the timer (use 0 for infinite repetitions).</param>
 /// <param name="function">Function to call when timer has finished the countdown.</param>
 public static void Create(LuaState luaState, object identifier, double delay, uint repetitions, lua_CFunction function)
 {
     lock (SyncRoot)
     {
         lua_getglobal(luaState, nameof(timer));
         lua_getfield(luaState, -1, nameof(Create));
         lua_pushobject(luaState, identifier);
         lua_pushnumber(luaState, delay);
         lua_pushnumber(luaState, repetitions);
         lua_pushcclosure(luaState, function, 0);
         lua_pcall(luaState, 4);
     }
 }
Ejemplo n.º 3
0
 /// <summary>Adjusts the timer if the timer with the given identifier exists.</summary>
 /// <param name="luaState">Pointer to lua_State struct.</param>
 /// <param name="identifier">Identifier of the timer to adjust.</param>
 /// <param name="delay">The delay interval in seconds.</param>
 /// <param name="repetitions">Repetitions. Use 0 for infinite.</param>
 /// <param name="function">The new function.</param>
 /// <returns>True if succeeded; otherwise false.</returns>
 public static bool Adjust(LuaState luaState, object identifier, double delay, uint repetitions, lua_CFunction function)
 {
     lock (SyncRoot)
     {
         lua_getglobal(luaState, nameof(timer));
         lua_getfield(luaState, -1, nameof(Adjust));
         lua_pushobject(luaState, identifier);
         lua_pushnumber(luaState, delay);
         lua_pushnumber(luaState, repetitions);
         lua_pushcclosure(luaState, function, 0);
         lua_pcall(luaState, 4, 1);
         return lua_toboolean(luaState) == 1;
     }
 }
Ejemplo n.º 4
0
 public static extern void lua_register(IntPtr state, string name, lua_CFunction f);
Ejemplo n.º 5
0
 public static void lua_pushcclosure(lua_CFunction fn, int n) => lua_pushcclosure(_state, fn, n);
Ejemplo n.º 6
0
 private static void newfenv (lua_State L, lua_CFunction cls) {
     lua_createtable(L, 0, 1);
     lua_pushcfunction(L, cls);
     lua_setfield(L, -2, "__close");
 }
Ejemplo n.º 7
0
 public static void lua_pushcclosure(lua_State L, lua_CFunction fn, int n)
 {
     Closure cl;
       lua_lock(L);
       luaC_checkGC(L);
       api_checknelems(L, n);
       cl = luaF_newCclosure(L, n, getcurrenv(L));
       cl.c.f = fn;
       L.top -= n;
       while (n-- != 0)
     setobj2n(L, cl.c.upvalue[n], L.top+n);
       setclvalue(L, L.top, cl);
       lua_assert(iswhite(obj2gco(cl)));
       api_incr_top(L);
       lua_unlock(L);
 }
Ejemplo n.º 8
0
 public static extern void luaL_requiref(lua_State L, String modname, lua_CFunction openf, int glb);
Ejemplo n.º 9
0
 public static extern void lua_pushcclosure(IntPtr L, lua_CFunction fn, int n);
Ejemplo n.º 10
0
 public static extern int lua_cpcall(lua_State L, lua_CFunction func, IntPtr ud);
Ejemplo n.º 11
0
 public static void lua_pushcfunction(lua_State L, lua_CFunction f)
 {
     lua_pushcclosure(L, f, 0);
 }
Ejemplo n.º 12
0
 /* }====================================================== */
 private static void auxopen(LuaState L, CharPtr name,
                      lua_CFunction f, lua_CFunction u)
 {
     lua_pushcfunction(L, u);
     lua_pushcclosure(L, f, 1);
     lua_setfield(L, -2, name);
 }
Ejemplo n.º 13
0
        /*
        private static int luaB_next(LuaState L)
        {
            luaL_checktype(L, 1, LUA_TTABLE);
            lua_settop(L, 2);  // create a 2nd argument if there isn't one
            if (lua_next(L, 1) != 0)
                return 2;
            else
            {
                lua_pushnil(L);
                return 1;
            }
        }

        private static int luaB_pairs(LuaState L)
        {
            luaL_checktype(L, 1, LUA_TTABLE);
            lua_pushvalue(L, lua_upvalueindex(1));  // return generator,
            lua_pushvalue(L, 1);  // state,
            lua_pushnil(L);  // and initial value
            return 3;
        }

        private static int ipairsaux(LuaState L)
        {
            int i = luaL_checkint(L, 2);
            luaL_checktype(L, 1, LUA_TTABLE);
            i++;  // next value
            lua_pushinteger(L, i);
            lua_rawgeti(L, 1, i);
            return (lua_isnil(L, -1)) ? 0 : 2;
        }
        */
        static int pairsmeta(LuaState L, CharPtr method, bool iszero, lua_CFunction iter)
        {
            if (luaL_getmetafield(L, 1, method) == 0)
            {  /* no metamethod? */
                luaL_checktype(L, 1, LUA_TTABLE);  /* argument must be a table */
                lua_pushcfunction(L, iter);  /* will return generator, */
                lua_pushvalue(L, 1);  /* state, */
                if (iszero)
                    lua_pushinteger(L, 0);  /* and initial value */
                else lua_pushnil(L);
            }
            else
            {
                lua_pushvalue(L, 1);  /* argument 'self' to metamethod */
                lua_call(L, 1, 3);  /* get 3 values from metamethod */
            }
            return 3;
        }
Ejemplo n.º 14
0
 public static extern void lua_callk(IntPtr state, int nargs, int nresults, int ctx, lua_CFunction k);
Ejemplo n.º 15
0
 public static extern int lua_yeildk(IntPtr state, int nresult, int ctx, lua_CFunction k);
Ejemplo n.º 16
0
 public static extern lua_CFunction lua_atpanic(IntPtr state, lua_CFunction panicf);
Ejemplo n.º 17
0
 public static void RegisterCFunction(string tableName, string funcName, lua_CFunction function) => RegisterCFunction(_state, tableName, funcName, function);
Ejemplo n.º 18
0
 public static extern lua_CFunction lua_atpanic(LuaState luaState, lua_CFunction panicf);
Ejemplo n.º 19
0
 public static bool ProtectedCall(LuaState luaState, lua_CFunction function)
 {
     lock (SyncRoot)
     {
         lua_getglobal(luaState, nameof(ProtectedCall));
         lua_pushcclosure(luaState, function, 0);
         lua_pcall(luaState, 1, 1);
         return lua_toboolean(luaState) == 1;
     }
 }
Ejemplo n.º 20
0
 public static extern unsafe int lua_cpcall(LuaState luaState, lua_CFunction func, void* ud);
Ejemplo n.º 21
0
 public static void lua_register(lua_State L, CharPtr n, lua_CFunction f)
 {
     lua_pushcfunction(L, f);
     lua_setglobal(L, n);
 }
Ejemplo n.º 22
0
 public static extern void lua_pushcclosure(LuaState luaState, lua_CFunction fn, int n);
Ejemplo n.º 23
0
 public luaL_Reg(CharPtr name, lua_CFunction func)
 {
     this.name = name;
     this.func = func;
 }
Ejemplo n.º 24
0
 public static void RegisterCFunction(LuaState luaState, string tableName, string funcName, lua_CFunction function)
 {
     lua_getfield(luaState, (int)TableIndex.SpecialGlob, tableName);
     if (!lua_type(luaState, -1, Type.Table))
     {
         lua_createtable(luaState, 0, 1);
         lua_setglobal(luaState, tableName);
         lua_pop(luaState);
         lua_getglobal(luaState, tableName);
     }
     lua_pushstring(luaState, funcName);
     lua_pushcclosure(luaState, function, 0);
     lua_settable(luaState, -3);
     lua_pop(luaState);
 }
Ejemplo n.º 25
0
 public static void lua_pushcfunction(IntPtr L, lua_CFunction f)
 {
     lua_pushcclosure(L, f, 0);
 }
Ejemplo n.º 26
0
 public static extern int lua_pcallk(IntPtr state, int nargs, int nresults, int errfunc, int ctx, lua_CFunction k);
Ejemplo n.º 27
0
 public static int lua_cpcall(lua_State L, lua_CFunction func, object ud)
 {
     CCallS c = new CCallS();
       int status;
       lua_lock(L);
       c.func = func;
       c.ud = ud;
       status = luaD_pcall(L, f_Ccall, c, savestack(L, L.top), 0);
       lua_unlock(L);
       return status;
 }
Ejemplo n.º 28
0
 public static unsafe int lua_cpcall(lua_CFunction func, void* ud) => lua_cpcall(_state, func, ud);
Ejemplo n.º 29
0
 public static lua_CFunction lua_atpanic(lua_CFunction panicf) => lua_atpanic(_state, panicf);
Ejemplo n.º 30
0
 public static extern void lua_pushcfunction(IntPtr state, lua_CFunction f);