From f5e9eef725e9a492508ae788adcda35dcfbf8717 Mon Sep 17 00:00:00 2001 From: walon Date: Thu, 26 Aug 2021 11:44:10 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E7=89=B9=E6=80=A7=E3=80=91cfg=20cs=5F?= =?UTF-8?q?unity=5Fjson=E6=94=AF=E6=8C=81=E5=8A=A8=E6=80=81=E6=9C=AC?= =?UTF-8?q?=E5=9C=B0=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Luban.Job.Cfg/Source/Defs/DefField.cs | 2 +- .../TypeVisitors/CsJsonUnityDeserialize.cs | 3 ++- .../Templates/config/cs_bin/bean.tpl | 4 ++-- .../Templates/config/cs_json/bean.tpl | 4 ++-- .../Templates/config/cs_unity_json/bean.tpl | 20 ++++++++++++++++--- .../Templates/config/cs_unity_json/table.tpl | 19 +++++++++++++----- .../Templates/config/cs_unity_json/tables.tpl | 7 +++++++ .../Templates/db/cs_async/bean.tpl | 2 +- .../Templates/db/cs_sync/bean.tpl | 2 +- 9 files changed, 47 insertions(+), 16 deletions(-) diff --git a/src/Luban.Job.Cfg/Source/Defs/DefField.cs b/src/Luban.Job.Cfg/Source/Defs/DefField.cs index 46d8e1b..dd24ba1 100644 --- a/src/Luban.Job.Cfg/Source/Defs/DefField.cs +++ b/src/Luban.Job.Cfg/Source/Defs/DefField.cs @@ -67,7 +67,7 @@ namespace Luban.Job.Cfg.Defs get { var table = Assembly.GetCfgTable(Ref.FirstTable); - return $"{table.ValueTType.Apply(CsDefineTypeName.Ins)} {CsRefVarName} {{get; private set;}}"; + return $"{table.ValueTType.Apply(CsDefineTypeName.Ins)} {CsRefVarName} {{ get; private set; }}"; } } diff --git a/src/Luban.Job.Cfg/Source/TypeVisitors/CsJsonUnityDeserialize.cs b/src/Luban.Job.Cfg/Source/TypeVisitors/CsJsonUnityDeserialize.cs index 60eeb50..c6e3a01 100644 --- a/src/Luban.Job.Cfg/Source/TypeVisitors/CsJsonUnityDeserialize.cs +++ b/src/Luban.Job.Cfg/Source/TypeVisitors/CsJsonUnityDeserialize.cs @@ -1,3 +1,4 @@ +using Luban.Job.Cfg.Datas; using Luban.Job.Common.Types; using Luban.Job.Common.TypeVisitors; using System; @@ -75,7 +76,7 @@ namespace Luban.Job.Cfg.TypeVisitors public string Accept(TText type, string json, string x) { - return $"{{ if(!{json}.IsString) {{ throw new SerializationException(); }} {x} = {json}; }}"; + return $"{{ if(!{json}[\"{DText.KEY_NAME}\"].IsString) {{ throw new SerializationException(); }} {x}{TText.L10N_FIELD_SUFFIX} = {json}[\"{DText.KEY_NAME}\"]; if(!{json}[\"{DText.TEXT_NAME}\"].IsString) {{ throw new SerializationException(); }} {x} = {json}[\"{DText.TEXT_NAME}\"]; }}"; } public string Accept(TBean type, string json, string x) diff --git a/src/Luban.Server/Templates/config/cs_bin/bean.tpl b/src/Luban.Server/Templates/config/cs_bin/bean.tpl index e5d0086..2ce28f2 100644 --- a/src/Luban.Server/Templates/config/cs_bin/bean.tpl +++ b/src/Luban.Server/Templates/config/cs_bin/bean.tpl @@ -52,7 +52,7 @@ public {{x.cs_class_modifier}} partial class {{name}} : {{if parent_def_type}} { /// {{field.comment}} /// {{~end~}} - public {{cs_define_type field.ctype}} {{field.cs_style_name}} {get; private set;} + public {{cs_define_type field.ctype}} {{field.cs_style_name}} { get; private set; } {{~if field.index_field~}} public readonly Dictionary<{{cs_define_type field.index_field.ctype}}, {{cs_define_type field.ctype.element_type}}> {{field.cs_style_name}}_Index = new Dictionary<{{cs_define_type field.index_field.ctype}}, {{cs_define_type field.ctype.element_type}}>(); {{~end~}} @@ -60,7 +60,7 @@ public {{x.cs_class_modifier}} partial class {{name}} : {{if parent_def_type}} { public {{field.cs_ref_validator_define}} {{~end~}} {{~if field.gen_text_key~}} - public {{cs_define_text_key_field field}} {get;} + public {{cs_define_text_key_field field}} { get; } {{~end~}} {{~end~}} diff --git a/src/Luban.Server/Templates/config/cs_json/bean.tpl b/src/Luban.Server/Templates/config/cs_json/bean.tpl index 4e4ed21..78848f1 100644 --- a/src/Luban.Server/Templates/config/cs_json/bean.tpl +++ b/src/Luban.Server/Templates/config/cs_json/bean.tpl @@ -61,7 +61,7 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{parent} /// {{field.comment}} /// {{~end~}} - public {{cs_define_type field.ctype}} {{field.cs_style_name}} {get; private set; } + public {{cs_define_type field.ctype}} {{field.cs_style_name}} { get; private set; } {{~if field.index_field~}} public readonly Dictionary<{{cs_define_type field.index_field.ctype}}, {{cs_define_type field.ctype.element_type}}> {{field.cs_style_name}}_Index = new Dictionary<{{cs_define_type field.index_field.ctype}}, {{cs_define_type field.ctype.element_type}}>(); {{~end~}} @@ -69,7 +69,7 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{parent} public {{field.cs_ref_validator_define}} {{~end~}} {{~if field.gen_text_key~}} - public {{cs_define_text_key_field field}} {get;} + public {{cs_define_text_key_field field}} { get; } {{~end~}} {{~end~}} 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 c1d4e70..bd827c0 100644 --- a/src/Luban.Server/Templates/config/cs_unity_json/bean.tpl +++ b/src/Luban.Server/Templates/config/cs_unity_json/bean.tpl @@ -62,13 +62,16 @@ public {{x.cs_class_modifier}} partial class {{name}} : {{if parent_def_type}} { /// {{field.comment}} /// {{~end~}} - public readonly {{cs_define_type field.ctype}} {{field.cs_style_name}}; + public {{cs_define_type field.ctype}} {{field.cs_style_name}} { get; private set; } {{~if field.index_field~}} public readonly Dictionary<{{cs_define_type field.index_field.ctype}}, {{cs_define_type field.ctype.element_type}}> {{field.cs_style_name}}_Index = new Dictionary<{{cs_define_type field.index_field.ctype}}, {{cs_define_type field.ctype.element_type}}>(); {{~end~}} {{~if field.gen_ref~}} public {{field.cs_ref_validator_define}} {{~end~}} + {{~if field.gen_text_key~}} + public {{cs_define_text_key_field field}} { get; } + {{~end~}} {{~end~}} {{~if !x.is_abstract_type~}} @@ -88,10 +91,21 @@ public {{x.cs_class_modifier}} partial class {{name}} : {{if parent_def_type}} { {{cs_recursive_resolve field '_tables'}} {{~end~}} {{~end~}} - OnResolveFinish(_tables); } - partial void OnResolveFinish(Dictionary _tables); + public {{x.cs_method_modifier}} void TranslateText(System.Func translator) + { + {{~if parent_def_type~}} + base.TranslateText(translator); + {{~end~}} + {{~ for field in export_fields ~}} + {{~if field.gen_text_key~}} + {{cs_translate_text field 'translator'}} + {{~else if field.has_recursive_text~}} + {{cs_recursive_translate_text field 'translator'}} + {{~end~}} + {{~end~}} + } public override string ToString() { 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 90d7423..ccd2d18 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.comment}} /// {{~end~}} -public sealed partial class {{name}} +public sealed class {{name}} { {{~if x.is_map_table ~}} private readonly Dictionary<{{cs_define_type key_type}}, {{cs_define_type value_type}}> _dataMap; @@ -54,7 +54,14 @@ public sealed partial class {{name}} { v.Resolve(_tables); } - OnResolveFinish(_tables); + } + + public void TranslateText(System.Func translator) + { + foreach(var v in _dataList) + { + v.TranslateText(translator); + } } {{~else~}} @@ -86,12 +93,14 @@ public sealed partial class {{name}} public void Resolve(Dictionary _tables) { _data.Resolve(_tables); - OnResolveFinish(_tables); + } + + public void TranslateText(System.Func translator) + { + _data.TranslateText(translator); } {{~end~}} - - partial void OnResolveFinish(Dictionary _tables); } } \ 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 5fde66f..5b3b35d 100644 --- a/src/Luban.Server/Templates/config/cs_unity_json/tables.tpl +++ b/src/Luban.Server/Templates/config/cs_unity_json/tables.tpl @@ -31,6 +31,13 @@ public sealed partial class {{name}} {{table.name}}.Resolve(tables); {{~end~}} } + + public void TranslateText(System.Func translator) + { + {{~for table in tables ~}} + {{table.name}}.TranslateText(translator); + {{~end~}} + } } } diff --git a/src/Luban.Server/Templates/db/cs_async/bean.tpl b/src/Luban.Server/Templates/db/cs_async/bean.tpl index 3fb8fe1..f8948d5 100644 --- a/src/Luban.Server/Templates/db/cs_async/bean.tpl +++ b/src/Luban.Server/Templates/db/cs_async/bean.tpl @@ -20,7 +20,7 @@ namespace {{x.namespace_with_top_module}} public interface {{readonly_name}} {{if parent_def_type}}: IReadOnly{{x.parent_def_type.name}} {{end}} { {{~ for field in fields~}} - {{db_cs_readonly_define_type field.ctype}} {{field.cs_style_name}} {get;} + {{db_cs_readonly_define_type field.ctype}} {{field.cs_style_name}} { get; } {{~end~}} } diff --git a/src/Luban.Server/Templates/db/cs_sync/bean.tpl b/src/Luban.Server/Templates/db/cs_sync/bean.tpl index 3fb8fe1..f8948d5 100644 --- a/src/Luban.Server/Templates/db/cs_sync/bean.tpl +++ b/src/Luban.Server/Templates/db/cs_sync/bean.tpl @@ -20,7 +20,7 @@ namespace {{x.namespace_with_top_module}} public interface {{readonly_name}} {{if parent_def_type}}: IReadOnly{{x.parent_def_type.name}} {{end}} { {{~ for field in fields~}} - {{db_cs_readonly_define_type field.ctype}} {{field.cs_style_name}} {get;} + {{db_cs_readonly_define_type field.ctype}} {{field.cs_style_name}} { get; } {{~end~}} }