From f9abe09a8dd6be49172193019daad2bb7dc19543 Mon Sep 17 00:00:00 2001 From: walon Date: Tue, 25 Jan 2022 15:02:18 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BC=98=E5=8C=96=E3=80=91=E7=94=9F?= =?UTF-8?q?=E6=88=90=E7=9A=84cfg=20c#=E4=BB=A3=E7=A0=81=E9=83=BD=E4=B8=BAp?= =?UTF-8?q?artial=E7=B1=BB=E3=80=82=E5=B9=B6=E4=B8=94=E6=96=B0=E5=A2=9EPos?= =?UTF-8?q?tInit=E5=92=8CPostResolve=E4=B8=A4=E4=B8=AApartital=E5=87=BD?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Luban.Server/Templates/config/cs_bin/bean.tpl | 9 +++++++-- src/Luban.Server/Templates/config/cs_bin/table.tpl | 12 +++++++++++- src/Luban.Server/Templates/config/cs_bin/tables.tpl | 7 ++++++- src/Luban.Server/Templates/config/cs_json/bean.tpl | 10 ++++++++-- src/Luban.Server/Templates/config/cs_json/table.tpl | 11 ++++++++++- src/Luban.Server/Templates/config/cs_json/tables.tpl | 7 ++++++- .../Templates/config/cs_unity_json/bean.tpl | 10 ++++++++-- .../Templates/config/cs_unity_json/table.tpl | 11 ++++++++++- .../Templates/config/cs_unity_json/tables.tpl | 7 ++++++- 9 files changed, 72 insertions(+), 12 deletions(-) diff --git a/src/Luban.Server/Templates/config/cs_bin/bean.tpl b/src/Luban.Server/Templates/config/cs_bin/bean.tpl index 809f758..46fbc04 100644 --- a/src/Luban.Server/Templates/config/cs_bin/bean.tpl +++ b/src/Luban.Server/Templates/config/cs_bin/bean.tpl @@ -16,7 +16,7 @@ namespace {{x.namespace_with_top_module}} /// {{x.escape_comment}} /// {{~end~}} -public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{x.parent}} {{else}} Bright.Config.BeanBase {{end}} +public {{x.cs_class_modifier}} partial class {{name}} : {{if parent_def_type}} {{x.parent}} {{else}} Bright.Config.BeanBase {{end}} { public {{name}}(ByteBuf _buf) {{if parent_def_type}} : base(_buf) {{end}} { @@ -29,6 +29,7 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{x.paren } {{~end~}} {{~end~}} + PostInit(); } public static {{name}} Deserialize{{name}}(ByteBuf _buf) @@ -84,6 +85,7 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{x.paren {{cs_recursive_resolve field '_tables'}} {{~end~}} {{~end~}} + PostResolve(); } public {{x.cs_method_modifier}} void TranslateText(System.Func translator) @@ -108,6 +110,9 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{x.paren {{~end~}} + "}"; } - } + + partial void PostInit(); + partial void PostResolve(); +} } diff --git a/src/Luban.Server/Templates/config/cs_bin/table.tpl b/src/Luban.Server/Templates/config/cs_bin/table.tpl index 94958e1..4f54377 100644 --- a/src/Luban.Server/Templates/config/cs_bin/table.tpl +++ b/src/Luban.Server/Templates/config/cs_bin/table.tpl @@ -15,7 +15,7 @@ namespace {{x.namespace_with_top_module}} /// {{x.escape_comment}} /// {{~end~}} -public sealed class {{name}} +public partial class {{name}} { {{~if x.is_map_table ~}} private readonly Dictionary<{{cs_define_type key_type}}, {{cs_define_type value_type}}> _dataMap; @@ -33,6 +33,7 @@ public sealed class {{name}} _dataList.Add(_v); _dataMap.Add(_v.{{x.index_field.convention_name}}, _v); } + PostInit(); } public Dictionary<{{cs_define_type key_type}}, {{cs_define_type value_type}}> DataMap => _dataMap; @@ -52,6 +53,7 @@ public sealed class {{name}} { v.Resolve(_tables); } + PostResolve(); } public void TranslateText(System.Func translator) @@ -99,8 +101,10 @@ public sealed class {{name}} {{~end~}} } {{~end~}} + PostInit(); } + public List<{{cs_define_type value_type}}> DataList => _dataList; {{~if x.is_union_index~}} @@ -117,6 +121,7 @@ public sealed class {{name}} { v.Resolve(_tables); } + PostResolve(); } public void TranslateText(System.Func translator) @@ -135,6 +140,7 @@ public sealed class {{name}} int n = _buf.ReadSize(); if (n != 1) throw new SerializationException("table mode=one, but size != 1"); {{cs_deserialize '_buf' '_data' value_type}} + PostInit(); } @@ -153,6 +159,7 @@ public sealed class {{name}} public void Resolve(Dictionary _tables) { _data.Resolve(_tables); + PostResolve(); } public void TranslateText(System.Func translator) @@ -161,6 +168,9 @@ public sealed class {{name}} } {{~end~}} + + partial void PostInit(); + partial void PostResolve(); } } \ No newline at end of file diff --git a/src/Luban.Server/Templates/config/cs_bin/tables.tpl b/src/Luban.Server/Templates/config/cs_bin/tables.tpl index 0c318cf..b97692e 100644 --- a/src/Luban.Server/Templates/config/cs_bin/tables.tpl +++ b/src/Luban.Server/Templates/config/cs_bin/tables.tpl @@ -9,7 +9,7 @@ using Bright.Serialization; namespace {{namespace}} { -public sealed class {{name}} +public partial class {{name}} { {{~for table in tables ~}} {{~if table.comment != '' ~}} @@ -28,9 +28,11 @@ public sealed class {{name}} tables.Add("{{table.full_name}}", {{table.name}}); {{~end~}} + PostInit(); {{~for table in tables ~}} {{table.name}}.Resolve(tables); {{~end~}} + PostResolve(); } public void TranslateText(System.Func translator) @@ -39,6 +41,9 @@ public sealed class {{name}} {{table.name}}.TranslateText(translator); {{~end~}} } + + partial void PostInit(); + partial void PostResolve(); } } \ No newline at end of file diff --git a/src/Luban.Server/Templates/config/cs_json/bean.tpl b/src/Luban.Server/Templates/config/cs_json/bean.tpl index dd48e5c..527755b 100644 --- a/src/Luban.Server/Templates/config/cs_json/bean.tpl +++ b/src/Luban.Server/Templates/config/cs_json/bean.tpl @@ -18,7 +18,7 @@ namespace {{x.namespace_with_top_module}} /// {{x.escape_comment}} /// {{~end~}} -public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{parent}} {{else}} Bright.Config.BeanBase {{end}} +public {{x.cs_class_modifier}} partial class {{name}} : {{if parent_def_type}} {{parent}} {{else}} Bright.Config.BeanBase {{end}} { public {{name}}(JsonElement _json) {{if parent_def_type}} : base(_json) {{end}} { @@ -28,6 +28,7 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{parent} foreach(var _v in {{field.convention_name}}) { {{field.convention_name}}_Index.Add(_v.{{field.index_field.convention_name}}, _v); } {{~end~}} {{~end~}} + PostInit(); } public {{name}}({{~for field in hierarchy_export_fields }}{{cs_define_type field.ctype}} {{field.name}}{{if !for.last}},{{end}} {{end}}) {{if parent_def_type}} : base({{- for field in parent_def_type.hierarchy_export_fields }}{{field.name}}{{if !for.last}},{{end}}{{end}}) {{end}} @@ -38,6 +39,7 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{parent} foreach(var _v in {{field.convention_name}}) { {{field.convention_name}}_Index.Add(_v.{{field.index_field.convention_name}}, _v); } {{~end~}} {{~end~}} + PostInit(); } public static {{name}} Deserialize{{name}}(JsonElement _json) @@ -93,6 +95,7 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{parent} {{cs_recursive_resolve field '_tables'}} {{~end~}} {{~end~}} + PostResolve(); } public {{x.cs_method_modifier}} void TranslateText(System.Func translator) @@ -117,5 +120,8 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{parent} {{~end~}} + "}"; } - } + + partial void PostInit(); + partial void PostResolve(); +} } diff --git a/src/Luban.Server/Templates/config/cs_json/table.tpl b/src/Luban.Server/Templates/config/cs_json/table.tpl index e5b875d..08d715d 100644 --- a/src/Luban.Server/Templates/config/cs_json/table.tpl +++ b/src/Luban.Server/Templates/config/cs_json/table.tpl @@ -18,7 +18,7 @@ namespace {{x.namespace_with_top_module}} /// {{x.escape_comment}} /// {{~end~}} -public sealed class {{name}} +public sealed partial class {{name}} { {{~if x.is_map_table ~}} private readonly Dictionary<{{cs_define_type key_type}}, {{cs_define_type value_type}}> _dataMap; @@ -35,6 +35,7 @@ public sealed class {{name}} _dataList.Add(_v); _dataMap.Add(_v.{{x.index_field.convention_name}}, _v); } + PostInit(); } public Dictionary<{{cs_define_type key_type}}, {{cs_define_type value_type}}> DataMap => _dataMap; @@ -54,6 +55,7 @@ public sealed class {{name}} { v.Resolve(_tables); } + PostResolve(); } public void TranslateText(System.Func translator) @@ -101,6 +103,7 @@ public sealed class {{name}} {{~end~}} } {{~end~}} + PostInit(); } public List<{{cs_define_type value_type}}> DataList => _dataList; @@ -119,6 +122,7 @@ public sealed class {{name}} { v.Resolve(_tables); } + PostResolve(); } public void TranslateText(System.Func translator) @@ -137,6 +141,7 @@ public sealed class {{name}} int n = _json.GetArrayLength(); if (n != 1) throw new SerializationException("table mode=one, but size != 1"); _data = {{cs_define_type value_type}}.Deserialize{{value_type.bean.name}}(_json[0]); + PostInit(); } {{~ for field in value_type.bean.hierarchy_export_fields ~}} @@ -154,6 +159,7 @@ public sealed class {{name}} public void Resolve(Dictionary _tables) { _data.Resolve(_tables); + PostResolve(); } public void TranslateText(System.Func translator) @@ -162,6 +168,9 @@ public sealed class {{name}} } {{~end~}} + + partial void PostInit(); + partial void PostResolve(); } } \ No newline at end of file diff --git a/src/Luban.Server/Templates/config/cs_json/tables.tpl b/src/Luban.Server/Templates/config/cs_json/tables.tpl index 1a2c8d0..2dcf994 100644 --- a/src/Luban.Server/Templates/config/cs_json/tables.tpl +++ b/src/Luban.Server/Templates/config/cs_json/tables.tpl @@ -8,7 +8,7 @@ using System.Text.Json; namespace {{namespace}} { -public sealed class {{name}} +public sealed partial class {{name}} { {{~for table in tables ~}} {{~if table.comment != '' ~}} @@ -26,10 +26,12 @@ public sealed class {{name}} {{table.name}} = new {{table.full_name}}(loader("{{table.output_data_file}}")); tables.Add("{{table.full_name}}", {{table.name}}); {{~end~}} + PostInit(); {{~for table in tables ~}} {{table.name}}.Resolve(tables); {{~end~}} + PostResolve(); } public void TranslateText(System.Func translator) @@ -38,6 +40,9 @@ public sealed class {{name}} {{table.name}}.TranslateText(translator); {{~end~}} } + + partial void PostInit(); + partial void PostResolve(); } } diff --git a/src/Luban.Server/Templates/config/cs_unity_json/bean.tpl b/src/Luban.Server/Templates/config/cs_unity_json/bean.tpl index 201151c..b01b9a4 100644 --- a/src/Luban.Server/Templates/config/cs_unity_json/bean.tpl +++ b/src/Luban.Server/Templates/config/cs_unity_json/bean.tpl @@ -18,7 +18,7 @@ namespace {{x.namespace_with_top_module}} /// {{x.escape_comment}} /// {{~end~}} -public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{parent}} {{else}} Bright.Config.BeanBase {{end}} +public {{x.cs_class_modifier}} partial class {{name}} : {{if parent_def_type}} {{parent}} {{else}} Bright.Config.BeanBase {{end}} { public {{name}}(JSONNode _json) {{if parent_def_type}} : base(_json) {{end}} { @@ -28,6 +28,7 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{parent} foreach(var _v in {{field.convention_name}}) { {{field.convention_name}}_Index.Add(_v.{{field.index_field.convention_name}}, _v); } {{~end~}} {{~end~}} + PostInit(); } public {{name}}({{~for field in hierarchy_export_fields }}{{cs_define_type field.ctype}} {{field.name}}{{if !for.last}},{{end}} {{end}}) {{if parent_def_type}} : base({{- for field in parent_def_type.hierarchy_export_fields }}{{field.name}}{{if !for.last}},{{end}}{{end}}) {{end}} @@ -38,6 +39,7 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{parent} foreach(var _v in {{field.convention_name}}) { {{field.convention_name}}_Index.Add(_v.{{field.index_field.convention_name}}, _v); } {{~end~}} {{~end~}} + PostInit(); } public static {{name}} Deserialize{{name}}(JSONNode _json) @@ -94,6 +96,7 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{parent} {{cs_recursive_resolve field '_tables'}} {{~end~}} {{~end~}} + PostResolve(); } public {{x.cs_method_modifier}} void TranslateText(System.Func translator) @@ -118,5 +121,8 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{parent} {{~end~}} + "}"; } - } + + partial void PostInit(); + partial void PostResolve(); +} } diff --git a/src/Luban.Server/Templates/config/cs_unity_json/table.tpl b/src/Luban.Server/Templates/config/cs_unity_json/table.tpl index b6940ad..ea9b774 100644 --- a/src/Luban.Server/Templates/config/cs_unity_json/table.tpl +++ b/src/Luban.Server/Templates/config/cs_unity_json/table.tpl @@ -18,7 +18,7 @@ namespace {{x.namespace_with_top_module}} /// {{x.escape_comment}} /// {{~end~}} -public sealed class {{name}} +public sealed partial class {{name}} { {{~if x.is_map_table ~}} private readonly Dictionary<{{cs_define_type key_type}}, {{cs_define_type value_type}}> _dataMap; @@ -35,6 +35,7 @@ public sealed class {{name}} _dataList.Add(_v); _dataMap.Add(_v.{{x.index_field.convention_name}}, _v); } + PostInit(); } public Dictionary<{{cs_define_type key_type}}, {{cs_define_type value_type}}> DataMap => _dataMap; @@ -54,6 +55,7 @@ public sealed class {{name}} { v.Resolve(_tables); } + PostResolve(); } public void TranslateText(System.Func translator) @@ -101,6 +103,7 @@ public sealed class {{name}} {{~end~}} } {{~end~}} + PostInit(); } public List<{{cs_define_type value_type}}> DataList => _dataList; @@ -119,6 +122,7 @@ public sealed class {{name}} { v.Resolve(_tables); } + PostResolve(); } public void TranslateText(System.Func translator) @@ -141,6 +145,7 @@ public sealed class {{name}} } if (_json.Count != 1) throw new SerializationException("table mode=one, but size != 1"); _data = {{cs_define_type value_type}}.Deserialize{{value_type.bean.name}}(_json[0]); + PostInit(); } {{~ for field in value_type.bean.hierarchy_export_fields ~}} @@ -158,6 +163,7 @@ public sealed class {{name}} public void Resolve(Dictionary _tables) { _data.Resolve(_tables); + PostResolve(); } public void TranslateText(System.Func translator) @@ -166,6 +172,9 @@ public sealed class {{name}} } {{~end~}} + + partial void PostInit(); + partial void PostResolve(); } } \ No newline at end of file diff --git a/src/Luban.Server/Templates/config/cs_unity_json/tables.tpl b/src/Luban.Server/Templates/config/cs_unity_json/tables.tpl index 57fbc4f..7a8d7b2 100644 --- a/src/Luban.Server/Templates/config/cs_unity_json/tables.tpl +++ b/src/Luban.Server/Templates/config/cs_unity_json/tables.tpl @@ -8,7 +8,7 @@ using SimpleJSON; namespace {{namespace}} { -public sealed class {{name}} +public sealed partial class {{name}} { {{~for table in tables ~}} {{~if table.comment != '' ~}} @@ -26,10 +26,12 @@ public sealed class {{name}} {{table.name}} = new {{table.full_name}}(loader("{{table.output_data_file}}")); tables.Add("{{table.full_name}}", {{table.name}}); {{~end~}} + PostInit(); {{~for table in tables ~}} {{table.name}}.Resolve(tables); {{~end~}} + PostResolve(); } public void TranslateText(System.Func translator) @@ -38,6 +40,9 @@ public sealed class {{name}} {{table.name}}.TranslateText(translator); {{~end~}} } + + partial void PostInit(); + partial void PostResolve(); } }