1
0

refactor: refactor enum migration but not finished

This commit is contained in:
2026-01-26 22:52:56 +08:00
parent c68bdce37b
commit 9cb4d50f22
22 changed files with 669 additions and 54 deletions

View File

@@ -0,0 +1,6 @@
{%- set benum = first(payload.iter_enums()) %}
const CkErrorReflectionArray CKERROR {
{%- for entry in benum.iter_entries() %}
{ LibCmo::CK2::CKERROR::{{ entry.get_entry_name() }}, { u8"{{ entry.get_entry_name() }}", u8"{{- entry.get_entry_comment() }}" } },
{%- endfor %}
};

View File

@@ -0,0 +1,4 @@
struct CkErrorReflection { const char8_t* mName; const char8_t* mDescription; };
using CkErrorReflectionArray = std::vector<std::pair<LibCmo::CK2::CKERROR, CkErrorReflection>>;
const CkErrorReflectionArray CKERROR;

View File

@@ -0,0 +1,6 @@
{%- set benum = first(payload.iter_enums()) %}
const CkClassidReflectionArray CK_CLASSID {
{%- for entry in benum.iter_entries() %}
{ LibCmo::CK2::CK_CLASSID::{{ entry.get_entry_name() }}, { { {% for item in entry.iter_hierarchy(benum) %} u8"{{ item.get_enum_name() }}" {%- if not loop.last -%}, {%- endif %} {%- endfor %} } } },
{%- endfor %}
};

View File

@@ -0,0 +1,5 @@
struct CkClassidReflection { std::vector<const char8_t*> mHierarchy; };
using CkClassidReflectionArray = std::vector<std::pair<LibCmo::CK2::CK_CLASSID, CkClassidReflection>>;
const CkClassidReflectionArray CK_CLASSID;

View File

@@ -0,0 +1,13 @@
{%- for benum in payload.iter_enums() %}
{%- if benum.get_enum_comment() is not none %}
/**
{{ benum.get_enum_comment() }}
*/
{%- endif %}
{% if benum.get_use_flags() %}[Flags]{%- endif %}
public enum {{ benum.get_enum_name() }} : {% if benum.get_can_unsigned() -%} uint {%- else -%} int {%- endif %} {
{%- for entry in benum.iter_entries() %}
{{ entry.get_entry_name() }} {%- if entry.get_entry_value() is not none %} = {{ entry.get_entry_value() }} {%- endif %}, {%- if entry.get_entry_comment() is not none %} /**< {{ entry.get_entry_comment() }} */ {%- endif %}
{%- endfor %}
};
{%- endfor %}

View File

@@ -0,0 +1,7 @@
{%- for benum in payload.iter_enums() %}
const GenericReflectionArray<LibCmo::{{ extra.parts }}::{{ benum.get_enum_name() }}> {{ benum.get_enum_name() }} {
{%- for entry in benum.iter_entries() %}
{ LibCmo::{{ extra.parts }}::{{ benum.get_enum_name() }}::{{ entry.get_entry_name() }}, { u8"{{ entry.get_entry_name() }}" } },
{%- endfor %}
};
{%- endfor %}

View File

@@ -0,0 +1,7 @@
{%- for benum in payload.iter_enums() %}
public static readonly System.Collections.Generic.Dictionary<{{ benum.get_enum_name() }}, string> {{ benum.get_enum_name() }} = new System.Collections.Generic.Dictionary<{{ benum.get_enum_name() }}, string>() {
{%- for entry in benum.iter_entries() %}
{ {{ benum.get_enum_name() }}.{{ entry.get_entry_name() }}, "{{ entry.get_entry_name() }}" },
{%- endfor %}
};
{%- endfor %}

View File

@@ -0,0 +1,8 @@
struct GenericReflection { const char8_t* mName; };
template<typename T>
requires std::is_enum_v<T>
using GenericReflectionArray = std::vector<std::pair<T, GenericReflection>>;
{% for benum in payload.iter_enums() %}
extern const GenericReflectionArray<LibCmo::{{ extra.parts }}::{{ benum.get_enum_name() }}> {{ benum.get_enum_name() }};
{%- endfor %}

View File

@@ -0,0 +1,12 @@
{%- for benum in payload.iter_enums() %}
{%- if benum.get_enum_comment() is not none %}
/**
{{ benum.get_enum_comment() }}
*/
{%- endif %}
enum class {{ benum.get_enum_name() }} : {% if benum.get_can_unsigned() -%} CKDWORD {%- else -%} CKINT {%- endif %} {
{%- for entry in benum.iter_entries() %}
{{ entry.get_entry_name() }} {%- if entry.get_entry_value() is not none %} = {{ entry.get_entry_value() }} {%- endif %}, {%- if entry.get_entry_comment() is not none %} /**< {{ entry.get_entry_comment() }} */ {%- endif %}
{%- endfor %}
};
{%- endfor %}

View File

@@ -0,0 +1,14 @@
import enum
{% for benum in payload.iter_enums() %}
{%- if benum.get_enum_comment() is not none %}
/**
{{ benum.get_enum_comment() }}
*/
{%- endif %}
class {{ benum.get_enum_name() }}(enum.IntEnum):
{%- for entry in benum.iter_entries() %}
{{ entry.get_entry_name() }} = {% if entry.get_entry_value() is none -%} auto() {%- else -%} {{ entry.get_entry_value() }} {%- endif %} {%- if entry.get_entry_comment() is not none %}
"""{{ entry.get_entry_comment() }}""" {%- endif %}
{%- endfor %}
{%- endfor %}