From 06d9bcd36e6f222ef530fb5a90f2f701551423b7 Mon Sep 17 00:00:00 2001 From: HolonProduction Date: Sat, 31 Aug 2024 16:34:29 +0200 Subject: [PATCH] Document sub plugins --- .../editor/img/sub_plugin_creation.webp | Bin 0 -> 15264 bytes .../plugins/editor/img/sub_plugin_moved.webp | Bin 0 -> 15274 bytes tutorials/plugins/editor/making_plugins.rst | 69 +++++++++++++----- 3 files changed, 52 insertions(+), 17 deletions(-) create mode 100644 tutorials/plugins/editor/img/sub_plugin_creation.webp create mode 100644 tutorials/plugins/editor/img/sub_plugin_moved.webp diff --git a/tutorials/plugins/editor/img/sub_plugin_creation.webp b/tutorials/plugins/editor/img/sub_plugin_creation.webp new file mode 100644 index 0000000000000000000000000000000000000000..85bcfb3ce4b2647b80dc72351a062cc78e3b146b GIT binary patch literal 15264 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 literal 0 HcmV?d00001 diff --git a/tutorials/plugins/editor/img/sub_plugin_moved.webp b/tutorials/plugins/editor/img/sub_plugin_moved.webp new file mode 100644 index 0000000000000000000000000000000000000000..142be3c6f5ab3395b4445b022766dcc59366358e GIT binary patch literal 15274 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

?jcK?L(Pq2YRfm@mvhl|=PT%!09ztMTo~qr6uF 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 literal 0 HcmV?d00001 diff --git a/tutorials/plugins/editor/making_plugins.rst b/tutorials/plugins/editor/making_plugins.rst index e9bdd9eb2..9801e75da 100644 --- a/tutorials/plugins/editor/making_plugins.rst +++ b/tutorials/plugins/editor/making_plugins.rst @@ -282,7 +282,7 @@ click the button, you can see some text in the console: .. image:: img/making_plugins-custom_node_console.webp A custom dock -^^^^^^^^^^^^^ +~~~~~~~~~~~~~ Sometimes, you need to extend the editor and add tools that are always available. An easy way to do it is to add a new dock with a plugin. Docks are just scenes @@ -413,18 +413,6 @@ the settings window. You should now have a custom dock: .. image:: img/making_plugins-custom_dock.webp -Going beyond -~~~~~~~~~~~~ - -Now that you've learned how to make basic plugins, you can extend the editor in -several ways. Lots of functionality can be added to the editor with GDScript; -it is a powerful way to create specialized editors without having to delve into -C++ modules. - -You can make your own plugins to help yourself and share them in the -`Asset Library `_ so that people -can benefit from your work. - .. _doc_making_plugins_autoload: Registering autoloads/singletons in plugins @@ -450,12 +438,12 @@ Use the following code to register a singleton from an editor plugin: const AUTOLOAD_NAME = "SomeAutoload" - func _enter_tree(): + func _enable_plugin(): # The autoload can be a scene or script file. add_autoload_singleton(AUTOLOAD_NAME, "res://addons/my_addon/some_autoload.tscn") - func _exit_tree(): + func _disable_plugin(): remove_autoload_singleton(AUTOLOAD_NAME) .. code-tab:: csharp @@ -469,15 +457,62 @@ Use the following code to register a singleton from an editor plugin: // Replace this value with a PascalCase autoload name. private const string AutoloadName = "SomeAutoload"; - public override void _EnterTree() + public override void _EnablePlugin() { // The autoload can be a scene or script file. AddAutoloadSingleton(AutoloadName, "res://addons/MyAddon/SomeAutoload.tscn"); } - public override void _ExitTree() + public override void _DisablePlugin() { RemoveAutoloadSingleton(AutoloadName); } } #endif + +Using sub-plugins +~~~~~~~~~~~~~~~~~ + +Often a plugin adds multiple things, for example a custom node and a panel. +In those cases it might be easier to have a separate plugin script for each of those features. +Sub-plugins can be used for this. + +First create all plugins and sub plugins as normal plugins: + +.. image:: img/sub_plugin_creation.webp + +Then move the sub plugins into the main plugin folder: + +.. image:: img/sub_plugin_moved.webp + +Godot will hide sub-plugins from the plugin list, so that a user can't enable or disable them. +Instead the main plugin script should enable and disable sub-plugins like this: + +.. tabs:: + .. code-tab:: gdscript GDScript + + @tool + extends EditorPlugin + + # The main plugin is located at res://addons/my_plugin/ + const PLUGIN_NAME = "my_plugin" + + func _enable_plugin(): + EditorInterface.set_plugin_enabled(PLUGIN_NAME + "/node", true) + EditorInterface.set_plugin_enabled(PLUGIN_NAME + "/panel", true) + + func _disable_plugin(): + EditorInterface.set_plugin_enabled(PLUGIN_NAME + "/node", false) + EditorInterface.set_plugin_enabled(PLUGIN_NAME + "/panel", false) + +Going beyond +~~~~~~~~~~~~ + +Now that you've learned how to make basic plugins, you can extend the editor in +several ways. Lots of functionality can be added to the editor with GDScript; +it is a powerful way to create specialized editors without having to delve into +C++ modules. + +You can make your own plugins to help yourself and share them in the +`Asset Library `_ so that people +can benefit from your work.