示例#1
0
        private static void ReadSplitFile <T>(bool hasNoKeyTable) where T : ITable
        {
            T                 luaTable     = default;
            ILuaFile <T>      luaFile      = (ILuaFile <T>)luaTable;
            ILuaSplitFile <T> luaSplitFile = (ILuaSplitFile <T>)luaTable;

            string[] arrayFullPath = Directory.GetFiles(luaSplitFile.GetFolderPath());
            if (arrayFullPath == null || arrayFullPath.Length == 0)
            {
                return;
            }
            List <T> list               = luaFile.GetModel();
            string   mainFileName       = luaSplitFile.GetMainFileName();
            string   childFileHeadStart = luaSplitFile.GetChildFileHeadStart();
            bool     isCheckMainFile    = false;

            for (int fileIndex = 0; fileIndex < arrayFullPath.Length; fileIndex++)
            {
                string fullPath = arrayFullPath[fileIndex];
                if (!isCheckMainFile && fullPath.Contains(mainFileName))
                {
                    isCheckMainFile = true;
                    continue;
                }
                if (fullPath.EndsWith(Config.MetaExtension))
                {
                    continue;
                }
                string luaText = File.ReadAllText(fullPath);
                if (hasNoKeyTable)
                {
                    WriteArrayKeyToFileString(ref luaText);
                }
                T table = ReadLuaSplitFileTable <T>(luaText, childFileHeadStart);
                list.Add(table);
            }
        }