Przeglądaj źródła

Merge pull request #110231 from fstxz/fix_shader_path

Fix invalid suggested file name when saving resource from a scene that hasn't been saved yet
Thaddeus Crews 3 tygodni temu
rodzic
commit
f987cf8a8a
2 zmienionych plików z 5 dodań i 2 usunięć
  1. 4 1
      editor/docks/scene_tree_dock.cpp
  2. 1 1
      editor/editor_node.cpp

+ 4 - 1
editor/docks/scene_tree_dock.cpp

@@ -4207,7 +4207,7 @@ void SceneTreeDock::attach_shader_to_selected(int p_preferred_mode) {
 	}
 
 	String path = selected_shader_material->get_path();
-	if (path.is_empty()) {
+	if (path.get_base_dir().is_empty()) {
 		String root_path;
 		if (editor_data->get_edited_scene_root()) {
 			root_path = editor_data->get_edited_scene_root()->get_scene_file_path();
@@ -4218,6 +4218,9 @@ void SceneTreeDock::attach_shader_to_selected(int p_preferred_mode) {
 		} else {
 			shader_name = selected_shader_material->get_name();
 		}
+		if (shader_name.is_empty()) {
+			shader_name = "new_shader";
+		}
 		if (root_path.is_empty()) {
 			path = String("res://").path_join(shader_name);
 		} else {

+ 1 - 1
editor/editor_node.cpp

@@ -1690,7 +1690,7 @@ void EditorNode::save_resource_as(const Ref<Resource> &p_resource, const String
 				file->set_current_file(String());
 			}
 		}
-	} else if (!p_resource->get_path().is_empty()) {
+	} else if (!p_resource->get_path().get_base_dir().is_empty()) {
 		file->set_current_path(p_resource->get_path());
 		if (!extensions.is_empty()) {
 			const String ext = p_resource->get_path().get_extension().to_lower();