*上一个提交好像还修复了CG合成的一处问题
This commit is contained in:
Chenx221 2024-10-25 16:37:11 +08:00
parent 0ea149e129
commit 6d8cb84ab4
Signed by: chenx221
GPG Key ID: D7A9EC07024C3021
2 changed files with 57 additions and 51 deletions

View File

@ -199,18 +199,59 @@ namespace EscudeTools
MaxDegreeOfParallelism = 6 // 设置最大并行线程数 MaxDegreeOfParallelism = 6 // 设置最大并行线程数
}; };
//ST //表情还要另取? // //ST //表情还要另取?
Parallel.ForEach(stts, parallelOptions, stt => // Parallel.ForEach(stts, parallelOptions, stt =>
//foreach (StTable stt in stts) // //foreach (StTable stt in stts)
// {
// if (stt.order == 0) //仅提取鉴赏中有的ST
// return;
// //continue;
// string targetFilename = Path.Combine(outputDir, stt.name); //最后保存可用的文件名
// LsfData? lsfData = lm.FindLsfDataByName(stt.file) ?? throw new Exception($"错误,未找到与{stt.file}对应的lsf数据");
// List<int> pendingList = [];
// List<string> pendingListFn = [];
// foreach (string o in stt.option)
// {
// List<int> t = TableManagercs.ParseOptions(lsfData, o);
// if (t.Count == 0)
// continue;
// pendingList.AddRange(t);
// foreach (int i in t)
// {
// pendingListFn.Add(lsfData.lli[i].nameStr);
// }
// }
// pendingList = TableManagercs.OrderLayer(pendingList, pendingListFn);
// int n = 0;
// foreach (string o in faces[(int)stt.face].faceOptions)
// {
// List<int> pendingListCopy = new(pendingList);
// List<int> t = TableManagercs.ParseOptions(lsfData, o);
// if (t.Count == 0)
// continue;
// pendingListCopy.AddRange(t);
// if (File.Exists(targetFilename + $"_{n++}.png"))
// continue;
// if (!ImageManager.Process(lsfData, [.. pendingListCopy], targetFilename + $"_{n++}.png"))
// throw new Exception("Process Fail");
// else
// Console.WriteLine($"Export {stt.name}_{n - 1} Success");
// }
// });
////}
//EV
Parallel.ForEach(evts, parallelOptions, evt =>
//foreach (EvTable evt in evts)
{ {
if (stt.order == 0) //仅提取鉴赏中有的ST if (evt.order == 0) //仅提取鉴赏中有的CG
return; return;
//continue; //continue;
string targetFilename = Path.Combine(outputDir, stt.name); //最后保存可用的文件名 string targetFilename = Path.Combine(outputDir, evt.name + ".png"); //最后保存可用的文件名
LsfData? lsfData = lm.FindLsfDataByName(stt.file) ?? throw new Exception($"错误,未找到与{stt.file}对应的lsf数据"); LsfData lsfData = lm.FindLsfDataByName(evt.file) ?? throw new Exception("Something Wrong");
List<int> pendingList = []; List<int> pendingList = [];
List<string> pendingListFn = []; List<string> pendingListFn = [];
foreach (string o in stt.option) foreach (string o in evt.option)
{ {
List<int> t = TableManagercs.ParseOptions(lsfData, o); List<int> t = TableManagercs.ParseOptions(lsfData, o);
if (t.Count == 0) if (t.Count == 0)
@ -222,48 +263,13 @@ namespace EscudeTools
} }
} }
pendingList = TableManagercs.OrderLayer(pendingList, pendingListFn); pendingList = TableManagercs.OrderLayer(pendingList, pendingListFn);
int n = 0; if (pendingList[0] != 0)
foreach (string o in faces[(int)stt.face].faceOptions) pendingList.Insert(0, 0);
{ if (!ImageManager.Process(lsfData, [.. pendingList], targetFilename))
List<int> pendingListCopy = new(pendingList); throw new Exception("Process Fail");
List<int> t = TableManagercs.ParseOptions(lsfData, o); else
if (t.Count == 0) Console.WriteLine($"Export {evt.name} Success");
continue; });
pendingListCopy.AddRange(t);
if (File.Exists(targetFilename + $"_{n++}.png"))
continue;
if (!ImageManager.Process(lsfData, [.. pendingListCopy], targetFilename + $"_{n++}.png"))
throw new Exception("Process Fail");
else
Console.WriteLine($"Export {stt.name}_{n - 1} Success");
}
});
//}
////EV
////Parallel.ForEach(evts, parallelOptions, evt =>
//foreach (EvTable evt in evts)
//{
// if (evt.order == 0) //仅提取鉴赏中有的CG
// //return;
// continue;
// string targetFilename = Path.Combine(outputDir, evt.name + ".png"); //最后保存可用的文件名
// LsfData lsfData = lm.FindLsfDataByName(evt.file) ?? throw new Exception("Something Wrong");
// List<int> pendingList = [];
// foreach (string o in evt.option)
// {
// List<int> t = TableManagercs.ParseOptions(lsfData, o);
// if (t.Count == 0)
// continue;
// pendingList.AddRange(t);
// }
// if (pendingList[0] != 0)
// pendingList.Insert(0, 0);
// if (!ImageManager.Process(lsfData, [.. pendingList], targetFilename))
// throw new Exception("Process Fail");
// else
// Console.WriteLine($"Export {evt.name} Success");
// //});
//} //}
} }

View File

@ -2,7 +2,7 @@
"profiles": { "profiles": {
"EscudeTools": { "EscudeTools": {
"commandName": "Project", "commandName": "Project",
"commandLineArgs": "G:\\x221.local\\lab2\\st\\3\r\n\"G:\\x221.local\\lab2\\db_graphics.db\"" "commandLineArgs": "G:\\x221.local\\lab2\\ev\\1\r\n\"G:\\x221.local\\lab2\\db_graphics.db\""
} }
} }
} }