44 lines
1.6 KiB
C#
44 lines
1.6 KiB
C#
using Luban.Common.Protos;
|
|
using Luban.Job.Cfg.Cache;
|
|
using Luban.Job.Cfg.Utils;
|
|
using Luban.Job.Common.Generate;
|
|
using Luban.Job.Common.Utils;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Luban.Job.Cfg.Generate
|
|
{
|
|
[Render("data_bin")]
|
|
[Render("data_json")]
|
|
[Render("data_json2")]
|
|
[Render("data_bson")]
|
|
[Render("data_lua")]
|
|
[Render("data_xml")]
|
|
[Render("data_yaml")]
|
|
[Render("data_protobuf_bin")]
|
|
[Render("data_protobuf_json")]
|
|
[Render("data_msgpack")]
|
|
[Render("data_flatbuffers_json")]
|
|
class DataScatterRender : DataRenderBase
|
|
{
|
|
public override void Render(GenContext ctx)
|
|
{
|
|
string genType = ctx.GenType;
|
|
foreach (var table in ctx.ExportTables)
|
|
{
|
|
ctx.Tasks.Add(Task.Run(() =>
|
|
{
|
|
var file = RenderFileUtil.GetOutputFileName(genType, table.OutputDataFile, ctx.GenArgs.OutputDataFileExtension);
|
|
var records = ctx.Assembly.GetTableExportDataList(table);
|
|
if (!FileRecordCacheManager.Ins.TryGetRecordOutputData(table, records, genType, out string md5))
|
|
{
|
|
var content = DataExporterUtil.ToOutputData(table, records, genType);
|
|
md5 = CacheFileUtil.GenStringOrBytesMd5AndAddCache(file, content);
|
|
FileRecordCacheManager.Ins.AddCachedRecordOutputData(table, records, genType, md5);
|
|
}
|
|
ctx.GenDataFilesInOutputDataDir.Add(new FileInfo() { FilePath = file, MD5 = md5 });
|
|
}));
|
|
}
|
|
}
|
|
}
|
|
}
|