// CONSTRUCTORS: --------------------------------------------------------------------------- public DialogueTreeView(TreeViewState state, DialogueEditor dialogueEditor) : base(state) { this.dialogueEditor = dialogueEditor; this.showAlternatingRowBackgrounds = true; this.showBorder = false; this.Reload(); }
public static void AddElement(DialogueEditor dialogueEditor) { List <int> selections = new List <int> { dialogueEditor.editorRoot.target.GetInstanceID() }; List <int> nextSelections = new List <int>(); if (dialogueEditor.dialogueTree.HasSelection()) { selections = new List <int>(dialogueEditor.dialogueTree.GetSelection()); } for (int i = 0; i < selections.Count; ++i) { int selectionID = selections[i]; UnityEngine.Object instance = dialogueEditor.InstanceIDToObject(selectionID); dialogueEditor.dialogueTree.SetExpandedRecursive(selectionID, true); IDialogueItem itemInstance = dialogueEditor.CreateDialogueItem <DialogueItemChoice>(); nextSelections.Add(itemInstance.GetInstanceID()); if (instance != null && instance.GetType() == typeof(DialogueItemChoiceGroup)) { dialogueEditor.itemsEditors[selectionID].AddChild( itemInstance, (IDialogueItem)instance, dialogueEditor.targetDialogue ); } else if (instance != null && instance.GetType() == typeof(DialogueItemChoice)) { dialogueEditor.itemsEditors[selectionID].AddSibling( itemInstance, (IDialogueItem)instance, dialogueEditor.targetDialogue, selectionID ); } else { Debug.LogError("Forbidden or Unknown type: " + instance.GetType()); } dialogueEditor.itemsEditors.Add( itemInstance.GetInstanceID(), IDialogueItemEditor.CreateEditor(itemInstance) ); dialogueEditor.dialogueTree.Reload(); dialogueEditor.serializedObject.ApplyModifiedPropertiesWithoutUndo(); dialogueEditor.serializedObject.Update(); } dialogueEditor.dialogueTree.SetFocusAndEnsureSelectedItem(); dialogueEditor.dialogueTree.SetSelection(nextSelections, TreeViewSelectionOptions.RevealAndFrame); }