mirror of
https://github.com/Relintai/broken_seals.git
synced 2025-01-08 01:49:35 +01:00
Implemented getter and setter generation for class variables.
This commit is contained in:
parent
54b2330447
commit
7541121668
@ -2,8 +2,8 @@ tool
|
|||||||
extends EditorPlugin
|
extends EditorPlugin
|
||||||
|
|
||||||
#TODO
|
#TODO
|
||||||
|
#.cpp gen
|
||||||
#class variables to contructors
|
#class variables to contructors
|
||||||
#getters setters from class variables
|
|
||||||
#bind methods autogen
|
#bind methods autogen
|
||||||
|
|
||||||
func _enter_tree():
|
func _enter_tree():
|
||||||
@ -255,7 +255,14 @@ class GDSScope:
|
|||||||
s += "\n"
|
s += "\n"
|
||||||
|
|
||||||
indents += " "
|
indents += " "
|
||||||
|
|
||||||
|
if type == GDScopeType.GDSCOPE_TYPE_CLASS:
|
||||||
|
for l in scope_lines:
|
||||||
|
var gs : String = create_cpp_getter_setter(l, true, indents)
|
||||||
|
|
||||||
|
if gs != "":
|
||||||
|
s += gs + "\n"
|
||||||
|
|
||||||
for subs in subscopes:
|
for subs in subscopes:
|
||||||
var scstr : String = subs.get_cpp_header_string(current_scope_level + 1)
|
var scstr : String = subs.get_cpp_header_string(current_scope_level + 1)
|
||||||
|
|
||||||
@ -302,7 +309,64 @@ class GDSScope:
|
|||||||
|
|
||||||
return s
|
return s
|
||||||
|
|
||||||
func transform_variable_assign(line : String = "") -> String:
|
func create_cpp_getter_setter(line : String, header : bool, indent : String) -> String:
|
||||||
|
if !line.begins_with("var "):
|
||||||
|
return ""
|
||||||
|
|
||||||
|
var cpp_var : String = transform_variable_to_cpp(line)
|
||||||
|
|
||||||
|
var equals_index = cpp_var.find("=")
|
||||||
|
if equals_index != -1:
|
||||||
|
cpp_var = cpp_var.substr(0, equals_index)
|
||||||
|
|
||||||
|
cpp_var = cpp_var.strip_edges()
|
||||||
|
|
||||||
|
var name_start_index : int = cpp_var.find_last(" ")
|
||||||
|
var var_type : String = cpp_var.substr(0, name_start_index).strip_edges()
|
||||||
|
var var_name : String = cpp_var.substr(name_start_index + 1).strip_edges()
|
||||||
|
|
||||||
|
var ret_final : String = ""
|
||||||
|
|
||||||
|
if var_type == "int" || var_type == "float" || var_type == "bool" || var_type == "RID":
|
||||||
|
ret_final += indent + var_type + " get_" + var_name + "() const"
|
||||||
|
|
||||||
|
if !header:
|
||||||
|
ret_final += " {\n";
|
||||||
|
ret_final += indent + " return " + var_name + ";\n"
|
||||||
|
ret_final += indent + "}\n\n";
|
||||||
|
else:
|
||||||
|
ret_final += ";\n"
|
||||||
|
|
||||||
|
ret_final += indent + "void set_" + var_name + "(const " + var_type + " val)"
|
||||||
|
|
||||||
|
if !header:
|
||||||
|
ret_final += " {\n";
|
||||||
|
ret_final += indent + var_name + " = val;\n"
|
||||||
|
ret_final += indent + "}\n\n";
|
||||||
|
else:
|
||||||
|
ret_final += ";\n"
|
||||||
|
else:
|
||||||
|
ret_final += indent + var_type + " get_" + var_name + "()"
|
||||||
|
|
||||||
|
if !header:
|
||||||
|
ret_final += " {\n";
|
||||||
|
ret_final += indent + " return " + var_name + ";\n"
|
||||||
|
ret_final += indent + "}\n\n";
|
||||||
|
else:
|
||||||
|
ret_final += ";\n"
|
||||||
|
|
||||||
|
ret_final += indent + "void set_" + var_name + "(const " + var_type + " &val)"
|
||||||
|
|
||||||
|
if !header:
|
||||||
|
ret_final += " {\n";
|
||||||
|
ret_final += indent + var_name + " = val;\n"
|
||||||
|
ret_final += indent + "}\n\n";
|
||||||
|
else:
|
||||||
|
ret_final += ";\n"
|
||||||
|
|
||||||
|
return ret_final
|
||||||
|
|
||||||
|
func transform_variable_assign(line : String) -> String:
|
||||||
|
|
||||||
if !line.ends_with(" as "):
|
if !line.ends_with(" as "):
|
||||||
return line
|
return line
|
||||||
@ -311,10 +375,9 @@ class GDSScope:
|
|||||||
if !line.ends_with(".new()"):
|
if !line.ends_with(".new()"):
|
||||||
return line
|
return line
|
||||||
|
|
||||||
|
|
||||||
return line
|
return line
|
||||||
|
|
||||||
func transform_variable_to_cpp(line : String = "") -> String:
|
func transform_variable_to_cpp(line : String) -> String:
|
||||||
line = line.replace("var ", "")
|
line = line.replace("var ", "")
|
||||||
|
|
||||||
var var_final : String = ""
|
var var_final : String = ""
|
||||||
|
Loading…
Reference in New Issue
Block a user