From 89c51b90da419c472e955d2182715d416759e4ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mi=C5=82osz=20Matkowski?= Date: Mon, 9 Sep 2024 01:04:17 +0200 Subject: [PATCH] Conditional CustomEditor override --- Assets/Editor Toolbox/Editor/ToolboxDefines.cs | 1 + .../Editor/ToolboxDrawerModule.cs | 17 ++++++++++++++++- Assets/Editor Toolbox/Editor/ToolboxEditor.cs | 2 ++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/Assets/Editor Toolbox/Editor/ToolboxDefines.cs b/Assets/Editor Toolbox/Editor/ToolboxDefines.cs index 974700a0..1a3cfde4 100644 --- a/Assets/Editor Toolbox/Editor/ToolboxDefines.cs +++ b/Assets/Editor Toolbox/Editor/ToolboxDefines.cs @@ -3,5 +3,6 @@ internal static class ToolboxDefines { internal const string defaultListsDefine = "TOOLBOX_FORCE_DEFAULT_LISTS"; + internal const string ignoreEditorDefine = "TOOLBOX_IGNORE_CUSTOM_EDITOR"; } } \ No newline at end of file diff --git a/Assets/Editor Toolbox/Editor/ToolboxDrawerModule.cs b/Assets/Editor Toolbox/Editor/ToolboxDrawerModule.cs index bcc63674..429f9859 100644 --- a/Assets/Editor Toolbox/Editor/ToolboxDrawerModule.cs +++ b/Assets/Editor Toolbox/Editor/ToolboxDrawerModule.cs @@ -246,7 +246,10 @@ internal static void UpdateDrawers(IToolboxInspectorSettings settings) //create all type-only-related drawers PrepareTargetTypeDrawers(settings); - HandleDefaultLists(settings.ForceDefaultLists); + var useDefaultLists = settings.ForceDefaultLists; + HandleDefaultLists(useDefaultLists); + var ignoreCustomEditor = !settings.UseToolboxDrawers; + HandleIgnoreEditor(ignoreCustomEditor); //log errors into console only once validationEnabled = false; } @@ -301,6 +304,18 @@ internal static void HandleDefaultLists(bool value) } } + internal static void HandleIgnoreEditor(bool value) + { + if (value) + { + ScriptingUtility.AppendDefine(ToolboxDefines.ignoreEditorDefine); + } + else + { + ScriptingUtility.RemoveDefine(ToolboxDefines.ignoreEditorDefine); + } + } + internal static ToolboxDecoratorDrawerBase GetDecoratorDrawer(T attribute) where T : ToolboxDecoratorAttribute { return GetDecoratorDrawer(attribute.GetType()); diff --git a/Assets/Editor Toolbox/Editor/ToolboxEditor.cs b/Assets/Editor Toolbox/Editor/ToolboxEditor.cs index 96a6b6f9..3fec514a 100644 --- a/Assets/Editor Toolbox/Editor/ToolboxEditor.cs +++ b/Assets/Editor Toolbox/Editor/ToolboxEditor.cs @@ -9,7 +9,9 @@ namespace Toolbox.Editor /// /// Base Editor class for all Toolbox-related features. /// +#if !TOOLBOX_IGNORE_CUSTOM_EDITOR [CustomEditor(typeof(Object), true, isFallback = true)] +#endif [CanEditMultipleObjects] public class ToolboxEditor : Editor, IToolboxEditor {