|
@@ -948,6 +948,21 @@ String Node::validate_child_name(Node *p_child) {
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
+String Node::adjust_name_casing(const String &p_name) {
|
|
|
+ switch (GLOBAL_GET("editor/node_naming/name_casing").operator int()) {
|
|
|
+ case NAME_CASING_PASCAL_CASE:
|
|
|
+ return p_name.capitalize().replace(" ", "");
|
|
|
+ case NAME_CASING_CAMEL_CASE: {
|
|
|
+ String name = p_name.capitalize().replace(" ", "");
|
|
|
+ name[0] = name.to_lower()[0];
|
|
|
+ return name;
|
|
|
+ }
|
|
|
+ case NAME_CASING_SNAKE_CASE:
|
|
|
+ return p_name.capitalize().replace(" ", "_").to_lower();
|
|
|
+ }
|
|
|
+ return p_name;
|
|
|
+}
|
|
|
+
|
|
|
void Node::_validate_child_name(Node *p_child, bool p_force_human_readable) {
|
|
|
/* Make sure the name is unique */
|
|
|
|
|
@@ -1021,19 +1036,8 @@ void Node::_generate_serial_child_name(const Node *p_child, StringName &name) co
|
|
|
//no name and a new name is needed, create one.
|
|
|
|
|
|
name = p_child->get_class();
|
|
|
- // Adjust casing according to project setting. The current type name is expected to be in PascalCase.
|
|
|
- switch (ProjectSettings::get_singleton()->get("editor/node_naming/name_casing").operator int()) {
|
|
|
- case NAME_CASING_PASCAL_CASE:
|
|
|
- break;
|
|
|
- case NAME_CASING_CAMEL_CASE: {
|
|
|
- String n = name;
|
|
|
- n[0] = n.to_lower()[0];
|
|
|
- name = n;
|
|
|
- } break;
|
|
|
- case NAME_CASING_SNAKE_CASE:
|
|
|
- name = String(name).camelcase_to_underscore(true);
|
|
|
- break;
|
|
|
- }
|
|
|
+ // Adjust casing according to project setting.
|
|
|
+ name = adjust_name_casing(name);
|
|
|
}
|
|
|
|
|
|
//quickly test if proposed name exists
|