void OnGUI() { if (EditedDialogue == null || EditorInfo == null) { GUILayout.Label("Please, select a Dialogue to edit!", EditorStyles.boldLabel); return; } CurrentNodes = new List <DialogueNode>(EditedDialogue.GetAllNodes()); CurrentOptions = new List <DialogueOption>(EditedDialogue.GetAllOptions()); CurrentConditions = new List <ConditionNode>(EditedDialogue.GetAllConditions()); if (DialogueNodeActionsFoldouts == null) { DialogueNodeActionsFoldouts = new List <bool>(); foreach (DialogueNode node in CurrentNodes) { DialogueNodeActionsFoldouts.Add(false); } } if (DialogueNodeOptionsFoldouts == null) { DialogueNodeOptionsFoldouts = new List <bool>(); foreach (DialogueNode node in CurrentNodes) { DialogueNodeOptionsFoldouts.Add(false); } } if (Config == null) { Config = new EditorConfigurationData(); } int margins = 5; int editorMenuHeight = 40; int debugAreaHeight = 25; GUILayout.BeginArea(new Rect(margins, margins, position.width - 2 * margins, editorMenuHeight)); { DrawEditorMenu(); } GUILayout.EndArea(); DrawDebug(debugAreaHeight, margins); GUILayout.BeginArea( new Rect( margins, editorMenuHeight + 2 * margins, position.width - 2 * margins, position.height - (debugAreaHeight + 2 * margins) - editorMenuHeight), Config.EditorAreaBackgroundStyle); { DrawEditorArea(); } GUILayout.EndArea(); }
public EditorConfigurationData() { Defaults = new EditorConfigurationData(false); if (!PreferencesExist()) { RestoreDefaults(); } else { RestorePreferences(); } RectHandle = new Rect(20 * Vector2.one, new Vector2(250, 30)); }
private void DrawMenu() { bool repaint = false; Display = EditorGUILayout.Foldout(Display, "Display: "); if (Display) { GUILayout.BeginVertical(ConfigData.FoldoutInteriorStyle); { GUILayout.BeginHorizontal(); { GUILayout.Label("Max Quothas Length: ", GUILayout.Width(DescriptionLabelWidth)); int check = EditorGUILayout.IntField(ConfigData.MaxQuotasLength, GUILayout.Width(50)); if (check > 16) { ConfigData.MaxQuotasLength = check; repaint = true; } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); { GUILayout.Label("Min Text Area Height: ", GUILayout.Width(DescriptionLabelWidth)); int check = EditorGUILayout.IntField(ConfigData.MinTextAreaHeight, GUILayout.Width(50)); if (check > ConfigData.MaxTextAreaHeight) { check = ConfigData.MaxTextAreaHeight; } if (check > 10) { ConfigData.MinTextAreaHeight = check; repaint = true; } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); { GUILayout.Label("Max Text Area Height: ", GUILayout.Width(DescriptionLabelWidth)); int check = EditorGUILayout.IntField(ConfigData.MaxTextAreaHeight, GUILayout.Width(50)); if (check > 50 && check > ConfigData.MinTextAreaHeight) { ConfigData.MaxTextAreaHeight = check; repaint = true; } } GUILayout.EndHorizontal(); } GUILayout.EndVertical(); } Connections = EditorGUILayout.Foldout(Connections, "Connections: "); if (Connections) { GUILayout.BeginVertical(ConfigData.FoldoutInteriorStyle); { DrawColorChanger("Immidiate Node Connection: ", ref ConfigData.ImmidiateNodeConnection); EditorPrefs.SetString(ConfigData.PreferencesKeys[0], EditorConfigurationData.ColorToString(ConfigData.ImmidiateNodeConnection)); DrawColorChanger("Node To Option Connection: ", ref ConfigData.NodeToOptionConnection); EditorPrefs.SetString(ConfigData.PreferencesKeys[1], EditorConfigurationData.ColorToString(ConfigData.NodeToOptionConnection)); DrawColorChanger("Option To Node Connection: ", ref ConfigData.OptionToNodeConnection); EditorPrefs.SetString(ConfigData.PreferencesKeys[2], EditorConfigurationData.ColorToString(ConfigData.OptionToNodeConnection)); DrawColorChanger("To Condition Connection: ", ref ConfigData.ToConditionConnection); EditorPrefs.SetString(ConfigData.PreferencesKeys[6], EditorConfigurationData.ColorToString(ConfigData.ToConditionConnection)); DrawColorChanger("Condition Success Connection: ", ref ConfigData.FromSuccesConnection); EditorPrefs.SetString(ConfigData.PreferencesKeys[7], EditorConfigurationData.ColorToString(ConfigData.FromSuccesConnection)); DrawColorChanger("Condition Failure Connection: ", ref ConfigData.FromFailureConnection); EditorPrefs.SetString(ConfigData.PreferencesKeys[8], EditorConfigurationData.ColorToString(ConfigData.OptionToNodeConnection)); DrawColorChanger("Entry Condition Connection: ", ref ConfigData.EntryConditionConnection); EditorPrefs.SetString(ConfigData.PreferencesKeys[9], EditorConfigurationData.ColorToString(ConfigData.EntryConditionConnection)); GUILayout.BeginHorizontal(); GUILayout.Label("Diagonal Start Points: ", GUILayout.Width(DescriptionLabelWidth)); ConfigData.DiagonalStartPoints = EditorGUILayout.Toggle(ConfigData.DiagonalStartPoints); EditorPrefs.SetBool(ConfigData.PreferencesKeys[4], ConfigData.DiagonalStartPoints); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Diagonal End Points: ", GUILayout.Width(DescriptionLabelWidth)); ConfigData.DiagonalEndPoints = EditorGUILayout.Toggle(ConfigData.DiagonalEndPoints); EditorPrefs.SetBool(ConfigData.PreferencesKeys[5], ConfigData.DiagonalEndPoints); GUILayout.EndHorizontal(); } GUILayout.EndVertical(); repaint = true; } Backgrounds = EditorGUILayout.Foldout(Backgrounds, "Backgrounds: "); if (Backgrounds) { bool changedStyles = false; GUILayout.BeginVertical(ConfigData.FoldoutInteriorStyle); { changedStyles |= DrawColorChanger("Editor Background: ", ref ConfigData.AreaBackgroundColor); EditorPrefs.SetString(ConfigData.PreferencesKeys[3], EditorConfigurationData.ColorToString(ConfigData.AreaBackgroundColor)); changedStyles |= DrawColorChanger("Condition Node Background", ref ConfigData.ConditionNodeColor); EditorPrefs.SetString(ConfigData.PreferencesKeys[10], EditorConfigurationData.ColorToString(ConfigData.ConditionNodeColor)); changedStyles |= DrawColorChanger("Dialogue Node Background", ref ConfigData.DialogueNodeColor); EditorPrefs.SetString(ConfigData.PreferencesKeys[11], EditorConfigurationData.ColorToString(ConfigData.DialogueNodeColor)); changedStyles |= DrawColorChanger("Dialogue Option Background", ref ConfigData.DialogueOptionColor); EditorPrefs.SetString(ConfigData.PreferencesKeys[12], EditorConfigurationData.ColorToString(ConfigData.DialogueOptionColor)); } GUILayout.EndVertical(); if(changedStyles) { ConfigData.InitStyles(true); repaint = true; } } GUILayout.BeginHorizontal(GUILayout.ExpandHeight(true)); { if (GUILayout.Button("Close")) { ConfigData.ConfigurationOpened = false; this.Close(); } if (GUILayout.Button("Restore")) { ConfigData.RestoreDefaults(); repaint = true; } } GUILayout.EndHorizontal(); if (repaint) { RepaintFunction(); } }
public static void ShowConfigMenu(EditorConfigurationData data, System.Action repaintFunction) { ConfigurationWindow config = EditorWindow.GetWindow<ConfigurationWindow>(); config.Init(data, repaintFunction); }
public void Init(EditorConfigurationData data, System.Action repaintFunction) { ConfigData = data; RepaintFunction = repaintFunction; }