39 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Smarty
		
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Smarty
		
	
	
	
| {{
 | |
|     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~}} |