Explorar el Código

Name nodes added from drag & drop by `name_casing`

(cherry picked from commit 07a8f0fe3822edf39df737dcd82071e8ab80b4b0)
foxydevloper hace 4 años
padre
commit
f807c7e569
Se han modificado 2 ficheros con 22 adiciones y 7 borrados
  1. 16 1
      editor/plugins/canvas_item_editor_plugin.cpp
  2. 6 6
      scene/main/node.h

+ 16 - 1
editor/plugins/canvas_item_editor_plugin.cpp

@@ -6279,7 +6279,22 @@ bool CanvasItemEditorViewport::_cyclical_dependency_exists(const String &p_targe
 }
 
 void CanvasItemEditorViewport::_create_nodes(Node *parent, Node *child, String &path, const Point2 &p_point) {
-	child->set_name(path.get_file().get_basename());
+	// Adjust casing according to project setting. The file name is expected to be in snake_case, but will work for others.
+	String name = path.get_file().get_basename();
+	switch (ProjectSettings::get_singleton()->get("editor/node_naming/name_casing").operator int()) {
+		case NAME_CASING_PASCAL_CASE:
+			name = name.capitalize().replace(" ", "");
+			break;
+		case NAME_CASING_CAMEL_CASE:
+			name = name.capitalize().replace(" ", "");
+			name[0] = name.to_lower()[0];
+			break;
+		case NAME_CASING_SNAKE_CASE:
+			name = name.capitalize().replace(" ", "_").to_lower();
+			break;
+	}
+	child->set_name(name);
+
 	Ref<Texture> texture = Ref<Texture>(Object::cast_to<Texture>(ResourceCache::get(path)));
 	Size2 texture_size = texture->get_size();
 

+ 6 - 6
scene/main/node.h

@@ -64,6 +64,12 @@ public:
 #endif
 	};
 
+	enum NameCasing {
+		NAME_CASING_PASCAL_CASE,
+		NAME_CASING_CAMEL_CASE,
+		NAME_CASING_SNAKE_CASE
+	};
+
 	struct Comparator {
 		bool operator()(const Node *p_a, const Node *p_b) const { return p_b->is_greater_than(p_a); }
 	};
@@ -138,12 +144,6 @@ private:
 
 	} data;
 
-	enum NameCasing {
-		NAME_CASING_PASCAL_CASE,
-		NAME_CASING_CAMEL_CASE,
-		NAME_CASING_SNAKE_CASE
-	};
-
 	Ref<MultiplayerAPI> multiplayer;
 
 	void _print_tree_pretty(const String &prefix, const bool last);