class_editorimportplugin.rst 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. .. Generated automatically by doc/tools/makerst.py in Godot's source tree.
  2. .. DO NOT EDIT THIS FILE, but the EditorImportPlugin.xml source instead.
  3. .. The source is found in doc/classes or modules/<name>/doc_classes.
  4. .. _class_EditorImportPlugin:
  5. EditorImportPlugin
  6. ==================
  7. **Inherits:** :ref:`Reference<class_reference>` **<** :ref:`Object<class_object>`
  8. **Category:** Core
  9. Brief Description
  10. -----------------
  11. Registers a custom resource importer in the editor. Use the class to parse any file and import it as a new resource type.
  12. Member Functions
  13. ----------------
  14. +------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  15. | :ref:`Array<class_array>` | :ref:`get_import_options<class_EditorImportPlugin_get_import_options>` **(** :ref:`int<class_int>` preset **)** virtual |
  16. +------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  17. | :ref:`String<class_string>` | :ref:`get_importer_name<class_EditorImportPlugin_get_importer_name>` **(** **)** virtual |
  18. +------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  19. | :ref:`bool<class_bool>` | :ref:`get_option_visibility<class_EditorImportPlugin_get_option_visibility>` **(** :ref:`String<class_string>` option, :ref:`Dictionary<class_dictionary>` options **)** virtual |
  20. +------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  21. | :ref:`int<class_int>` | :ref:`get_preset_count<class_EditorImportPlugin_get_preset_count>` **(** **)** virtual |
  22. +------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  23. | :ref:`String<class_string>` | :ref:`get_preset_name<class_EditorImportPlugin_get_preset_name>` **(** :ref:`int<class_int>` preset **)** virtual |
  24. +------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  25. | :ref:`Array<class_array>` | :ref:`get_recognized_extensions<class_EditorImportPlugin_get_recognized_extensions>` **(** **)** virtual |
  26. +------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  27. | :ref:`String<class_string>` | :ref:`get_resource_type<class_EditorImportPlugin_get_resource_type>` **(** **)** virtual |
  28. +------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  29. | :ref:`String<class_string>` | :ref:`get_save_extension<class_EditorImportPlugin_get_save_extension>` **(** **)** virtual |
  30. +------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  31. | :ref:`String<class_string>` | :ref:`get_visible_name<class_EditorImportPlugin_get_visible_name>` **(** **)** virtual |
  32. +------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  33. | :ref:`int<class_int>` | :ref:`import<class_EditorImportPlugin_import>` **(** :ref:`String<class_string>` source_file, :ref:`String<class_string>` save_path, :ref:`Dictionary<class_dictionary>` options, :ref:`Array<class_array>` r_platform_variants, :ref:`Array<class_array>` r_gen_files **)** virtual |
  34. +------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  35. Description
  36. -----------
  37. 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 :ref:`EditorPlugin<class_editorplugin>` with :ref:`EditorPlugin.add_import_plugin<class_EditorPlugin_add_import_plugin>`.
  38. EditorImportPlugins work by associating with specific file extensions and a resource type. See :ref:`get_recognized_extension<class_EditorImportPlugin_get_recognized_extension>` and :ref:`get_resource_type<class_EditorImportPlugin_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 ``.import`` directory.
  39. Below is an example EditorImportPlugin that imports a :ref:`Mesh<class_mesh>` from a file with the extension ".special" or ".spec":
  40. ::
  41. tool
  42. extends EditorImportPlugin
  43. func get_importer_name():
  44. return "my.special.plugin"
  45. func get_visible_name():
  46. return "Special Mesh Importer"
  47. func get_recognized_extensions():
  48. return ["special", "spec"]
  49. func get_save_extension():
  50. return "mesh"
  51. func get_resource_type():
  52. return "Mesh"
  53. func get_preset_count():
  54. return 1
  55. func get_preset_name(i):
  56. return "Default"
  57. func get_import_options(i):
  58. return [{"name": "my_option", "default_value": false}]
  59. func load(src, dst, opts, r_platform_variants, r_gen_files):
  60. var file = File.new()
  61. if file.open(src, File.READ) != OK:
  62. return FAILED
  63. var mesh = Mesh.new()
  64. var save = dst + "." + get_save_extension()
  65. ResourceSaver.save(file, mesh)
  66. return OK
  67. Member Function Description
  68. ---------------------------
  69. .. _class_EditorImportPlugin_get_import_options:
  70. - :ref:`Array<class_array>` **get_import_options** **(** :ref:`int<class_int>` preset **)** virtual
  71. 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).
  72. .. _class_EditorImportPlugin_get_importer_name:
  73. - :ref:`String<class_string>` **get_importer_name** **(** **)** virtual
  74. Get the unique name of the importer.
  75. .. _class_EditorImportPlugin_get_option_visibility:
  76. - :ref:`bool<class_bool>` **get_option_visibility** **(** :ref:`String<class_string>` option, :ref:`Dictionary<class_dictionary>` options **)** virtual
  77. .. _class_EditorImportPlugin_get_preset_count:
  78. - :ref:`int<class_int>` **get_preset_count** **(** **)** virtual
  79. Get the number of initial presets defined by the plugin. Use :ref:`get_import_options<class_EditorImportPlugin_get_import_options>` to get the default options for the preset and :ref:`get_preset_name<class_EditorImportPlugin_get_preset_name>` to get the name of the preset.
  80. .. _class_EditorImportPlugin_get_preset_name:
  81. - :ref:`String<class_string>` **get_preset_name** **(** :ref:`int<class_int>` preset **)** virtual
  82. Get the name of the options preset at this index.
  83. .. _class_EditorImportPlugin_get_recognized_extensions:
  84. - :ref:`Array<class_array>` **get_recognized_extensions** **(** **)** virtual
  85. Get the list of file extensions to associate with this loader (case insensitive). e.g. "obj".
  86. .. _class_EditorImportPlugin_get_resource_type:
  87. - :ref:`String<class_string>` **get_resource_type** **(** **)** virtual
  88. Get the godot resource type associated with this loader. e.g. "Mesh" or "Animation".
  89. .. _class_EditorImportPlugin_get_save_extension:
  90. - :ref:`String<class_string>` **get_save_extension** **(** **)** virtual
  91. Get the extension used to save this resource in the ``.import`` directory.
  92. .. _class_EditorImportPlugin_get_visible_name:
  93. - :ref:`String<class_string>` **get_visible_name** **(** **)** virtual
  94. Get the name to display in the import window.
  95. .. _class_EditorImportPlugin_import:
  96. - :ref:`int<class_int>` **import** **(** :ref:`String<class_string>` source_file, :ref:`String<class_string>` save_path, :ref:`Dictionary<class_dictionary>` options, :ref:`Array<class_array>` r_platform_variants, :ref:`Array<class_array>` r_gen_files **)** virtual