Files
2025-02-23 04:45:06 +01:00

52 lines
1.6 KiB
ReStructuredText

GD0108: The exported tool button is not in a tool class
=======================================================
==================================== ======================================
Value
==================================== ======================================
**Rule ID** GD0108
**Category** Usage
**Fix is breaking or non-breaking** Non-breaking
**Enabled by default** Yes
==================================== ======================================
Cause
-----
A property is annotated with the ``[ExportToolButton]`` attribute in a class that
is **not** annotated with the ``[Tool]`` attribute.
Rule description
----------------
The ``[ExportToolButton]`` is used to create clickable buttons in the inspector so,
like every other script that runs in the editor, it needs to be annotated with the
``[Tool]`` attribute.
.. code-block:: csharp
:emphasize-lines: 1
[Tool]
public partial class MyNode : Node
{
[ExportToolButton("Click me!")]
public Callable ClickMeButton => Callable.From(ClickMe);
private static void ClickMe()
{
GD.Print("Hello world!");
}
}
How to fix violations
---------------------
To fix a violation of this rule, add the ``[Tool]`` attribute to the class that
contains the member annotated with the ``[ExportToolButton]`` attribute.
When to suppress warnings
-------------------------
Do not suppress a warning from this rule. The clickable buttons in the inspector
won't be functional if their script is not annotated with the ``[Tool]`` attribute.