diff --git a/Assets/Fungus/Scripts/Editor/FungusEditorPreferences.cs b/Assets/Fungus/Scripts/Editor/FungusEditorPreferences.cs index a69fd9f0..3dc30af3 100644 --- a/Assets/Fungus/Scripts/Editor/FungusEditorPreferences.cs +++ b/Assets/Fungus/Scripts/Editor/FungusEditorPreferences.cs @@ -1,6 +1,6 @@ -using UnityEngine; +using System.Linq; using UnityEditor; -using UnityEditor.Callbacks; +using UnityEngine; namespace Fungus { @@ -16,8 +16,8 @@ namespace Fungus { // Have we loaded the prefs yet private static bool prefsLoaded = false; - const string HIDE_MUSH_KEY = "hideMushroomInHierarchy"; - const string USE_LEGACY_MENUS = "useLegacyMenus"; + private const string HIDE_MUSH_KEY = "hideMushroomInHierarchy"; + private const string USE_LEGACY_MENUS = "useLegacyMenus"; public static bool hideMushroomInHierarchy; public static bool useLegacyMenus; @@ -47,6 +47,50 @@ namespace Fungus hideMushroomInHierarchy = EditorGUILayout.Toggle("Hide Mushroom Flowchart Icon", hideMushroomInHierarchy); useLegacyMenus = EditorGUILayout.Toggle(new GUIContent("Legacy Menus", "Force Legacy menus for Event, Add Variable and Add Command menus"), useLegacyMenus); + EditorGUILayout.Space(); + //ideally if any are null, but typically it is all or nothing that have broken links due to version changes or moving files external to Unity + if (FungusEditorResources.Add == null) + { + EditorGUILayout.HelpBox("FungusEditorResources need to be regenerated!", MessageType.Error); + } + + if (GUILayout.Button(new GUIContent("Select Fungus Editor Resources SO", "If Fungus icons are not showing correctly you may need to reassign the references in the FungusEditorResources. Button below will locate it."))) + { + var ids = AssetDatabase.FindAssets("t:FungusEditorResources"); + if (ids.Length > 0) + { + var p = AssetDatabase.GUIDToAssetPath(ids[0]); + var asset = AssetDatabase.LoadAssetAtPath(p); + Selection.activeObject = asset; + } + else + { + Debug.LogError("No FungusEditorResources found!"); + } + } + + if (GUILayout.Button("Open Changelog (version info)")) + { + //From project path down, look for our Fungus\Docs\ChangeLog.txt + var projectPath = System.IO.Directory.GetParent(Application.dataPath); + var fileMacthes = System.IO.Directory.GetFiles(projectPath.FullName, "CHANGELOG.txt", System.IO.SearchOption.AllDirectories); + + fileMacthes = fileMacthes.Where((x) => + { + var fileFolder = System.IO.Directory.GetParent(x); + return fileFolder.Name == "Docs" && fileFolder.Parent.Name == "Fungus"; + }).ToArray(); + + if (fileMacthes == null || fileMacthes.Length == 0) + { + Debug.LogWarning("Cannot locate Fungus\\Docs\\CHANGELONG.txt"); + } + else + { + Application.OpenURL(fileMacthes[0]); + } + } + // Save the preferences if (GUI.changed) {