2
0
Эх сурвалжийг харах

Merge pull request #11304 from rminderhoud/editor_import_docs

Added EditorImportPlugin class ref docs

[ci skip]
Rémi Verschelde 8 жил өмнө
parent
commit
791f69419d

+ 54 - 0
doc/classes/EditorImportPlugin.xml

@@ -1,8 +1,54 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <class name="EditorImportPlugin" inherits="Reference" category="Core" version="3.0.alpha.custom_build">
 	<brief_description>
+		Registers a custom resource importer in the editor. Use the class to parse any file and import it as a new resource type.
 	</brief_description>
 	<description>
+		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]
 	</description>
 	<tutorials>
 	</tutorials>
@@ -15,12 +61,14 @@
 			<argument index="0" name="preset" type="int">
 			</argument>
 			<description>
+				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).
 			</description>
 		</method>
 		<method name="get_importer_name" qualifiers="virtual">
 			<return type="String">
 			</return>
 			<description>
+				Get the unique name of the importer.
 			</description>
 		</method>
 		<method name="get_option_visibility" qualifiers="virtual">
@@ -37,6 +85,7 @@
 			<return type="int">
 			</return>
 			<description>
+				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.
 			</description>
 		</method>
 		<method name="get_preset_name" qualifiers="virtual">
@@ -45,30 +94,35 @@
 			<argument index="0" name="preset" type="int">
 			</argument>
 			<description>
+				Get the name of the options preset at this index.
 			</description>
 		</method>
 		<method name="get_recognized_extensions" qualifiers="virtual">
 			<return type="Array">
 			</return>
 			<description>
+				Get the list of file extensions to associate with this loader (case insensitive). e.g. ["obj"].
 			</description>
 		</method>
 		<method name="get_resource_type" qualifiers="virtual">
 			<return type="String">
 			</return>
 			<description>
+				Get the godot resource type associated with this loader. e.g. "Mesh" or "Animation".
 			</description>
 		</method>
 		<method name="get_save_extension" qualifiers="virtual">
 			<return type="String">
 			</return>
 			<description>
+				Get the extension used to save this resource in the [code].import[/code] directory.
 			</description>
 		</method>
 		<method name="get_visible_name" qualifiers="virtual">
 			<return type="String">
 			</return>
 			<description>
+				Get the name to display in the import window.
 			</description>
 		</method>
 		<method name="import" qualifiers="virtual">