// Copyright (c) 2015 - 2023 Doozy Entertainment. All Rights Reserved.
// This code can only be used under the standard Unity Asset Store End User License Agreement
// A Copy of the EULA APPENDIX 1 is available at http://unity3d.com/company/legal/as_terms
using System.Reflection;
using Doozy.Editor.EditorUI;
using Doozy.Editor.EditorUI.Utils;
using Doozy.Runtime.UIElements.Extensions;
using UnityEditor;
using UnityEditor.Experimental.GraphView;
using UnityEngine.UIElements;
// ReSharper disable MemberCanBePrivate.Global
namespace Doozy.Editor.Nody
{
public class NodyMiniMap : MiniMap
{
public static string editorPrefsKeyIsVisible => $"{nameof(NodyMiniMap)}_{nameof(isVisible)}";
public static bool GetPrefs_IsVisible() => EditorPrefs.GetBool(editorPrefsKeyIsVisible, true);
public static void SetPrefs_IsVisible(bool value) => EditorPrefs.SetBool(editorPrefsKeyIsVisible, value);
private bool m_IsVisible;
/// MiniMap visibility
public bool isVisible
{
get => m_IsVisible;
set
{
m_IsVisible = value;
this.SetStyleDisplay(value ? DisplayStyle.Flex : DisplayStyle.None);
SetPrefs_IsVisible(value);
}
}
public NodyMiniMap()
{
m_IsVisible = GetPrefs_IsVisible();
anchored = true;
this
.SetStyleDisplay(DisplayStyle.None)
.SetStyleBorderRadius(DesignUtils.k_Spacing2X)
.SetStyleBackgroundColor(EditorColors.Nody.MiniMapBackground);
typeof(MiniMap).GetField("m_ViewportColor", BindingFlags.NonPublic | BindingFlags.Instance)?
.SetValue(this, EditorColors.Nody.Color);
typeof(MiniMap).GetField("m_SelectedChildrenColor", BindingFlags.NonPublic | BindingFlags.Instance)?
.SetValue(this, EditorColors.Nody.Selection);
typeof(MiniMap).GetField("m_PlacematBorderColor", BindingFlags.NonPublic | BindingFlags.Instance)?
.SetValue(this, EditorColors.Nody.NodeIcon);
this.Q