Exemplo n.º 1
0
        public static bool NewTable(ScriptState luaState, string fullPath)
        {
            var runtime   = LuaRuntimePool.GetRuntime(luaState);
            var oldTop    = LuaCore.GetTop(luaState);
            var paths     = GetSearchPaths(fullPath);
            var tableName = paths[0];

            if (paths.Length > 1)
            {
                LuaCore.GetGlobal(luaState, paths[0]);
                if (!TableNotFound(runtime, luaState, -1, paths[0]))
                {
                    return(false);
                }
                for (int i = 1; i < paths.Length - 1; i++)
                {
                    LuaCore.PushString(luaState, paths[i]);
                    LuaCore.GetTable(luaState, -2);
                    if (!TableNotFound(runtime, luaState, -1, paths[i]))
                    {
                        return(false);
                    }
                }
                tableName = paths[paths.Length - 1];
            }
            LuaCore.CreateTable(luaState);
            LuaCore.SetGlobal(luaState, tableName);
            LuaCore.SetTop(luaState, oldTop);
            return(true);
        }
Exemplo n.º 2
0
        public override int Reg2Env()
        {
            var luaState = State;

            LuaCore.PushString(luaState, GlobalName);
            LuaCore.CreateTable(luaState);
            LuaCore.CreateTable(luaState);
            LuaCore.PushString(luaState, "__mode");
            LuaCore.PushString(luaState, "v");
            LuaCore.SetTable(luaState, -3);
            LuaCore.SetMetatable(luaState, -2);
            LuaCore.SetGlobalTable(luaState);
            return(1);
        }