diff --git a/doc/base/classes.xml b/doc/base/classes.xml
index 1ac08c788fd..842f38dd3ee 100644
--- a/doc/base/classes.xml
+++ b/doc/base/classes.xml
@@ -11510,6 +11510,13 @@
Get the name of the editor plugin. For main scren plugins this is what will appear in the selector (which by default is 2D, 3D, Script).
+
+
+
+
+ Get tool for generating resource previews.
+
+
@@ -11554,6 +11561,15 @@
Return true if this is a main screen editor plugin (it goes in the main screen selector together with 2D, 3D, Script).
+
+
+
+
+
+
+ Inspect an object in the inspector.
+
+
@@ -11657,6 +11673,117 @@
+
+
+ Helper to generate previews of reources or files.
+
+
+ This object is used to generate previews for resources of files.
+
+
+
+
+
+
+ Create an own, custom preview generator.
+
+
+
+
+
+
+ Check if the resource changed, if so it will be invalidated and the corresponding signal emitted.
+
+
+
+
+
+
+
+
+
+
+
+
+ Queue a resource being edited for preview (using an instance). Once the preview is ready, your receiver.receiver_func will be called either containing the preview texture or an empty texure (if no preview was possible). Callback must have the format: (path,texture,userdata). Userdata can be anything.
+
+
+
+
+
+
+
+
+
+
+
+
+ Queue a resource file for preview (using a path). Once the preview is ready, your receiver.receiver_func will be called either containing the preview texture or an empty texure (if no preview was possible). Callback must have the format: (path,texture,userdata). Userdata can be anything.
+
+
+
+
+
+
+ Remove a custom preview generator.
+
+
+
+
+
+
+
+
+ If a preview was invalidated (changed) this signal will emit (using the path of the preview)
+
+
+
+
+
+
+
+
+ Custom generator of previews.
+
+
+ Custom code to generate previews. Please check "file_dialog/thumbnail_size" in EditorSettings to find out the right size to do previews at.
+
+
+
+
+
+
+
+
+ Generate a preview from a given resource. This must be always implemented.
+ Returning an empty texture is an OK way to fail and let another generator take care.
+ Care must be taken because this function is always called from a thread (not the main thread).
+
+
+
+
+
+
+
+
+ Generate a preview directly from a path, implementing this is optional, as default code will load and call generate()
+ Returning an empty texture is an OK way to fail and let another generator take care.
+ Care must be taken because this function is always called from a thread (not the main thread).
+
+
+
+
+
+
+
+
+ Return if your generator supports this resource type.
+
+
+
+
+
+
Base script for post-processing scenes being imported.
@@ -13189,31 +13316,10 @@
However, by creating a [FuncRef] using the [method @GDScript.funcref] function, a reference to a function in a given object can be created, passed around and called.
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Call the referenced function with the given arguments. The argument count must correspond to the required number of arguments in the function. Returns the return value of the function call.
@@ -13290,7 +13396,7 @@
-
+
@@ -15392,10 +15498,11 @@
+
+
+
+
- Make a HTTP GET request. The url is the complete url including "http://" or "https://" which will be parsed for a host and a port.
- The custom_headers are HTTP request headers which will be used. If User-Agent is not specified a Godot specific will be used.
- The ssl_validate_domain specifies if in case of HTTPS the server certificate should be verified.
@@ -17940,15 +18047,6 @@
Return tooltip hint for specified item index.
-
-
-
-
-
-
- Returns whether the tooptip is enabled for specified item index.
-
-
@@ -17977,7 +18075,7 @@
-
+
Returns the current vertical scroll bar for the List.
@@ -18001,6 +18099,15 @@
Returns whether or not the item at the specified index is selectable.
+
+
+
+
+
+
+ Returns whether the tooptip is enabled for specified item index.
+
+
@@ -22540,7 +22647,7 @@
Replace a node in a scene by a given one. Subscriptions that pass through this node will be lost.
-
+
@@ -22554,22 +22661,22 @@
-
-
+
+
-
+
-
-
+
+
@@ -24021,50 +24128,18 @@
Add a user signal (can be added anytime). Arguments are optional, but can be added as an array of dictionaries, each containing "name" and "type" (from [@Global Scope] TYPE_*).
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Call a function in the object, result is returned.
-
+
-
-
-
-
-
-
-
-
-
-
- Create and store a function in the object. The call will take place on idle time.
@@ -24112,21 +24187,10 @@
Disconnect a signal from a method.
-
+
-
-
-
-
-
-
-
-
-
-
- Emit a signal. Arguments are passed in an array.
@@ -32075,6 +32139,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -34634,23 +34720,13 @@
-
+
-
-
-
-
-
-
-
-
-
-
@@ -43886,24 +43962,12 @@
Common behavior is to create an action, then add do/undo calls to functions or property changes, then commiting the action.
-
+
-
-
-
-
-
-
-
-
-
-
- Add a call to a method in a given object with custom
- arguments.
@@ -43924,23 +43988,12 @@
Add a 'do' reference that will be erased if the 'do' history is lost. This is useful mostly for new nodes created for the 'do' call. Do not use for resources.
-
+
-
-
-
-
-
-
-
-
-
-
- Add a call to an undo method in a given object with custom arguments. Undo calls are used to revert 'do' calls.
diff --git a/tools/editor/editor_node.cpp b/tools/editor/editor_node.cpp
index 655652ced99..56170e14898 100644
--- a/tools/editor/editor_node.cpp
+++ b/tools/editor/editor_node.cpp
@@ -4139,6 +4139,8 @@ void EditorNode::register_editor_types() {
//ObjectTypeDB::register_type();
ObjectTypeDB::register_type();
ObjectTypeDB::register_type();
+ ObjectTypeDB::register_type();
+ ObjectTypeDB::register_type();
//ObjectTypeDB::register_type();
diff --git a/tools/editor/editor_plugin.cpp b/tools/editor/editor_plugin.cpp
index fa5de096e0d..752e961c872 100644
--- a/tools/editor/editor_plugin.cpp
+++ b/tools/editor/editor_plugin.cpp
@@ -32,6 +32,7 @@
#include "plugins/spatial_editor_plugin.h"
#include "tools/editor/editor_node.h"
#include "tools/editor/editor_settings.h"
+#include "editor_resource_preview.h"
void EditorPlugin::add_custom_type(const String& p_type, const String& p_base,const Ref