EditorInterface

package
v0.0.0-...-357ca8a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 20, 2025 License: MIT Imports: 47 Imported by: 0

Documentation

Overview

EditorInterface gives you control over Godot editor's window. It allows customizing the window, saving and (re-)loading scenes, rendering mesh previews, inspecting and editing resources and objects, and provides access to EditorSettings, EditorFileSystem, EditorResourcePreview, ScriptEditor, the editor viewport, and information about scenes.

Note: This class shouldn't be instantiated directly. Instead, access the singleton directly by its name.

package main

import "graphics.gd/classdb/EditorInterface"

func ExampleEditorInterface() {
	var editor_settings = EditorInterface.GetEditorSettings()
	_ = editor_settings
}

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Advanced

func Advanced() class

Advanced exposes a 1:1 low-level instance of the class, undocumented, for those who know what they are doing.

func CloseScene

func CloseScene() error

Closes the currently active scene, discarding any pending changes in the process. Returns [Ok] on success or [ErrDoesNotExist] if there is no scene to close.

func DistractionFreeMode

func DistractionFreeMode() bool

If true, enables distraction-free mode which hides side docks to increase the space available for the main view.

func EditNode

func EditNode(node Node.Instance)

Edits the given Node. The node will be also selected if it's inside the scene tree.

func EditResource

func EditResource(resource Resource.Instance)

Edits the given Resource. If the resource is a Script you can also edit it with EditScript to specify the line and column position.

func EditScript

func EditScript(script Script.Instance, column int)

Edits the given Script. The line and column on which to open the script can also be specified. The script will be open with the user-configured editor for the script's language which may be an external editor.

func EditScriptOptions

func EditScriptOptions(script Script.Instance, line int, column int, grab_focus bool)

Edits the given Script. The line and column on which to open the script can also be specified. The script will be open with the user-configured editor for the script's language which may be an external editor.

func GetBaseControl

func GetBaseControl() Control.Instance

Returns the main container of Godot editor's window. For example, you can use it to retrieve the size of the container and place your controls accordingly.

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

func GetCommandPalette

func GetCommandPalette() EditorCommandPalette.Instance

Returns the editor's EditorCommandPalette instance.

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

func GetCurrentDirectory

func GetCurrentDirectory() string

Returns the current directory being viewed in the FileSystemDock. If a file is selected, its base directory will be returned using String.GetBaseDir instead.

func GetCurrentFeatureProfile

func GetCurrentFeatureProfile() string

Returns the name of the currently activated feature profile. If the default profile is currently active, an empty string is returned instead.

In order to get a reference to the EditorFeatureProfile, you must load the feature profile using EditorFeatureProfile.LoadFromFile.

Note: Feature profiles created via the user interface are loaded from the feature_profiles directory, as a file with the .profile extension. The editor configuration folder can be found by using EditorPaths.GetConfigDir.

func GetCurrentPath

func GetCurrentPath() string

Returns the current path being viewed in the FileSystemDock.

func GetEditedSceneRoot

func GetEditedSceneRoot() Node.Instance

Returns the edited (current) scene's root Node.

func GetEditorMainScreen

func GetEditorMainScreen() VBoxContainer.Instance

Returns the editor control responsible for main screen plugins and tools. Use it with plugins that implement EditorPlugin.HasMainScreen.

Note: This node is a VBoxContainer, which means that if you add a Control child to it, you need to set the child's Control.SizeFlagsVertical to [Control.SizeExpandFill] to make it use the full available space.

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

func GetEditorPaths

func GetEditorPaths() EditorPaths.Instance

Returns the EditorPaths singleton.

func GetEditorScale

func GetEditorScale() Float.X

Returns the actual scale of the editor UI (1.0 being 100% scale). This can be used to adjust position and dimensions of the UI added by plugins.

Note: This value is set via the EditorSettings "interface/editor/display_scale" and EditorSettings "interface/editor/custom_display_scale" settings. The editor must be restarted for changes to be properly applied.

func GetEditorSettings

func GetEditorSettings() EditorSettings.Instance

Returns the editor's EditorSettings instance.

func GetEditorTheme

func GetEditorTheme() Theme.Instance

Returns the editor's Theme.

Note: When creating custom editor UI, prefer accessing theme items directly from your GUI nodes using the get_theme_* methods.

func GetEditorToaster

func GetEditorToaster() EditorToaster.Instance

Returns the editor's EditorToaster.

func GetEditorUndoRedo

func GetEditorUndoRedo() EditorUndoRedoManager.Instance

Returns the editor's EditorUndoRedoManager.

func GetEditorViewport2d

func GetEditorViewport2d() SubViewport.Instance

Returns the 2D editor SubViewport. It does not have a camera. Instead, the view transforms are done directly and can be accessed with Viewport.GlobalCanvasTransform.

func GetEditorViewport3d

func GetEditorViewport3d(idx int) SubViewport.Instance

Returns the specified 3D editor SubViewport, from 0 to 3. The viewport can be used to access the active editor cameras with Viewport.GetCamera3d.

func GetFileSystemDock

func GetFileSystemDock() FileSystemDock.Instance

Returns the editor's FileSystemDock instance.

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

func GetInspector

func GetInspector() EditorInspector.Instance

Returns the editor's EditorInspector instance.

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

func GetOpenSceneRoots

func GetOpenSceneRoots() []Node.Instance

Returns an array with references to the root nodes of the currently opened scenes.

func GetOpenScenes

func GetOpenScenes() []string

Returns an array with the file paths of the currently opened scenes.

func GetPlayingScene

func GetPlayingScene() string

Returns the name of the scene that is being played. If no scene is currently being played, returns an empty string.

func GetResourceFilesystem

func GetResourceFilesystem() EditorFileSystem.Instance

Returns the editor's EditorFileSystem instance.

func GetResourcePreviewer

func GetResourcePreviewer() EditorResourcePreview.Instance

Returns the editor's EditorResourcePreview instance.

func GetScriptEditor

func GetScriptEditor() ScriptEditor.Instance

Returns the editor's ScriptEditor instance.

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

func GetSelectedPaths

func GetSelectedPaths() []string

Returns an array containing the paths of the currently selected files (and directories) in the FileSystemDock.

func GetSelection

func GetSelection() EditorSelection.Instance

Returns the editor's EditorSelection instance.

func InspectObject

func InspectObject(obj Object.Instance, for_property string, inspector_only bool)

Shows the given property on the given 'object' in the editor's Inspector dock. If 'inspector_only' is true, plugins will not attempt to edit 'object'.

func IsMultiWindowEnabled

func IsMultiWindowEnabled() bool

Returns true if multiple window support is enabled in the editor. Multiple window support is enabled if all of these statements are true:

- EditorSettings "interface/multi_window/enable" is true.

- EditorSettings "interface/editor/single_window_mode" is false.

- Viewport.GuiEmbedSubwindows is false. This is forced to true on platforms that don't support multiple windows such as Web, or when the --single-window command line argument is used.

func IsPlayingScene

func IsPlayingScene() bool

Returns true if a scene is currently being played, false otherwise. Paused scenes are considered as being played.

func IsPluginEnabled

func IsPluginEnabled(plugin string) bool

Returns true if the specified 'plugin' is enabled. The plugin name is the same as its directory name.

func MakeMeshPreviews

func MakeMeshPreviews(meshes []Mesh.Instance, preview_size int) []Texture2D.Instance

Returns mesh previews rendered at the given size as an slice of Texture2Ds.

func MarkSceneAsUnsaved

func MarkSceneAsUnsaved()

Marks the current scene tab as unsaved.

func MovieMakerEnabled

func MovieMakerEnabled() bool

If true, the Movie Maker mode is enabled in the editor. See MovieWriter for more information.

func OpenSceneFromPath

func OpenSceneFromPath(scene_filepath string, set_inherited bool)

Opens the scene at the given path. If 'set_inherited' is true, creates a new inherited scene.

func PlayCurrentScene

func PlayCurrentScene()

Plays the currently active scene.

func PlayCustomScene

func PlayCustomScene(scene_filepath string)

Plays the scene specified by its filepath.

func PlayMainScene

func PlayMainScene()

Plays the main scene.

func PopupCreateDialog

func PopupCreateDialog(callback func(selected string), base_type string, current_type string, dialog_title string, type_blocklist []string)

Pops up an editor dialog for creating an object.

The 'callback' must take a single argument of type string which will contain the type name of the selected object or be empty if no item is selected.

The 'base_type' specifies the base type of objects to display. For example, if you set this to "Resource", all types derived from Resource will display in the create dialog.

The 'current_type' will be passed in the search box of the create dialog, and the specified type can be immediately selected when the dialog pops up. If the 'current_type' is not derived from 'base_type', there will be no result of the type in the dialog.

The 'dialog_title' allows you to define a custom title for the dialog. This is useful if you want to accurately hint the usage of the dialog. If the 'dialog_title' is an empty string, the dialog will use "Create New 'Base Type'" as the default title.

The 'type_blocklist' contains a list of type names, and the types in the blocklist will be hidden from the create dialog.

Note: Trying to list the base type in the 'type_blocklist' will hide all types derived from the base type from the create dialog.

func PopupDialog

func PopupDialog(dialog Window.Instance, rect Rect2i.PositionSize)

Pops up the 'dialog' in the editor UI with Window.PopupExclusive. The dialog must have no current parent, otherwise the method fails.

See also Window.SetUnparentWhenInvisible.

func PopupDialogCentered

func PopupDialogCentered(dialog Window.Instance, minsize Vector2i.XY)

Pops up the 'dialog' in the editor UI with Window.PopupExclusiveCentered. The dialog must have no current parent, otherwise the method fails.

See also Window.SetUnparentWhenInvisible.

func PopupDialogCenteredClamped

func PopupDialogCenteredClamped(dialog Window.Instance, minsize Vector2i.XY)

Pops up the 'dialog' in the editor UI with Window.PopupExclusiveCenteredClamped. The dialog must have no current parent, otherwise the method fails.

See also Window.SetUnparentWhenInvisible.

func PopupDialogCenteredClampedOptions

func PopupDialogCenteredClampedOptions(dialog Window.Instance, minsize Vector2i.XY, fallback_ratio Float.X)

Pops up the 'dialog' in the editor UI with Window.PopupExclusiveCenteredClamped. The dialog must have no current parent, otherwise the method fails.

See also Window.SetUnparentWhenInvisible.

func PopupDialogCenteredRatio

func PopupDialogCenteredRatio(dialog Window.Instance)

Pops up the 'dialog' in the editor UI with Window.PopupExclusiveCenteredRatio. The dialog must have no current parent, otherwise the method fails.

See also Window.SetUnparentWhenInvisible.

func PopupDialogCenteredRatioOptions

func PopupDialogCenteredRatioOptions(dialog Window.Instance, ratio Float.X)

Pops up the 'dialog' in the editor UI with Window.PopupExclusiveCenteredRatio. The dialog must have no current parent, otherwise the method fails.

See also Window.SetUnparentWhenInvisible.

func PopupMethodSelector

func PopupMethodSelector(obj Object.Instance, callback func(selected string), current_value string)

Pops up an editor dialog for selecting a method from 'object'. The 'callback' must take a single argument of type string which will contain the name of the selected method or be empty if the dialog is canceled. If 'current_value' is provided, the method will be selected automatically in the method list, if it exists.

func PopupNodeSelector

func PopupNodeSelector(callback func(selected string), valid_types []string, current_value Node.Instance)

Pops up an editor dialog for selecting a Node from the edited scene. The 'callback' must take a single argument of type node path. It is called on the selected node path or the empty path ^"" if the dialog is canceled. If 'valid_types' is provided, the dialog will only show Nodes that match one of the listed Node types. If 'current_value' is provided, the Node will be automatically selected in the tree, if it exists.

Example: Display the node selection dialog as soon as this node is added to the tree for the first time:

func PopupPropertySelector

func PopupPropertySelector(obj Object.Instance, callback func(selected string), type_filter []int32, current_value string)

Pops up an editor dialog for selecting properties from 'object'. The 'callback' must take a single argument of type node path. It is called on the selected property path (see NodePath.GetAsPropertyPath) or the empty path ^"" if the dialog is canceled. If 'type_filter' is provided, the dialog will only show properties that match one of the listed [Variant.Type] values. If 'current_value' is provided, the property will be selected automatically in the property list, if it exists.

func PopupQuickOpen

func PopupQuickOpen(callback func(selected string), base_types []string)

Pops up an editor dialog for quick selecting a resource file. The 'callback' must take a single argument of type string which will contain the path of the selected resource or be empty if the dialog is canceled. If 'base_types' is provided, the dialog will only show resources that match these types. Only types deriving from Resource are supported.

func ReloadSceneFromPath

func ReloadSceneFromPath(scene_filepath string)

Reloads the scene at the given path.

func RestartEditor

func RestartEditor()

Restarts the editor. This closes the editor and then opens the same project. If 'save' is true, the project will be saved before restarting.

func RestartEditorOptions

func RestartEditorOptions(save bool)

Restarts the editor. This closes the editor and then opens the same project. If 'save' is true, the project will be saved before restarting.

func SaveAllScenes

func SaveAllScenes()

Saves all opened scenes in the editor.

func SaveScene

func SaveScene() error

Saves the currently active scene. Returns either [Ok] or [ErrCantCreate].

func SaveSceneAs

func SaveSceneAs(path string)

Saves the currently active scene as a file at 'path'.

func SaveSceneAsOptions

func SaveSceneAsOptions(path string, with_preview bool)

Saves the currently active scene as a file at 'path'.

func SelectFile

func SelectFile(file string)

Selects the file, with the path provided by 'file', in the FileSystem dock.

func SetCurrentFeatureProfile

func SetCurrentFeatureProfile(profile_name string)

Selects and activates the specified feature profile with the given 'profile_name'. Set 'profile_name' to an empty string to reset to the default feature profile.

A feature profile can be created programmatically using the EditorFeatureProfile class.

Note: The feature profile that gets activated must be located in the feature_profiles directory, as a file with the .profile extension. If a profile could not be found, an error occurs. The editor configuration folder can be found by using EditorPaths.GetConfigDir.

func SetDistractionFreeMode

func SetDistractionFreeMode(value bool)

SetDistractionFreeMode sets the property returned by [IsDistractionFreeModeEnabled].

func SetMainScreenEditor

func SetMainScreenEditor(name string)

Sets the editor's current main screen to the one specified in 'name'. 'name' must match the title of the tab in question exactly (e.g. 2D, 3D, Script, Game, or AssetLib for default tabs).

func SetMovieMakerEnabled

func SetMovieMakerEnabled(value bool)

SetMovieMakerEnabled sets the property returned by [IsMovieMakerEnabled].

func SetPluginEnabled

func SetPluginEnabled(plugin string, enabled bool)

Sets the enabled status of a plugin. The plugin name is the same as its directory name.

func StopPlayingScene

func StopPlayingScene()

Stops the scene that is currently playing.

Types

type Extension

type Extension[T gdclass.Interface] struct{ gdclass.Extension[T, Instance] }

Extension can be embedded in a new struct to create an extension of this class. T should be the type that is embedding this Extension

func (*Extension[T]) AsObject

func (self *Extension[T]) AsObject() [1]gd.Object

type ID

type ID Object.ID

ID is a typed object ID (reference) to an instance of this class, use it to store references to objects with unknown lifetimes, as an ID will not panic on use if the underlying object has been destroyed.

func (ID) Instance

func (id ID) Instance() (Instance, bool)

type Instance

type Instance [1]gdclass.EditorInterface

Instance of the class with convieniently typed arguments and results.

func (Instance) AsObject

func (self Instance) AsObject() [1]gd.Object

func (Instance) ID

func (self Instance) ID() ID

func (*Instance) SetObject

func (self *Instance) SetObject(obj [1]gd.Object) bool

func (Instance) Virtual

func (self Instance) Virtual(name string) reflect.Value

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL