<?xml version="1.0" encoding="UTF-8" ?>
<class name="EditorInterface" inherits="Node" version="3.8">
	<brief_description>
		Godot editor's interface.
	</brief_description>
	<description>
		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.
		[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access the singleton using [method EditorPlugin.get_editor_interface].
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="edit_node">
			<return type="void" />
			<argument index="0" name="node" type="Node" />
			<description>
				Edits the given [Node]. The node will be also selected if it's inside the scene tree.
			</description>
		</method>
		<method name="edit_resource">
			<return type="void" />
			<argument index="0" name="resource" type="Resource" />
			<description>
				Edits the given [Resource]. If the resource is a [Script] you can also edit it with [method edit_script] to specify the line and column position.
			</description>
		</method>
		<method name="edit_script">
			<return type="void" />
			<argument index="0" name="script" type="Script" />
			<argument index="1" name="line" type="int" default="-1" />
			<argument index="2" name="column" type="int" default="0" />
			<argument index="3" name="grab_focus" type="bool" default="true" />
			<description>
				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.
			</description>
		</method>
		<method name="get_base_control">
			<return type="Control" />
			<description>
				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.
				[b]Warning:[/b] Removing and freeing this node will render the editor useless and may cause a crash.
			</description>
		</method>
		<method name="get_current_path" qualifiers="const">
			<return type="String" />
			<description>
				Returns the current path being viewed in the [FileSystemDock].
			</description>
		</method>
		<method name="get_edited_scene_root">
			<return type="Node" />
			<description>
				Returns the edited (current) scene's root [Node].
			</description>
		</method>
		<method name="get_editor_scale" qualifiers="const">
			<return type="float" />
			<description>
				Returns the actual scale of the editor UI ([code]1.0[/code] being 100% scale). This can be used to adjust position and dimensions of the UI added by plugins.
				[b]Note:[/b] This value is set via the [code]interface/editor/display_scale[/code] and [code]interface/editor/custom_display_scale[/code] editor settings. Editor must be restarted for changes to be properly applied.
			</description>
		</method>
		<method name="get_editor_settings">
			<return type="EditorSettings" />
			<description>
				Returns the editor's [EditorSettings] instance.
			</description>
		</method>
		<method name="get_editor_viewport">
			<return type="Control" />
			<description>
				Returns the main editor control. Use this as a parent for main screens.
				[b]Note:[/b] This returns the main editor control containing the whole editor, not the 2D or 3D viewports specifically.
				[b]Warning:[/b] Removing and freeing this node will render a part of the editor useless and may cause a crash.
			</description>
		</method>
		<method name="get_file_system_dock">
			<return type="FileSystemDock" />
			<description>
				Returns the editor's [FileSystemDock] instance.
				[b]Warning:[/b] Removing and freeing this node will render a part of the editor useless and may cause a crash.
			</description>
		</method>
		<method name="get_inspector" qualifiers="const">
			<return type="EditorInspector" />
			<description>
				Returns the editor's [EditorInspector] instance.
				[b]Warning:[/b] Removing and freeing this node will render a part of the editor useless and may cause a crash.
			</description>
		</method>
		<method name="get_open_scenes" qualifiers="const">
			<return type="Array" />
			<description>
				Returns an [Array] with the file paths of the currently opened scenes.
			</description>
		</method>
		<method name="get_playing_scene" qualifiers="const">
			<return type="String" />
			<description>
				Returns the name of the scene that is being played. If no scene is currently being played, returns an empty string.
			</description>
		</method>
		<method name="get_resource_filesystem">
			<return type="EditorFileSystem" />
			<description>
				Returns the editor's [EditorFileSystem] instance.
			</description>
		</method>
		<method name="get_resource_previewer">
			<return type="EditorResourcePreview" />
			<description>
				Returns the editor's [EditorResourcePreview] instance.
			</description>
		</method>
		<method name="get_script_editor">
			<return type="ScriptEditor" />
			<description>
				Returns the editor's [ScriptEditor] instance.
				[b]Warning:[/b] Removing and freeing this node will render a part of the editor useless and may cause a crash.
			</description>
		</method>
		<method name="get_selected_path" qualifiers="const">
			<return type="String" />
			<description>
				Returns the path of the directory currently selected in the [FileSystemDock]. If a file is selected, its base directory will be returned using [method String.get_base_dir] instead.
			</description>
		</method>
		<method name="get_selection">
			<return type="EditorSelection" />
			<description>
				Returns the editor's [EditorSelection] instance.
			</description>
		</method>
		<method name="inspect_object">
			<return type="void" />
			<argument index="0" name="object" type="Object" />
			<argument index="1" name="for_property" type="String" default="&quot;&quot;" />
			<argument index="2" name="inspector_only" type="bool" default="false" />
			<description>
				Shows the given property on the given [code]object[/code] in the editor's Inspector dock. If [code]inspector_only[/code] is [code]true[/code], plugins will not attempt to edit [code]object[/code].
			</description>
		</method>
		<method name="is_playing_scene" qualifiers="const">
			<return type="bool" />
			<description>
				Returns [code]true[/code] if a scene is currently being played, [code]false[/code] otherwise. Paused scenes are considered as being played.
			</description>
		</method>
		<method name="is_plugin_enabled" qualifiers="const">
			<return type="bool" />
			<argument index="0" name="plugin" type="String" />
			<description>
				Returns [code]true[/code] if the specified [code]plugin[/code] is enabled. The plugin name is the same as its directory name.
			</description>
		</method>
		<method name="make_mesh_previews">
			<return type="Array" />
			<argument index="0" name="meshes" type="Array" />
			<argument index="1" name="preview_size" type="int" />
			<description>
				Returns mesh previews rendered at the given size as an [Array] of [Texture]s.
			</description>
		</method>
		<method name="open_scene_from_path">
			<return type="void" />
			<argument index="0" name="scene_filepath" type="String" />
			<description>
				Opens the scene at the given path.
			</description>
		</method>
		<method name="play_current_scene">
			<return type="void" />
			<description>
				Plays the currently active scene.
			</description>
		</method>
		<method name="play_custom_scene">
			<return type="void" />
			<argument index="0" name="scene_filepath" type="String" />
			<description>
				Plays the scene specified by its filepath.
			</description>
		</method>
		<method name="play_main_scene">
			<return type="void" />
			<description>
				Plays the main scene.
			</description>
		</method>
		<method name="reload_scene_from_path">
			<return type="void" />
			<argument index="0" name="scene_filepath" type="String" />
			<description>
				Reloads the scene at the given path.
			</description>
		</method>
		<method name="save_scene">
			<return type="int" enum="Error" />
			<description>
				Saves the scene. Returns either [code]OK[/code] or [code]ERR_CANT_CREATE[/code] (see [@GlobalScope] constants).
			</description>
		</method>
		<method name="save_scene_as">
			<return type="void" />
			<argument index="0" name="path" type="String" />
			<argument index="1" name="with_preview" type="bool" default="true" />
			<description>
				Saves the scene as a file at [code]path[/code].
			</description>
		</method>
		<method name="select_file">
			<return type="void" />
			<argument index="0" name="file" type="String" />
			<description>
				Selects the file, with the path provided by [code]file[/code], in the FileSystem dock.
			</description>
		</method>
		<method name="set_main_screen_editor">
			<return type="void" />
			<argument index="0" name="name" type="String" />
			<description>
				Sets the editor's current main screen to the one specified in [code]name[/code]. It will also make the editor's tab button at the top to be visible if it weren't. [code]name[/code] must match the text of the tab in question exactly like: [code]2D[/code], [code]3D[/code], [code]Script[/code].
			</description>
		</method>
		<method name="set_main_screen_editor_tab_button_visible">
			<return type="void" />
			<argument index="0" name="name" type="String" />
			<argument index="1" name="visible" type="bool" />
			<description>
				Sets whether the specified main screen's button is visible or not. Will not change the main screen. [code]name[/code] must match the text of the tab in question exactly like: [code]2D[/code], [code]3D[/code], [code]Script[/code], [code]AssetLib[/code].
			</description>
		</method>
		<method name="set_plugin_enabled">
			<return type="void" />
			<argument index="0" name="plugin" type="String" />
			<argument index="1" name="enabled" type="bool" />
			<description>
				Sets the enabled status of a plugin. The plugin name is the same as its directory name.
			</description>
		</method>
		<method name="stop_playing_scene">
			<return type="void" />
			<description>
				Stops the scene that is currently playing.
			</description>
		</method>
	</methods>
	<members>
		<member name="distraction_free_mode" type="bool" setter="set_distraction_free_mode" getter="is_distraction_free_mode_enabled">
			If [code]true[/code], enables distraction-free mode which hides side docks to increase the space available for the main view.
		</member>
	</members>
	<constants>
	</constants>
</class>
