godot/editor/editor_node.cpp

/**************************************************************************/
/*  editor_node.cpp                                                       */
/**************************************************************************/
/*                         This file is part of:                          */
/*                             GODOT ENGINE                               */
/*                        https://godotengine.org                         */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur.                  */
/*                                                                        */
/* Permission is hereby granted, free of charge, to any person obtaining  */
/* a copy of this software and associated documentation files (the        */
/* "Software"), to deal in the Software without restriction, including    */
/* without limitation the rights to use, copy, modify, merge, publish,    */
/* distribute, sublicense, and/or sell copies of the Software, and to     */
/* permit persons to whom the Software is furnished to do so, subject to  */
/* the following conditions:                                              */
/*                                                                        */
/* The above copyright notice and this permission notice shall be         */
/* included in all copies or substantial portions of the Software.        */
/*                                                                        */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,        */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF     */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY   */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,   */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE      */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                 */
/**************************************************************************/

#include "editor_node.h"

#include "core/config/project_settings.h"
#include "core/extension/gdextension_manager.h"
#include "core/input/input.h"
#include "core/io/config_file.h"
#include "core/io/file_access.h"
#include "core/io/resource_loader.h"
#include "core/io/resource_saver.h"
#include "core/object/class_db.h"
#include "core/os/keyboard.h"
#include "core/os/os.h"
#include "core/os/time.h"
#include "core/string/print_string.h"
#include "core/string/translation_server.h"
#include "core/version.h"
#include "editor/editor_string_names.h"
#include "editor/plugins/editor_context_menu_plugin.h"
#include "main/main.h"
#include "scene/3d/bone_attachment_3d.h"
#include "scene/animation/animation_tree.h"
#include "scene/gui/color_picker.h"
#include "scene/gui/dialogs.h"
#include "scene/gui/file_dialog.h"
#include "scene/gui/link_button.h"
#include "scene/gui/menu_bar.h"
#include "scene/gui/menu_button.h"
#include "scene/gui/panel.h"
#include "scene/gui/panel_container.h"
#include "scene/gui/popup.h"
#include "scene/gui/rich_text_label.h"
#include "scene/gui/split_container.h"
#include "scene/gui/tab_container.h"
#include "scene/main/window.h"
#include "scene/property_utils.h"
#include "scene/resources/image_texture.h"
#include "scene/resources/packed_scene.h"
#include "scene/resources/portable_compressed_texture.h"
#include "scene/theme/theme_db.h"
#include "servers/display_server.h"
#include "servers/navigation_server_3d.h"
#include "servers/physics_server_2d.h"
#include "servers/rendering_server.h"

#include "editor/audio_stream_preview.h"
#include "editor/debugger/editor_debugger_node.h"
#include "editor/debugger/script_editor_debugger.h"
#include "editor/dependency_editor.h"
#include "editor/editor_about.h"
#include "editor/editor_audio_buses.h"
#include "editor/editor_build_profile.h"
#include "editor/editor_command_palette.h"
#include "editor/editor_data.h"
#include "editor/editor_dock_manager.h"
#include "editor/editor_feature_profile.h"
#include "editor/editor_folding.h"
#include "editor/editor_help.h"
#include "editor/editor_inspector.h"
#include "editor/editor_interface.h"
#include "editor/editor_layouts_dialog.h"
#include "editor/editor_log.h"
#include "editor/editor_main_screen.h"
#include "editor/editor_native_shader_source_visualizer.h"
#include "editor/editor_paths.h"
#include "editor/editor_properties.h"
#include "editor/editor_property_name_processor.h"
#include "editor/editor_resource_picker.h"
#include "editor/editor_resource_preview.h"
#include "editor/editor_run.h"
#include "editor/editor_run_native.h"
#include "editor/editor_settings.h"
#include "editor/editor_settings_dialog.h"
#include "editor/editor_translation_parser.h"
#include "editor/editor_undo_redo_manager.h"
#include "editor/export/editor_export.h"
#include "editor/export/export_template_manager.h"
#include "editor/export/project_export.h"
#include "editor/fbx_importer_manager.h"
#include "editor/filesystem_dock.h"
#include "editor/gui/editor_bottom_panel.h"
#include "editor/gui/editor_file_dialog.h"
#include "editor/gui/editor_quick_open_dialog.h"
#include "editor/gui/editor_run_bar.h"
#include "editor/gui/editor_scene_tabs.h"
#include "editor/gui/editor_title_bar.h"
#include "editor/gui/editor_toaster.h"
#include "editor/history_dock.h"
#include "editor/import/3d/editor_import_collada.h"
#include "editor/import/3d/resource_importer_obj.h"
#include "editor/import/3d/resource_importer_scene.h"
#include "editor/import/3d/scene_import_settings.h"
#include "editor/import/audio_stream_import_settings.h"
#include "editor/import/dynamic_font_import_settings.h"
#include "editor/import/resource_importer_bitmask.h"
#include "editor/import/resource_importer_bmfont.h"
#include "editor/import/resource_importer_csv_translation.h"
#include "editor/import/resource_importer_dynamic_font.h"
#include "editor/import/resource_importer_image.h"
#include "editor/import/resource_importer_imagefont.h"
#include "editor/import/resource_importer_layered_texture.h"
#include "editor/import/resource_importer_shader_file.h"
#include "editor/import/resource_importer_texture.h"
#include "editor/import/resource_importer_texture_atlas.h"
#include "editor/import/resource_importer_wav.h"
#include "editor/import_dock.h"
#include "editor/inspector_dock.h"
#include "editor/multi_node_edit.h"
#include "editor/node_dock.h"
#include "editor/plugins/animation_player_editor_plugin.h"
#include "editor/plugins/asset_library_editor_plugin.h"
#include "editor/plugins/canvas_item_editor_plugin.h"
#include "editor/plugins/debugger_editor_plugin.h"
#include "editor/plugins/dedicated_server_export_plugin.h"
#include "editor/plugins/editor_plugin.h"
#include "editor/plugins/editor_preview_plugins.h"
#include "editor/plugins/editor_resource_conversion_plugin.h"
#include "editor/plugins/gdextension_export_plugin.h"
#include "editor/plugins/material_editor_plugin.h"
#include "editor/plugins/mesh_library_editor_plugin.h"
#include "editor/plugins/node_3d_editor_plugin.h"
#include "editor/plugins/packed_scene_translation_parser_plugin.h"
#include "editor/plugins/particle_process_material_editor_plugin.h"
#include "editor/plugins/plugin_config_dialog.h"
#include "editor/plugins/root_motion_editor_plugin.h"
#include "editor/plugins/script_text_editor.h"
#include "editor/plugins/text_editor.h"
#include "editor/plugins/version_control_editor_plugin.h"
#include "editor/plugins/visual_shader_editor_plugin.h"
#include "editor/progress_dialog.h"
#include "editor/project_settings_editor.h"
#include "editor/register_exporters.h"
#include "editor/scene_tree_dock.h"
#include "editor/surface_upgrade_tool.h"
#include "editor/themes/editor_scale.h"
#include "editor/themes/editor_theme_manager.h"
#include "editor/window_wrapper.h"

#include <stdio.h>
#include <stdlib.h>

#include "modules/modules_enabled.gen.h" // For gdscript, mono.

EditorNode *EditorNode::singleton =;

static const String EDITOR_NODE_CONFIG_SECTION =;

static const String REMOVE_ANDROID_BUILD_TEMPLATE_MESSAGE =;
static const String INSTALL_ANDROID_BUILD_TEMPLATE_MESSAGE =;

bool EditorProgress::step(const String &p_state, int p_step, bool p_force_refresh) {}

EditorProgress::EditorProgress(const String &p_task, const String &p_label, int p_amount, bool p_can_cancel, bool p_force_background) {}

EditorProgress::~EditorProgress() {}

void EditorNode::disambiguate_filenames(const Vector<String> p_full_paths, Vector<String> &r_filenames) {}

void EditorNode::_version_control_menu_option(int p_idx) {}

void EditorNode::_update_title() {}

void EditorNode::shortcut_input(const Ref<InputEvent> &p_event) {}

void EditorNode::_update_vsync_mode() {}

void EditorNode::_update_from_settings() {}

void EditorNode::_gdextensions_reloaded() {}

void EditorNode::_update_theme(bool p_skip_creation) {}

void EditorNode::update_preview_themes(int p_mode) {}

void EditorNode::_notification(int p_what) {}

void EditorNode::_update_update_spinner() {}

void EditorNode::init_plugins() {}

void EditorNode::_on_plugin_ready(Object *p_script, const String &p_activate_name) {}

void EditorNode::_remove_plugin_from_enabled(const String &p_name) {}

void EditorNode::_plugin_over_edit(EditorPlugin *p_plugin, Object *p_object) {}

void EditorNode::_plugin_over_self_own(EditorPlugin *p_plugin) {}

void EditorNode::_resources_changed(const Vector<String> &p_resources) {}

void EditorNode::_fs_changed() {}

void EditorNode::_resources_reimporting(const Vector<String> &p_resources) {}

void EditorNode::_resources_reimported(const Vector<String> &p_resources) {}

void EditorNode::_sources_changed(bool p_exist) {}

void EditorNode::_scan_external_changes() {}

void EditorNode::_resave_scenes(String p_str) {}

void EditorNode::_reload_modified_scenes() {}

void EditorNode::_reload_project_settings() {}

void EditorNode::_vp_resized() {}

void EditorNode::_viewport_resized() {}

void EditorNode::_titlebar_resized() {}

void EditorNode::_update_undo_redo_allowed() {}

void EditorNode::_node_renamed() {}

void EditorNode::_open_command_palette() {}

Error EditorNode::load_resource(const String &p_resource, bool p_ignore_broken_deps) {}

void EditorNode::edit_node(Node *p_node) {}

void EditorNode::edit_resource(const Ref<Resource> &p_resource) {}

void EditorNode::save_resource_in_path(const Ref<Resource> &p_resource, const String &p_path) {}

void EditorNode::save_resource(const Ref<Resource> &p_resource) {}

void EditorNode::save_resource_as(const Ref<Resource> &p_resource, const String &p_at_path) {}

void EditorNode::_menu_option(int p_option) {}

void EditorNode::_menu_confirm_current() {}

void EditorNode::trigger_menu_option(int p_option, bool p_confirmed) {}

void EditorNode::_dialog_display_save_error(String p_file, Error p_error) {}

void EditorNode::_dialog_display_load_error(String p_file, Error p_error) {}

void EditorNode::_load_editor_plugin_states_from_config(const Ref<ConfigFile> &p_config_file) {}

void EditorNode::_save_editor_states(const String &p_file, int p_idx) {}

bool EditorNode::_find_and_save_resource(Ref<Resource> p_res, HashMap<Ref<Resource>, bool> &processed, int32_t flags) {}

bool EditorNode::_find_and_save_edited_subresources(Object *obj, HashMap<Ref<Resource>, bool> &processed, int32_t flags) {}

void EditorNode::_save_edited_subresources(Node *scene, HashMap<Ref<Resource>, bool> &processed, int32_t flags) {}

void EditorNode::_find_node_types(Node *p_node, int &count_2d, int &count_3d) {}

void EditorNode::_save_scene_with_preview(String p_file, int p_idx) {}

void EditorNode::_close_save_scene_progress() {}

bool EditorNode::_validate_scene_recursive(const String &p_filename, Node *p_node) {}

int EditorNode::_save_external_resources(bool p_also_save_external_data) {}

static void _reset_animation_mixers(Node *p_node, List<Pair<AnimationMixer *, Ref<AnimatedValuesBackup>>> *r_anim_backups) {}

void EditorNode::_save_scene(String p_file, int idx) {}

void EditorNode::save_all_scenes() {}

void EditorNode::save_scene_if_open(const String &p_scene_path) {}

void EditorNode::save_scene_list(const HashSet<String> &p_scene_paths) {}

void EditorNode::save_before_run() {}

void EditorNode::try_autosave() {}

void EditorNode::restart_editor() {}

void EditorNode::_save_all_scenes() {}

void EditorNode::_mark_unsaved_scenes() {}

void EditorNode::_dialog_action(String p_file) {}

bool EditorNode::_is_class_editor_disabled_by_feature_profile(const StringName &p_class) {}

void EditorNode::edit_item(Object *p_object, Object *p_editing_owner) {}

void EditorNode::push_node_item(Node *p_node) {}

void EditorNode::push_item(Object *p_object, const String &p_property, bool p_inspector_only) {}

void EditorNode::edit_previous_item() {}

void EditorNode::push_item_no_inspector(Object *p_object) {}

void EditorNode::save_default_environment() {}

void EditorNode::hide_unused_editors(const Object *p_editing_owner) {}

static bool overrides_external_editor(Object *p_object) {}

void EditorNode::_add_to_history(const Object *p_object, const String &p_property, bool p_inspector_only) {}

void EditorNode::_edit_current(bool p_skip_foreign, bool p_skip_inspector_update) {}

void EditorNode::_android_build_source_selected(const String &p_file) {}

void EditorNode::_android_export_preset_selected(int p_index) {}

void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) {}

String EditorNode::adjust_scene_name_casing(const String &p_root_name) {}

String EditorNode::adjust_script_name_casing(const String &p_file_name, ScriptLanguage::ScriptNameCasing p_auto_casing) {}

void EditorNode::_request_screenshot() {}

void EditorNode::_screenshot(bool p_use_utc) {}

void EditorNode::_save_screenshot(NodePath p_path) {}

void EditorNode::_check_system_theme_changed() {}

void EditorNode::_tool_menu_option(int p_idx) {}

void EditorNode::_export_as_menu_option(int p_idx) {}

int EditorNode::_next_unsaved_scene(bool p_valid_filename, int p_start) {}

void EditorNode::_exit_editor(int p_exit_code) {}

void EditorNode::unload_editor_addons() {}

void EditorNode::_discard_changes(const String &p_str) {}

void EditorNode::_update_file_menu_opened() {}

void EditorNode::_update_file_menu_closed() {}

void EditorNode::replace_resources_in_object(Object *p_object, const Vector<Ref<Resource>> &p_source_resources, const Vector<Ref<Resource>> &p_target_resource) {}

void EditorNode::replace_resources_in_scenes(const Vector<Ref<Resource>> &p_source_resources, const Vector<Ref<Resource>> &p_target_resource) {}

void EditorNode::add_editor_plugin(EditorPlugin *p_editor, bool p_config_changed) {}

void EditorNode::remove_editor_plugin(EditorPlugin *p_editor, bool p_config_changed) {}

void EditorNode::add_extension_editor_plugin(const StringName &p_class_name) {}

void EditorNode::remove_extension_editor_plugin(const StringName &p_class_name) {}

void EditorNode::_update_addon_config() {}

void EditorNode::set_addon_plugin_enabled(const String &p_addon, bool p_enabled, bool p_config_changed) {}

bool EditorNode::is_addon_plugin_enabled(const String &p_addon) const {}

void EditorNode::_remove_edited_scene(bool p_change_tab) {}

void EditorNode::_remove_scene(int index, bool p_change_tab) {}

void EditorNode::set_edited_scene(Node *p_scene) {}

void EditorNode::set_edited_scene_root(Node *p_scene, bool p_auto_add) {}

Dictionary EditorNode::_get_main_scene_state() {}

void EditorNode::_set_main_scene_state(Dictionary p_state, Node *p_for_scene) {}

bool EditorNode::is_changing_scene() const {}

void EditorNode::_set_current_scene(int p_idx) {}

void EditorNode::_set_current_scene_nocheck(int p_idx) {}

void EditorNode::setup_color_picker(ColorPicker *p_picker) {}

bool EditorNode::is_scene_open(const String &p_path) {}

bool EditorNode::is_multi_window_enabled() const {}

void EditorNode::fix_dependencies(const String &p_for_file) {}

int EditorNode::new_scene() {}

Error EditorNode::load_scene(const String &p_scene, bool p_ignore_broken_deps, bool p_set_inherited, bool p_force_open_imported, bool p_silent_change_tab) {}

HashMap<StringName, Variant> EditorNode::get_modified_properties_for_node(Node *p_node, bool p_node_references_only) {}

HashMap<StringName, Variant> EditorNode::get_modified_properties_reference_to_nodes(Node *p_node, List<Node *> &p_nodes_referenced_by) {}

void EditorNode::update_node_from_node_modification_entry(Node *p_node, ModificationNodeEntry &p_node_modification) {}

bool EditorNode::is_additional_node_in_scene(Node *p_edited_scene, Node *p_reimported_root, Node *p_node) {}

void EditorNode::get_scene_editor_data_for_node(Node *p_root, Node *p_node, HashMap<NodePath, SceneEditorDataEntry> &p_table) {}

void EditorNode::get_preload_scene_modification_table(
		Node *p_edited_scene,
		Node *p_reimported_root,
		Node *p_node, InstanceModificationsEntry &p_instance_modifications) {}

void EditorNode::get_preload_modifications_reference_to_nodes(
		Node *p_root,
		Node *p_node,
		HashSet<Node *> &p_excluded_nodes,
		List<Node *> &p_instance_list_with_children,
		HashMap<NodePath, ModificationNodeEntry> &p_modification_table) {}

void EditorNode::get_children_nodes(Node *p_node, List<Node *> &p_nodes) {}

void EditorNode::replace_history_reimported_nodes(Node *p_original_root_node, Node *p_new_root_node, Node *p_node) {}

void EditorNode::open_request(const String &p_path) {}

bool EditorNode::has_previous_scenes() const {}

void EditorNode::edit_foreign_resource(Ref<Resource> p_resource) {}

bool EditorNode::is_resource_read_only(Ref<Resource> p_resource, bool p_foreign_resources_are_writable) {}

void EditorNode::request_instantiate_scene(const String &p_path) {}

void EditorNode::request_instantiate_scenes(const Vector<String> &p_files) {}

String EditorNode::get_multiwindow_support_tooltip_text() const {}

void EditorNode::_inherit_request(String p_file) {}

void EditorNode::_instantiate_request(const Vector<String> &p_files) {}

void EditorNode::_close_messages() {}

void EditorNode::_show_messages() {}

void EditorNode::_add_to_recent_scenes(const String &p_scene) {}

void EditorNode::_open_recent_scene(int p_idx) {}

void EditorNode::_update_recent_scenes() {}

void EditorNode::_quick_opened(const String &p_file_path) {}

void EditorNode::_project_run_started() {}

void EditorNode::_project_run_stopped() {}

void EditorNode::notify_all_debug_sessions_exited() {}

void EditorNode::add_io_error(const String &p_error) {}

void EditorNode::add_io_warning(const String &p_warning) {}

bool EditorNode::_find_scene_in_use(Node *p_node, const String &p_path) const {}

bool EditorNode::is_scene_in_use(const String &p_path) {}

OS::ProcessID EditorNode::has_child_process(OS::ProcessID p_pid) const {}

void EditorNode::stop_child_process(OS::ProcessID p_pid) {}

Ref<Script> EditorNode::get_object_custom_type_base(const Object *p_object) const {}

StringName EditorNode::get_object_custom_type_name(const Object *p_object) const {}

void EditorNode::_pick_main_scene_custom_action(const String &p_custom_action_name) {}

Ref<Texture2D> EditorNode::_get_class_or_script_icon(const String &p_class, const Ref<Script> &p_script, const String &p_fallback, bool p_fallback_script_to_theme) {}

Ref<Texture2D> EditorNode::get_object_icon(const Object *p_object, const String &p_fallback) {}

Ref<Texture2D> EditorNode::get_class_icon(const String &p_class, const String &p_fallback) {}

bool EditorNode::is_object_of_custom_type(const Object *p_object, const StringName &p_class) {}

void EditorNode::progress_add_task(const String &p_task, const String &p_label, int p_steps, bool p_can_cancel) {}

bool EditorNode::progress_task_step(const String &p_task, const String &p_state, int p_step, bool p_force_refresh) {}

void EditorNode::progress_end_task(const String &p_task) {}

void EditorNode::progress_add_task_bg(const String &p_task, const String &p_label, int p_steps) {}

void EditorNode::progress_task_step_bg(const String &p_task, int p_step) {}

void EditorNode::progress_end_task_bg(const String &p_task) {}

void EditorNode::_progress_dialog_visibility_changed() {}

void EditorNode::_load_error_dialog_visibility_changed() {}

String EditorNode::_get_system_info() const {}

bool EditorNode::_should_display_update_spinner() const {}

Ref<Texture2D> EditorNode::_file_dialog_get_icon(const String &p_path) {}

void EditorNode::_build_icon_type_cache() {}

void EditorNode::_enable_pending_addons() {}

void EditorNode::_file_dialog_register(FileDialog *p_dialog) {}

void EditorNode::_file_dialog_unregister(FileDialog *p_dialog) {}

void EditorNode::_editor_file_dialog_register(EditorFileDialog *p_dialog) {}

void EditorNode::_editor_file_dialog_unregister(EditorFileDialog *p_dialog) {}

Vector<EditorNodeInitCallback> EditorNode::_init_callbacks;

void EditorNode::_begin_first_scan() {}

Error EditorNode::export_preset(const String &p_preset, const String &p_path, bool p_debug, bool p_pack_only, bool p_android_build_template, bool p_patch, const Vector<String> &p_patches) {}

bool EditorNode::is_project_exporting() const {}

void EditorNode::show_accept(const String &p_text, const String &p_title) {}

void EditorNode::show_save_accept(const String &p_text, const String &p_title) {}

void EditorNode::show_warning(const String &p_text, const String &p_title) {}

void EditorNode::_copy_warning(const String &p_str) {}

void EditorNode::_save_editor_layout() {}

void EditorNode::_save_open_scenes_to_config(Ref<ConfigFile> p_layout) {}

void EditorNode::save_editor_layout_delayed() {}

void EditorNode::_load_editor_layout() {}

void EditorNode::_save_central_editor_layout_to_config(Ref<ConfigFile> p_config_file) {}

void EditorNode::_load_central_editor_layout_from_config(Ref<ConfigFile> p_config_file) {}

void EditorNode::_save_window_settings_to_config(Ref<ConfigFile> p_layout, const String &p_section) {}

void EditorNode::_load_open_scenes_from_config(Ref<ConfigFile> p_layout) {}

bool EditorNode::has_scenes_in_session() {}

void EditorNode::undo() {}

void EditorNode::redo() {}

bool EditorNode::ensure_main_scene(bool p_from_native) {}

void EditorNode::_immediate_dialog_confirmed() {}
bool EditorNode::immediate_confirmation_dialog(const String &p_text, const String &p_ok_text, const String &p_cancel_text, uint32_t p_wrap_width) {}

void EditorNode::cleanup() {}

void EditorNode::_update_layouts_menu() {}

void EditorNode::_layout_menu_option(int p_id) {}

void EditorNode::_proceed_closing_scene_tabs() {}

bool EditorNode::_is_closing_editor() const {}

void EditorNode::_scene_tab_closed(int p_tab) {}

void EditorNode::_cancel_close_scene_tab() {}

void EditorNode::_toggle_distraction_free_mode() {}

void EditorNode::update_distraction_free_mode() {}

void EditorNode::set_distraction_free_mode(bool p_enter) {}

bool EditorNode::is_distraction_free_mode_enabled() const {}

Dictionary EditorNode::drag_resource(const Ref<Resource> &p_res, Control *p_from) {}

Dictionary EditorNode::drag_files_and_dirs(const Vector<String> &p_paths, Control *p_from) {}

void EditorNode::add_tool_menu_item(const String &p_name, const Callable &p_callback) {}

void EditorNode::add_tool_submenu_item(const String &p_name, PopupMenu *p_submenu) {}

void EditorNode::remove_tool_menu_item(const String &p_name) {}

PopupMenu *EditorNode::get_export_as_menu() {}

void EditorNode::_dropped_files(const Vector<String> &p_files) {}

void EditorNode::_add_dropped_files_recursive(const Vector<String> &p_files, String to_path) {}

void EditorNode::_file_access_close_error_notify(const String &p_str) {}

void EditorNode::_file_access_close_error_notify_impl(const String &p_str) {}

// Recursive function to inform nodes that an array of nodes have had their scene reimported.
// It will attempt to call a method named '_nodes_scene_reimported' on every node in the
// tree so that editor scripts which create transient nodes will have the opportunity
// to recreate them.
void EditorNode::_notify_nodes_scene_reimported(Node *p_node, Array p_reimported_nodes) {}

void EditorNode::reload_scene(const String &p_path) {}

void EditorNode::find_all_instances_inheriting_path_in_node(Node *p_root, Node *p_node, const String &p_instance_path, HashSet<Node *> &p_instance_list) {}

void EditorNode::preload_reimporting_with_path_in_edited_scenes(const List<String> &p_scenes) {}

void EditorNode::reload_instances_with_path_in_edited_scenes() {}

void EditorNode::_remove_all_not_owned_children(Node *p_node, Node *p_owner) {}

int EditorNode::plugin_init_callback_count =;

void EditorNode::add_plugin_init_callback(EditorPluginInitializeCallback p_callback) {}

EditorPluginInitializeCallback EditorNode::plugin_init_callbacks[EditorNode::MAX_INIT_CALLBACKS];

int EditorNode::build_callback_count =;

void EditorNode::add_build_callback(EditorBuildCallback p_callback) {}

EditorBuildCallback EditorNode::build_callbacks[EditorNode::MAX_BUILD_CALLBACKS];

bool EditorNode::call_build() {}

void EditorNode::_inherit_imported(const String &p_action) {}

void EditorNode::_open_imported() {}

void EditorNode::dim_editor(bool p_dimming) {}

bool EditorNode::is_editor_dimmed() const {}

void EditorNode::open_export_template_manager() {}

void EditorNode::add_resource_conversion_plugin(const Ref<EditorResourceConversionPlugin> &p_plugin) {}

void EditorNode::remove_resource_conversion_plugin(const Ref<EditorResourceConversionPlugin> &p_plugin) {}

Vector<Ref<EditorResourceConversionPlugin>> EditorNode::find_resource_conversion_plugin_for_resource(const Ref<Resource> &p_for_resource) {}

Vector<Ref<EditorResourceConversionPlugin>> EditorNode::find_resource_conversion_plugin_for_type_name(const String &p_type) {}

void EditorNode::_update_renderer_color() {}

void EditorNode::_renderer_selected(int p_which) {}

void EditorNode::_add_renderer_entry(const String &p_renderer_name, bool p_mark_overridden) {}

void EditorNode::_resource_saved(Ref<Resource> p_resource, const String &p_path) {}

void EditorNode::_resource_loaded(Ref<Resource> p_resource, const String &p_path) {}

void EditorNode::_feature_profile_changed() {}

void EditorNode::_bind_methods() {}

static Node *_resource_get_edited_scene() {}

void EditorNode::_print_handler(void *p_this, const String &p_string, bool p_error, bool p_rich) {}

void EditorNode::_print_handler_impl(const String &p_string, bool p_error, bool p_rich) {}

static void _execute_thread(void *p_ud) {}

int EditorNode::execute_and_show_output(const String &p_title, const String &p_path, const List<String> &p_arguments, bool p_close_on_ok, bool p_close_on_errors, String *r_output) {}

EditorNode::EditorNode() {}

EditorNode::~EditorNode() {}

/*
 * EDITOR PLUGIN LIST
 */

void EditorPluginList::make_visible(bool p_visible) {}

void EditorPluginList::edit(Object *p_object) {}

bool EditorPluginList::forward_gui_input(const Ref<InputEvent> &p_event) {}

EditorPlugin::AfterGUIInput EditorPluginList::forward_3d_gui_input(Camera3D *p_camera, const Ref<InputEvent> &p_event, bool serve_when_force_input_enabled) {}

void EditorPluginList::forward_canvas_draw_over_viewport(Control *p_overlay) {}

void EditorPluginList::forward_canvas_force_draw_over_viewport(Control *p_overlay) {}

void EditorPluginList::forward_3d_draw_over_viewport(Control *p_overlay) {}

void EditorPluginList::forward_3d_force_draw_over_viewport(Control *p_overlay) {}

void EditorPluginList::add_plugin(EditorPlugin *p_plugin) {}

void EditorPluginList::remove_plugin(EditorPlugin *p_plugin) {}

bool EditorPluginList::is_empty() {}

void EditorPluginList::clear() {}

EditorPluginList::EditorPluginList() {}

EditorPluginList::~EditorPluginList() {}