Bind EditorFileSystem::reimport_files and improve docs

reimport_files offers a way for scripts to modify imported resources directly.
For example, images, sounds or glTF documents which are written by an external program.

It is much faster than `scan`, and can allow scripts to synchronously proceed after import finishes.
This commit is contained in:
Lyuma 2022-05-13 10:35:12 -07:00
parent 743fce6834
commit 41824c6cc8
2 changed files with 12 additions and 1 deletions

View file

@ -42,6 +42,15 @@
Returns [code]true[/code] of the filesystem is being scanned. Returns [code]true[/code] of the filesystem is being scanned.
</description> </description>
</method> </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"> <method name="scan">
<return type="void" /> <return type="void" />
<description> <description>
@ -58,7 +67,8 @@
<return type="void" /> <return type="void" />
<argument index="0" name="path" type="String" /> <argument index="0" name="path" type="String" />
<description> <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> </description>
</method> </method>
<method name="update_script_classes"> <method name="update_script_classes">

View file

@ -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_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("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("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("filesystem_changed"));
ADD_SIGNAL(MethodInfo("sources_changed", PropertyInfo(Variant::BOOL, "exist"))); ADD_SIGNAL(MethodInfo("sources_changed", PropertyInfo(Variant::BOOL, "exist")));