Procházet zdrojové kódy

Merge pull request #72336 from TokageItLab/dupe-animation-name

Tweak the name for duplicated animations in the editor
Rémi Verschelde před 2 roky
rodič
revize
2e792431c0
1 změnil soubory, kde provedl 17 přidání a 2 odebrání
  1. 17 2
      editor/plugins/animation_player_editor_plugin.cpp

+ 17 - 2
editor/plugins/animation_player_editor_plugin.cpp

@@ -1105,9 +1105,24 @@ void AnimationPlayerEditor::_animation_duplicate() {
 		return;
 	}
 
+	int count = 2;
 	String new_name = current;
-	while (player->has_animation(new_name)) {
-		new_name = new_name + " (copy)";
+	PackedStringArray split = new_name.split("_");
+	int last_index = split.size() - 1;
+	if (last_index > 0 && split[last_index].is_valid_int() && split[last_index].to_int() >= 0) {
+		count = split[last_index].to_int();
+		split.remove_at(last_index);
+		new_name = String("_").join(split);
+	}
+	while (true) {
+		String attempt = new_name;
+		attempt += vformat("_%d", count);
+		if (player->has_animation(attempt)) {
+			count++;
+			continue;
+		}
+		new_name = attempt;
+		break;
 	}
 
 	if (new_name.contains("/")) {