diff --git a/doc/classes/EditorImportPlugin.xml b/doc/classes/EditorImportPlugin.xml index 0ced30bda6..05319e926c 100644 --- a/doc/classes/EditorImportPlugin.xml +++ b/doc/classes/EditorImportPlugin.xml @@ -1,8 +1,54 @@ + Registers a custom resource importer in the editor. Use the class to parse any file and import it as a new resource type. + EditorImportPlugins provide a way to extend the editor's resource import functionality. Use them to import resources from custom files or to provide alternatives to the editor's existing importers. Register your [EditorPlugin] with [method EditorPlugin.add_import_plugin]. + + EditorImportPlugins work by associating with specific file extensions and a resource type. See [method get_recognized_extension] and [method get_resource_type]). They may optionally specify some import presets that affect the import process. EditorImportPlugins are responsible for creating the resources and saving them in the [code].import[/code] directory. + + + Below is an example EditorImportPlugin that imports a [Mesh] from a file with the extension ".special" or ".spec": + [codeblock] + tool + extends EditorImportPlugin + + func get_importer_name(): + return "my.special.plugin" + + func get_visible_name(): + return "Special Mesh Importer" + + func get_recognized_extensions(): + return ["special", "spec"] + + func get_save_extension(): + return "mesh" + + func get_resource_type(): + return "Mesh" + + func get_preset_count(): + return 1 + + func get_preset_name(i): + return "Default" + + func get_import_optons(i): + return [{"name": "my_option", "default_value": false}] + + func load(src, dst, opts, r_platform_variants, r_gen_files): + var f = File.new() + if f.open(src, File.READ) != OK: + return FAILED + + var mesh = Mesh.new() + + var save = dst + "." + get_save_extension() + ResourceSaver.save(file, mesh) + return OK + [/codeblock] @@ -15,12 +61,14 @@ + Get the options and default values for the preset at this index. Returns an Array of Dictionaries with the following keys: "name", "default_value", "property_hint" (optional), "hint_string" (optional), "usage" (optional). + Get the unique name of the importer. @@ -37,6 +85,7 @@ + Get the number of initial presets defined by the plugin. Use [method get_import_options] to get the default options for the preset and [method get_preset_name] to get the name of the preset. @@ -45,30 +94,35 @@ + Get the name of the options preset at this index. + Get the list of file extensions to associate with this loader (case insensitive). e.g. ["obj"]. + Get the godot resource type associated with this loader. e.g. "Mesh" or "Animation". + Get the extension used to save this resource in the [code].import[/code] directory. + Get the name to display in the import window.