private static void WriteSplitFile <T>(string folderPath, string mainFileName, string mainFileHeadText, string requirePath, string fileNameFormat) where T : ITable, ILuaFile <T> { T luaFile = default; ILuaSplitFile <T> luaSplitFile = (ILuaSplitFile <T>)luaFile; List <T> list = luaFile.GetModel(); string fileExtension = luaSplitFile.GetFileExtension(); m_mainFileTextBuilder.Clear(); for (ushort index = 0; index < list.Count; index++) { T childFileData = list[index]; string fileName = string.Format(fileNameFormat, childFileData.GetKey()); string path = requirePath + fileName; string requireText = string.Format(LuaFormat.RequireFunction, path); m_mainFileTextBuilder.Append(requireText); string filePath = Tool.CombineFilePath(folderPath, fileName, fileExtension); Write(filePath, childFileData.GetWriteFileString()); } string mainFilePath = Tool.CombineFilePath(folderPath, mainFileName, fileExtension); string mainFileText = m_mainFileTextBuilder.ToString(); WriteWithHeadText(mainFilePath, mainFileHeadText, mainFileText); }