【特性】新增 --input_convert_data_dir 参数,用于覆盖table的input值,从convert目录读取每个表的源数据
parent
21676657a5
commit
d292f12070
|
|
@ -14,6 +14,9 @@ namespace Luban.Job.Cfg
|
||||||
[Option("output_data_dir", Required = true, HelpText = "output data directory")]
|
[Option("output_data_dir", Required = true, HelpText = "output data directory")]
|
||||||
public string OutputDataDir { get; set; }
|
public string OutputDataDir { get; set; }
|
||||||
|
|
||||||
|
[Option("input_convert_data_dir", Required = false, HelpText = "override input data dir with convert data dir")]
|
||||||
|
public string InputConvertDataDir { get; set; }
|
||||||
|
|
||||||
[Option("output_data_resource_list_file", Required = false, HelpText = "output resource list file")]
|
[Option("output_data_resource_list_file", Required = false, HelpText = "output resource list file")]
|
||||||
public string OutputDataResourceListFile { get; set; }
|
public string OutputDataResourceListFile { get; set; }
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -173,7 +173,7 @@ namespace Luban.Job.Cfg
|
||||||
hasLoadCfgData = true;
|
hasLoadCfgData = true;
|
||||||
var timer = new ProfileTimer();
|
var timer = new ProfileTimer();
|
||||||
timer.StartPhase("load config data");
|
timer.StartPhase("load config data");
|
||||||
await DataLoaderUtil.LoadCfgDataAsync(agent, ass, args.InputDataDir, args.PatchName, args.PatchInputDataDir);
|
await DataLoaderUtil.LoadCfgDataAsync(agent, ass, args.InputDataDir, args.PatchName, args.PatchInputDataDir, args.InputConvertDataDir);
|
||||||
timer.EndPhaseAndLog();
|
timer.EndPhaseAndLog();
|
||||||
|
|
||||||
if (needL10NTextConvert)
|
if (needL10NTextConvert)
|
||||||
|
|
|
||||||
|
|
@ -95,10 +95,26 @@ namespace Luban.Job.Cfg.Utils
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task LoadTableAsync(IAgent agent, DefTable table, string dataDir, string patchName, string patchDataDir)
|
public static async Task LoadTableAsync(IAgent agent, DefTable table, string dataDir, string patchName, string patchDataDir, string inputConvertDataDir)
|
||||||
{
|
{
|
||||||
var mainLoadTasks = new List<Task<List<Record>>>();
|
var mainLoadTasks = new List<Task<List<Record>>>();
|
||||||
var mainGenerateTask = GenerateLoadRecordFromFileTasksAsync(agent, table, dataDir, table.InputFiles, mainLoadTasks);
|
|
||||||
|
// 如果指定了 inputConvertDataDir, 则覆盖dataDir为 inputConvertDataDir
|
||||||
|
// 同时 修改所有表的input为 table.FullName
|
||||||
|
string finalDataDir;
|
||||||
|
List<string> finalInputFiles;
|
||||||
|
if (string.IsNullOrWhiteSpace(inputConvertDataDir))
|
||||||
|
{
|
||||||
|
finalDataDir = dataDir;
|
||||||
|
finalInputFiles = table.InputFiles;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
finalDataDir = inputConvertDataDir;
|
||||||
|
finalInputFiles = new List<string>() { table.FullName };
|
||||||
|
}
|
||||||
|
|
||||||
|
var mainGenerateTask = GenerateLoadRecordFromFileTasksAsync(agent, table, finalDataDir, finalInputFiles, mainLoadTasks);
|
||||||
|
|
||||||
var patchLoadTasks = new List<Task<List<Record>>>();
|
var patchLoadTasks = new List<Task<List<Record>>>();
|
||||||
|
|
||||||
|
|
@ -138,7 +154,7 @@ namespace Luban.Job.Cfg.Utils
|
||||||
s_logger.Trace("table:{name} record num:{num}", table.FullName, mainRecords.Count);
|
s_logger.Trace("table:{name} record num:{num}", table.FullName, mainRecords.Count);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task LoadCfgDataAsync(IAgent agent, DefAssembly ass, string dataDir, string patchName, string patchDataDir)
|
public static async Task LoadCfgDataAsync(IAgent agent, DefAssembly ass, string dataDir, string patchName, string patchDataDir, string inputConvertDataDir)
|
||||||
{
|
{
|
||||||
var ctx = agent;
|
var ctx = agent;
|
||||||
List<DefTable> exportTables = ass.Types.Values.Where(t => t is DefTable ct && ct.NeedExport).Select(t => (DefTable)t).ToList();
|
List<DefTable> exportTables = ass.Types.Values.Where(t => t is DefTable ct && ct.NeedExport).Select(t => (DefTable)t).ToList();
|
||||||
|
|
@ -152,7 +168,7 @@ namespace Luban.Job.Cfg.Utils
|
||||||
genDataTasks.Add(Task.Run(async () =>
|
genDataTasks.Add(Task.Run(async () =>
|
||||||
{
|
{
|
||||||
long beginTime = TimeUtil.NowMillis;
|
long beginTime = TimeUtil.NowMillis;
|
||||||
await LoadTableAsync(agent, table, dataDir, patchName, patchDataDir);
|
await LoadTableAsync(agent, table, dataDir, patchName, patchDataDir, inputConvertDataDir);
|
||||||
long endTime = TimeUtil.NowMillis;
|
long endTime = TimeUtil.NowMillis;
|
||||||
if (endTime - beginTime > 100)
|
if (endTime - beginTime > 100)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue