Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

ScenePaint2DEditor

Inherits: Control < CanvasItem < Node < Object

Class for interacting with the 2D editor's Scene Paint Mode.

Description

This class is available only in the editor and cannot be instantiated. Access it using EditorInterface.get_scene_paint_2d().

It provides methods for editor plugins to interact with the scene painting tool.

Plugins can register custom scene providers, and set the scene to be painted.

Methods

Node2D

get_painted_scene() const

void

register_scene_provider(control: Control, callback: Callable)

void

set_painted_scene(scene: Node2D)

void

unregister_scene_provider(control: Control)


Signals

scene_painted(node: Node2D) 🔗

Emitted for each new node created during drawing.

Example:

@tool
extends EditorPlugin

func _enter_tree():
    EditorInterface.get_scene_paint_2d().scene_painted.connect(_on_scene_painted)

func _on_scene_painted(node: Node2D):
    # Set random rotation when drawing nodes.
    node.rotation = randf_range(0, 360)

Method Descriptions

Node2D get_painted_scene() const 🔗

Returns the painted scene, or null if none is selected. The returned scene's properties can be edited.

Warning: Removing and freeing this node will render the editor useless and may cause a crash.


void register_scene_provider(control: Control, callback: Callable) 🔗

Registers a custom scene provider.

When the scene picker tool is active and the user clicks on control, the callback is invoked and must return a Node2D.

The returned scene becomes the new painting sample.


void set_painted_scene(scene: Node2D) 🔗

Sets the scene sample to be painted.


void unregister_scene_provider(control: Control) 🔗

Removes a previously registered scene provider.


User-contributed notes

Please read the User-contributed notes policy before submitting a comment.