示例#1
0
        private static void WriteSplitFile <T>() where T : ITable, ILuaFile <T>
        {
            T                 luaFile          = default;
            string            mainFileHeadText = luaFile.GetLuaFileHeadStart();
            ILuaSplitFile <T> luaSplitFile     = (ILuaSplitFile <T>)luaFile;
            string            folderPath       = luaSplitFile.GetFolderPath();
            string            mainFileName     = luaSplitFile.GetMainFileName();
            string            requirePath      = luaSplitFile.GetChildFileRequirePath();
            string            fileNameFormat   = luaSplitFile.GetChildFileNameFormat();

            WriteSplitFile <T>(folderPath, mainFileName, mainFileHeadText, requirePath, fileNameFormat);
            if (Tool.IsImplementInterface(typeof(T), typeof(ILuaMultipleSplitFile <,>)))
            {
                WriteMultipleSplitFile <T>();
            }
        }
示例#2
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);
            }
        }