Maze / Library /PackageCache /com.unity.visualscripting@1.8.0 /Editor /SettingsProvider /ProjectSettings /AssemblyOptionsSettings.cs
| using UnityEngine; | |
| using UnityEditor; | |
| namespace Unity.VisualScripting | |
| { | |
| public class AssemblyOptionsSettings | |
| { | |
| private const string CompleteLabel = "Regenerate Nodes"; | |
| private readonly PluginConfigurationItemMetadata _assemblyOptionsMetadata; | |
| private bool _showAssembly = false; | |
| private const string TitleAssembly = "Node Library"; | |
| private const string DescriptionAssembly = "Choose the assemblies in which you want to look for nodes.\n" | |
| + "By default, all project and Unity assemblies are included.\n" | |
| + "Unless you use a third-party plugin distributed as a DLL, you shouldn't need to change this."; | |
| public AssemblyOptionsSettings(BoltCoreConfiguration coreConfig) | |
| { | |
| _assemblyOptionsMetadata = coreConfig.GetMetadata(nameof(coreConfig.assemblyOptions)); | |
| } | |
| private static class Styles | |
| { | |
| public static readonly GUIStyle background; | |
| public static readonly GUIStyle defaultsButton; | |
| public const float OptionsWidth = 250; | |
| static Styles() | |
| { | |
| background = new GUIStyle(LudiqStyles.windowBackground); | |
| background.padding = new RectOffset(20, 20, 20, 20); | |
| defaultsButton = new GUIStyle("Button"); | |
| defaultsButton.padding = new RectOffset(10, 10, 4, 4); | |
| } | |
| } | |
| public void OnGUI() | |
| { | |
| _showAssembly = EditorGUILayout.Foldout(_showAssembly, new GUIContent(TitleAssembly, DescriptionAssembly)); | |
| if (_showAssembly) | |
| { | |
| GUILayout.BeginVertical(Styles.background, GUILayout.ExpandHeight(true)); | |
| float height = LudiqGUI.GetInspectorHeight(null, _assemblyOptionsMetadata, Styles.OptionsWidth, GUIContent.none); | |
| EditorGUI.BeginChangeCheck(); | |
| var position = GUILayoutUtility.GetRect(Styles.OptionsWidth, height); | |
| LudiqGUI.Inspector(_assemblyOptionsMetadata, position, GUIContent.none); | |
| if (EditorGUI.EndChangeCheck()) | |
| { | |
| _assemblyOptionsMetadata.Save(); | |
| Codebase.UpdateSettings(); | |
| } | |
| if (GUILayout.Button("Reset to Defaults", Styles.defaultsButton) && EditorUtility.DisplayDialog("Reset the Node Library", "Reset the Node Library to its default state?", "Reset to Default", "Cancel")) | |
| { | |
| _assemblyOptionsMetadata.Reset(true); | |
| _assemblyOptionsMetadata.Save(); | |
| } | |
| LudiqGUI.EndVertical(); | |
| } | |
| if (GUILayout.Button(CompleteLabel, Styles.defaultsButton)) | |
| { | |
| UnitBase.Rebuild(); | |
| EditorUtility.DisplayDialog("Visual Script", "Regenerate Nodes completed", "OK"); | |
| } | |
| } | |
| } | |
| } | |