Ver código fonte

Merge pull request #61004 from V-Sekai/reimport_files

Bind EditorFileSystem::reimport_files and improve docs
Rémi Verschelde 3 anos atrás
pai
commit
4379383ccd
2 arquivos alterados com 12 adições e 1 exclusões
  1. 11 1
      doc/classes/EditorFileSystem.xml
  2. 1 0
      editor/editor_file_system.cpp

+ 11 - 1
doc/classes/EditorFileSystem.xml

@@ -42,6 +42,15 @@
 				Returns [code]true[/code] of the filesystem is being scanned.
 			</description>
 		</method>
+		<method name="reimport_files">
+			<return type="void" />
+			<argument index="0" name="files" type="PackedStringArray" />
+			<description>
+				Reimports a set of files. Call this if these files or their [code].import[/code] files were directly edited by script or an external program.
+				If the file type changed or the file was newly created, use [method update_file] or [method scan].
+				[b]Note:[/b] This function blocks until the import is finished. However, the main loop iteration, including timers and [method Node._process], will occur during the import process due to progress bar updates. Avoid calls to [method reimport_files] or [method scan] while an import is in progress.
+			</description>
+		</method>
 		<method name="scan">
 			<return type="void" />
 			<description>
@@ -58,7 +67,8 @@
 			<return type="void" />
 			<argument index="0" name="path" type="String" />
 			<description>
-				Update a file information. Call this if an external program (not Godot) modified the file.
+				Add a file in an existing directory, or schedule file information to be updated on editor restart. Can be used to update text files saved by an external program.
+				This will not import the file. To reimport, call [method reimport_files] or [method scan] methods.
 			</description>
 		</method>
 		<method name="update_script_classes">

+ 1 - 0
editor/editor_file_system.cpp

@@ -2372,6 +2372,7 @@ void EditorFileSystem::_bind_methods() {
 	ClassDB::bind_method(D_METHOD("get_filesystem_path", "path"), &EditorFileSystem::get_filesystem_path);
 	ClassDB::bind_method(D_METHOD("get_file_type", "path"), &EditorFileSystem::get_file_type);
 	ClassDB::bind_method(D_METHOD("update_script_classes"), &EditorFileSystem::update_script_classes);
+	ClassDB::bind_method(D_METHOD("reimport_files", "files"), &EditorFileSystem::reimport_files);
 
 	ADD_SIGNAL(MethodInfo("filesystem_changed"));
 	ADD_SIGNAL(MethodInfo("sources_changed", PropertyInfo(Variant::BOOL, "exist")));