48 lines
1.5 KiB
C#
48 lines
1.5 KiB
C#
using Luban.Common.Protos;
|
|
using Luban.Job.Cfg.Defs;
|
|
using Luban.Job.Common;
|
|
using Luban.Job.Common.Defs;
|
|
using Luban.Job.Common.Generate;
|
|
using Luban.Job.Common.Tpl;
|
|
using Luban.Job.Common.Utils;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Luban.Job.Cfg.Generate
|
|
{
|
|
[Render("code_cs_unity_editor_json")]
|
|
class CsUnityEditorRender : TemplateCodeRenderBase
|
|
{
|
|
override protected string RenderTemplateDir => "cs_unity_editor_json";
|
|
|
|
|
|
public override string Render(DefEnum e)
|
|
{
|
|
var template = StringTemplateManager.Ins.GetTemplate($"config/{RenderTemplateDir}/enum");
|
|
var result = template.RenderCode(e);
|
|
return result;
|
|
}
|
|
|
|
public override void Render(GenContext ctx)
|
|
{
|
|
ctx.Assembly.CurrentLanguage = ELanguage.CS;
|
|
foreach (var c in ctx.Assembly.Types.Values)
|
|
{
|
|
if (!(c is DefBean) && !(c is DefEnum))
|
|
{
|
|
continue;
|
|
}
|
|
ctx.Tasks.Add(Task.Run(() =>
|
|
{
|
|
var content = FileHeaderUtil.ConcatAutoGenerationHeader(RenderAny(c), ELanguage.CS);
|
|
var file = RenderFileUtil.GetDefTypePath(c.FullName, ELanguage.CS);
|
|
var md5 = CacheFileUtil.GenMd5AndAddCache(file, content);
|
|
ctx.GenCodeFilesInOutputCodeDir.Add(new FileInfo() { FilePath = file, MD5 = md5 });
|
|
}));
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|