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>(); } }
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); } }