From bbdafa9033b4dd859b9d95e276de6d2dc80808b7 Mon Sep 17 00:00:00 2001
From: Legendsmith <legendsmith.au@gmail.com>
Date: Tue, 22 Oct 2024 22:55:34 +1100
Subject: [PATCH] Update editor_plugin, utility, amd compat files for Godot 4.4

- Update #includes and header macros to account for the changes in godotengine/godot/#96389
- Tested by compiling with mingw64
---
 editor/limbo_ai_editor_plugin.cpp | 1 +
 util/limbo_compat.cpp             | 3 ++-
 util/limbo_compat.h               | 6 +++---
 util/limbo_utility.cpp            | 6 ++++++
 4 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/editor/limbo_ai_editor_plugin.cpp b/editor/limbo_ai_editor_plugin.cpp
index 2c80971..d2c5221 100644
--- a/editor/limbo_ai_editor_plugin.cpp
+++ b/editor/limbo_ai_editor_plugin.cpp
@@ -35,6 +35,7 @@
 #include "editor/editor_file_system.h"
 #include "editor/editor_help.h"
 #include "editor/editor_interface.h"
+#include "editor/editor_main_screen.h"
 #include "editor/editor_paths.h"
 #include "editor/editor_settings.h"
 #include "editor/filesystem_dock.h"
diff --git a/util/limbo_compat.cpp b/util/limbo_compat.cpp
index 3be7317..be0f5c1 100644
--- a/util/limbo_compat.cpp
+++ b/util/limbo_compat.cpp
@@ -17,6 +17,7 @@
 #include "core/io/resource.h"
 #include "core/variant/variant.h"
 #include "editor/editor_node.h"
+#include "editor/editor_main_screen.h"
 #include "editor/plugins/script_editor_plugin.h"
 #endif // TOOLS_ENABLED
 
@@ -213,7 +214,7 @@ Variant VARIANT_DEFAULT(Variant::Type p_type) {
 void SHOW_BUILTIN_DOC(const String &p_topic) {
 #ifdef LIMBOAI_MODULE
 	ScriptEditor::get_singleton()->goto_help(p_topic);
-	EditorNode::get_singleton()->set_visible_editor(EditorNode::EDITOR_SCRIPT);
+	EditorNode::get_singleton()->get_editor_main_screen()->select(EditorMainScreen::EDITOR_SCRIPT);
 #elif LIMBOAI_GDEXTENSION
 	TypedArray<ScriptEditorBase> open_editors = EditorInterface::get_singleton()->get_script_editor()->get_open_script_editors();
 	ERR_FAIL_COND_MSG(open_editors.size() == 0, "Can't open help page. Need at least one script open in the script editor.");
diff --git a/util/limbo_compat.h b/util/limbo_compat.h
index 6f1da9e..37e7861 100644
--- a/util/limbo_compat.h
+++ b/util/limbo_compat.h
@@ -28,7 +28,7 @@
 #define EDITOR_FILE_SYSTEM() (EditorFileSystem::get_singleton())
 #define EDITOR_SETTINGS() (EditorSettings::get_singleton())
 #define BASE_CONTROL() (EditorNode::get_singleton()->get_gui_base())
-#define MAIN_SCREEN_CONTROL() (EditorNode::get_singleton()->get_main_screen_control())
+#define MAIN_SCREEN_CONTROL() (EditorNode::get_singleton()->get_editor_main_screen()->get_control())
 #define SCENE_TREE() (SceneTree::get_singleton())
 #define IS_DEBUGGER_ACTIVE() (EngineDebugger::is_active())
 #define FS_DOCK_SELECT_FILE(m_path) FileSystemDock::get_singleton()->select_file(m_path)
@@ -47,7 +47,7 @@
 #define GET_PROJECT_SETTINGS_DIR() EditorPaths::get_singleton()->get_project_settings_dir()
 #define EDIT_RESOURCE(m_res) EditorNode::get_singleton()->edit_resource(m_res)
 #define INSPECTOR_GET_EDITED_OBJECT() (InspectorDock::get_inspector_singleton()->get_edited_object())
-#define SET_MAIN_SCREEN_EDITOR(m_name) (EditorNode::get_singleton()->select_editor_by_name(m_name))
+#define SET_MAIN_SCREEN_EDITOR(m_name) (EditorNode::get_singleton()->get_editor_main_screen()->select_by_name(m_name))
 #define FILE_EXISTS(m_path) FileAccess::exists(m_path)
 #define DIR_ACCESS_CREATE() DirAccess::create(DirAccess::ACCESS_RESOURCES)
 #define PERFORMANCE_ADD_CUSTOM_MONITOR(m_id, m_callable) (Performance::get_singleton()->add_custom_monitor(m_id, m_callable, Variant()))
@@ -85,7 +85,7 @@ using namespace godot;
 #define EDITOR_FILE_SYSTEM() (EditorInterface::get_singleton()->get_resource_filesystem())
 #define EDITOR_SETTINGS() (EditorInterface::get_singleton()->get_editor_settings())
 #define BASE_CONTROL() (EditorInterface::get_singleton()->get_base_control())
-#define MAIN_SCREEN_CONTROL() (EditorInterface::get_singleton()->get_editor_main_screen())
+#define MAIN_SCREEN_CONTROL() (EditorInterface::get_singleton()->get_editor_main_screen()->get_control())
 #define SCENE_TREE() ((SceneTree *)(Engine::get_singleton()->get_main_loop()))
 #define IS_DEBUGGER_ACTIVE() (EngineDebugger::get_singleton()->is_active())
 #define FS_DOCK_SELECT_FILE(m_path) EditorInterface::get_singleton()->get_file_system_dock()->navigate_to_path(m_path)
diff --git a/util/limbo_utility.cpp b/util/limbo_utility.cpp
index e5f16f6..9127c75 100644
--- a/util/limbo_utility.cpp
+++ b/util/limbo_utility.cpp
@@ -416,6 +416,12 @@ String LimboUtility::get_property_hint_text(PropertyHint p_hint) const {
 		case PROPERTY_HINT_MAX: {
 			return "MAX";
 		}
+		case PROPERTY_HINT_DICTIONARY_TYPE: {
+			return "DICTIONARY_TYPE";
+		}
+		case PROPERTY_HINT_TOOL_BUTTON: {
+			return "TOOL_BUTTON";
+		}
 	}
 	return "";
 }