2024-04-21 21:44:53 +08:00
|
|
|
{%- assign indent = Indent -%}
|
|
|
|
|
{%- if NameSpace != blank -%}
|
|
|
|
|
{{ indent }}namespace {{ NameSpace }} {
|
|
|
|
|
{% capture newIndent %}{{ indent }} {% endcapture %}
|
|
|
|
|
{%- assign indent = newIndent -%}
|
|
|
|
|
{%- endif -%}
|
|
|
|
|
{{ indent }}struct {{ Name }}_Static_{{MetaName}} {
|
|
|
|
|
{{ indent }} consteval static auto __StaticFields() {
|
|
|
|
|
{{ indent }} return std::make_tuple({% for field in FieldList %}&{{Name}}::{{field.Name}}{% unless forloop.last %}, {% endunless %}{% endfor %});
|
|
|
|
|
{{ indent }} };
|
|
|
|
|
|
|
|
|
|
{{ indent }} consteval static auto __MakeStaticFields() {
|
|
|
|
|
{{ indent }} return std::array{
|
|
|
|
|
{{ indent }} {%- for field in FieldList -%}
|
|
|
|
|
{{ indent }} {%- if field.IsMethod -%}
|
2024-04-25 21:47:15 +08:00
|
|
|
{{ indent }} StaticMethodField(&{{Name}}::{{field.Name}}, FName("{{field.Name}}"){% if field.Meta %}, {{field.Meta}}{% endif %}),
|
2024-04-21 21:44:53 +08:00
|
|
|
{{ indent }} {%- else -%}
|
2024-04-25 21:47:15 +08:00
|
|
|
{{ indent }} StaticMemberField(&{{Name}}::{{field.Name}}, FName("{{field.Name}}"){% if field.Meta %}, {{field.Meta}}{% endif %}),
|
2024-04-21 21:44:53 +08:00
|
|
|
{{ indent }} {%- endif -%}
|
|
|
|
|
{{ indent }} {%- endfor -%}
|
|
|
|
|
{{ indent }} };
|
|
|
|
|
{{ indent }} };
|
|
|
|
|
|
|
|
|
|
{{ indent }} consteval static int Size() {
|
|
|
|
|
{{ indent }} return fetch_meta_size<{{ Name }}_Static_{{MetaName}}>();
|
|
|
|
|
{{ indent }} };
|
|
|
|
|
{{ indent }}};
|
|
|
|
|
|
|
|
|
|
{{ indent }}struct {{ Name }}_{{MetaName}} : public Meta {
|
|
|
|
|
{{ indent }} using MyStatic = {{ Name }}_Static_{{MetaName}};
|
|
|
|
|
{{ indent }} using MyUClass = UClass_Meta<{{ Name }}, {{ ParentName }}>;;
|
|
|
|
|
{{ indent }} inline static char s_data[MyStatic::Size()]{};
|
|
|
|
|
{{ indent }} static auto __MakeFields() {
|
|
|
|
|
{{ indent }} char* memory = &s_data[0];
|
|
|
|
|
{{ indent }} return std::array{
|
|
|
|
|
{{ indent }} {%- for field in FieldList -%}
|
|
|
|
|
{{ indent }} {%- if field.IsMethod -%}
|
2024-04-25 21:47:15 +08:00
|
|
|
{{ indent }} StaticMethodField(&{{Name}}::{{field.Name}}, FName("{{field.Name}}"){% if field.Meta %}, {{field.Meta}}{% endif %}),
|
2024-04-21 21:44:53 +08:00
|
|
|
{{ indent }} {%- else -%}
|
2024-04-25 21:47:15 +08:00
|
|
|
{{ indent }} StaticMemberField(&{{Name}}::{{field.Name}}, FName("{{field.Name}}"){% if field.Meta %}, {{field.Meta}}{% endif %}),
|
2024-04-21 21:44:53 +08:00
|
|
|
{{ indent }} {%- endif -%}
|
|
|
|
|
{{ indent }} {%- endfor -%}
|
|
|
|
|
{{ indent }} };
|
|
|
|
|
{{ indent }} };
|
|
|
|
|
{{ indent }}};
|
|
|
|
|
{% if NameSpace != blank %}
|
|
|
|
|
{{ Indent }}}
|
|
|
|
|
{% endif %}
|