mirror of
https://github.com/Alex-Rachel/TEngine.git
synced 2025-08-14 16:51:28 +00:00
Start TEngine3.0
Start TEngine3.0
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
{{
|
||||
name = x.gdscript_full_name
|
||||
is_abstract_type = x.is_abstract_type
|
||||
parent_def_type = x.parent_def_type
|
||||
export_fields = x.export_fields
|
||||
hierarchy_export_fields = x.hierarchy_export_fields
|
||||
}}
|
||||
class {{name}}:
|
||||
{{if parent_def_type}}
|
||||
extends {{parent_def_type.gdscript_full_name}}
|
||||
{{end}}
|
||||
{{~if x.is_abstract_type~}}
|
||||
static func from_json(_json_):
|
||||
var type = _json_['{{x.json_type_name_key}}']
|
||||
match type:
|
||||
{{~ for child in x.hierarchy_not_abstract_children~}}
|
||||
"{{cs_impl_data_type child x}}":
|
||||
return {{child.gdscript_full_name}}.new(_json_)
|
||||
{{~end~}}
|
||||
_:
|
||||
assert(false)
|
||||
|
||||
{{~end~}}
|
||||
{{~ for field in export_fields ~}}
|
||||
var {{field.convention_name}}
|
||||
{{~end~}}
|
||||
{{~if parent_def_type~}}
|
||||
func _init(_json_).(_json_) -> void:
|
||||
{{~else~}}
|
||||
func _init(_json_) -> void:
|
||||
{{~end~}}
|
||||
{{~if export_fields~}}
|
||||
{{~ for field in export_fields ~}}
|
||||
{{gdscript_deserialize_field ('self.' + field.convention_name) '_json_' field.name field.ctype}}
|
||||
{{~end~}}
|
||||
{{~end~}}
|
||||
{{~if export_fields.empty?}}
|
||||
pass
|
||||
{{~end~}}
|
@@ -0,0 +1 @@
|
||||
class_name Types
|
@@ -0,0 +1,92 @@
|
||||
{{
|
||||
name = x.gdscript_full_name
|
||||
key_type = x.key_ttype
|
||||
key_type1 = x.key_ttype1
|
||||
key_type2 = x.key_ttype2
|
||||
value_type = x.value_ttype
|
||||
}}
|
||||
class {{name}}:
|
||||
{{~if x.is_map_table ~}}
|
||||
var _data_map = {}
|
||||
var _data_list = []
|
||||
|
||||
func _init(_json_) -> void:
|
||||
self._data_map = {}
|
||||
self._data_list = []
|
||||
|
||||
for _json2_ in _json_:
|
||||
var _v
|
||||
{{gdscript_deserialize_value '_v' '_json2_' value_type}}
|
||||
self._data_list.append(_v)
|
||||
self._data_map[_v.{{x.index_field.convention_name}}] = _v
|
||||
|
||||
func get_data_map() -> Dictionary:
|
||||
return self._data_map
|
||||
func get_data_list() -> Array:
|
||||
return self._data_list
|
||||
|
||||
func get(key):
|
||||
return self._data_map.get(key)
|
||||
{{~else if x.multi_key ~}}
|
||||
{{~ for INDEX in x.index_list ~}}
|
||||
var _data_{{INDEX.index_field.convention_name}}_map = {}
|
||||
{{~ end ~}}
|
||||
var _data_list = []
|
||||
|
||||
func _init(_json_) -> void:
|
||||
{{~ for INDEX in x.index_list ~}}
|
||||
self._data_{{INDEX.index_field.convention_name}}_map = {}
|
||||
{{~ end ~}}
|
||||
self._data_list = []
|
||||
|
||||
for _json2_ in _json_:
|
||||
var _v
|
||||
{{gdscript_deserialize_value '_v' '_json2_' value_type}}
|
||||
self._data_list.append(_v)
|
||||
{{~ for INDEX in x.index_list ~}}
|
||||
self._data_{{INDEX.index_field.convention_name}}_map[_v.{{INDEX.index_field.convention_name}}] = _v
|
||||
{{~ end ~}}
|
||||
|
||||
func get_data_map() -> Dictionary:
|
||||
return self._data_{{x.index_field.convention_name }}_map
|
||||
func get_data_list() -> Array:
|
||||
return self._data_list
|
||||
{{~ for INDEX in x.index_list ~}}
|
||||
func get_by_{{INDEX.index_field.convention_name}}({{INDEX.index_field.convention_name}}):
|
||||
return self._data_{{INDEX.index_field.name}}_map.get({{INDEX.index_field.convention_name}})
|
||||
{{~ end ~}}
|
||||
|
||||
func get(key):
|
||||
return self._data_{{x.index_field.convention_name }}_map.get(key)
|
||||
{{~else if x.is_list_table ~}}
|
||||
var _data_list
|
||||
func _init(_json_) -> void:
|
||||
self._data_list = []
|
||||
|
||||
for _json2_ in _json_:
|
||||
var _v
|
||||
{{gdscript_deserialize_value '_v' '_json2_' value_type}}
|
||||
self._data_list.append(_v)
|
||||
|
||||
func get_data_list():
|
||||
return self._data_list
|
||||
|
||||
func get(index):
|
||||
return self._data_list[index]
|
||||
{{~else~}}
|
||||
var _data: Dictionary
|
||||
func _init(_json_) -> void:
|
||||
assert(len(_json_) == 1, 'table mode=one, but size != 1')
|
||||
self._data = _json_[0]
|
||||
|
||||
func get_data() -> Dictionary:
|
||||
return self._data
|
||||
|
||||
{{~ for field in value_type.bean.hierarchy_export_fields ~}}
|
||||
{{~if field.comment != '' ~}}
|
||||
# {{field.escape_comment}}
|
||||
{{~end~}}
|
||||
func {{field.convention_name}}():
|
||||
return self._data.{{field.convention_name}}
|
||||
{{~end~}}
|
||||
{{~end~}}
|
@@ -0,0 +1,13 @@
|
||||
{{
|
||||
name = x.name
|
||||
namespace = x.namespace
|
||||
tables = x.tables
|
||||
}}
|
||||
{{~ for table in tables ~}}
|
||||
var {{table.name}}: {{table.gdscript_full_name}}
|
||||
{{~end~}}
|
||||
|
||||
func _init(loader) -> void:
|
||||
{{~for table in tables ~}}
|
||||
self.{{table.name}} = {{table.gdscript_full_name}}.new(loader.call('{{table.output_data_file}}'))
|
||||
{{~end~}}
|
Reference in New Issue
Block a user