Ejemplo n.º 1
0
 public LuaThreadWrapper(LuaFunction function) : base()
 {
     Logger.Log(string.Format("LuaThreadWrapper.ctor/1: {0}", LuaNativeMethods.lua_gettop(function.VariablePointer)));
     this.state    = LuaState.Get(function.VariablePointer);
     this.thread   = LuaNativeMethods.lua_newthread(function.VariablePointer);
     this.valueref = LuaNativeMethods.luaL_ref(function.VariablePointer, LuaIndexes.LUARegistryIndex);
     function.Push(function.VariablePointer);
     LuaNativeMethods.lua_xmove(function.VariablePointer, this.thread, 1);
     Logger.Log(string.Format("LuaThreadWrapper.ctor/2: {0}", LuaNativeMethods.lua_gettop(function.VariablePointer)));
 }
Ejemplo n.º 2
0
        public static void Register(IntPtr ptr)
        {
            LuaObject.GetTypeTable(ptr, "Slua");
            LuaObject.AddMember(ptr, CreateAction, false);
            LuaObject.AddMember(ptr, CreateClass, false);
            LuaObject.AddMember(ptr, GetClass, false);
            LuaObject.AddMember(ptr, Iterator, false);
            LuaObject.AddMember(ptr, ToString, false);
            LuaObject.AddMember(ptr, As, false);
            LuaObject.AddMember(ptr, IsNull, false);
            LuaObject.AddMember(ptr, MakeArray, false);
            LuaObject.AddMember(ptr, ToBytes, false);
            LuaObject.AddMember(ptr, "out", GetOut, null, false);
            LuaObject.AddMember(ptr, "version", GetVersion, null, false);

            LuaFunction function = LuaState.Get(ptr).DoString(ClassFunction) as LuaFunction;

            function.Push(ptr);
            LuaNativeMethods.lua_setfield(ptr, -3, "Class");
            LuaObject.CreateTypeMetatable(ptr, null, typeof(Helper));
        }