/** * <summary>Checks to see if the class matches a filter set in the Speech Manager.</summary> * <param name = "filter The filter text</param> * <param name = "filterSpeechLine The type of filtering selected (Type, Text, Scene, Speaker, Description, All)</param> * <returns>True if the class matches the criteria of the filter, and should be listed</returns> */ public bool Matches(string filter, FilterSpeechLine filterSpeechLine) { if (filter == null || string.IsNullOrEmpty(filter)) { return(true); } filter = filter.ToLower(); if (filterSpeechLine == FilterSpeechLine.All) { if (description.ToLower().Contains(filter) || scene.ToLower().Contains(filter) || owner.ToLower().Contains(filter) || text.ToLower().Contains(filter) || lineID.ToString().Contains(filter) || textType.ToString().ToLower().Contains(filter)) { return(true); } } else if (filterSpeechLine == FilterSpeechLine.Description) { return(description.ToLower().Contains(filter)); } else if (filterSpeechLine == FilterSpeechLine.Scene) { return(scene.ToLower().Contains(filter)); } else if (filterSpeechLine == FilterSpeechLine.Speaker) { return(owner.ToLower().Contains(filter)); } else if (filterSpeechLine == FilterSpeechLine.Text) { return(text.ToLower().Contains(filter)); } else if (filterSpeechLine == FilterSpeechLine.Type) { return(textType.ToString().ToLower().Contains(filter)); } else if (filterSpeechLine == FilterSpeechLine.ID) { return(lineID.ToString().Contains(filter)); } return(false); }
private void ListLines() { if (sceneNames == null || sceneNames == new List<string>() || sceneNames.Count != (sceneFiles.Length + 2)) { sceneFiles = AdvGame.GetSceneFiles (); GetSceneNames (); } EditorGUILayout.BeginHorizontal (); EditorGUILayout.LabelField ("Type filter:", GUILayout.Width (65f)); typeFilter = (AC_TextType) EditorGUILayout.EnumPopup (typeFilter); EditorGUILayout.EndHorizontal (); EditorGUILayout.BeginHorizontal (); EditorGUILayout.LabelField ("Scene filter:", GUILayout.Width (65f)); sceneFilter = EditorGUILayout.Popup (sceneFilter, sceneNames.ToArray ()); EditorGUILayout.EndHorizontal (); EditorGUILayout.BeginHorizontal (); EditorGUILayout.LabelField ("Text filter:", GUILayout.Width (65f)); filterSpeechLine = (FilterSpeechLine) EditorGUILayout.EnumPopup (filterSpeechLine); textFilter = EditorGUILayout.TextField (textFilter); EditorGUILayout.EndHorizontal (); EditorGUILayout.Space (); if (sceneNames.Count <= sceneFilter) { sceneFilter = 0; return; } string selectedScene = sceneNames[sceneFilter] + ".unity"; foreach (SpeechLine line in lines) { if (line.textType == typeFilter && line.Matches (textFilter, filterSpeechLine)) { string scenePlusExtension = (line.scene != "") ? (line.scene + ".unity") : ""; if ((line.scene == "" && sceneFilter == 0) || sceneFilter == 1 || (line.scene != "" && sceneFilter > 1 && line.scene.EndsWith (selectedScene)) || (line.scene != "" && sceneFilter > 1 && scenePlusExtension.EndsWith (selectedScene))) { line.ShowGUI (); } } } }
/** * <summary>Checks to see if the class matches a filter set in the Speech Manager.</summary> * <param name = "filter The filter text</param> * <param name = "filterSpeechLine The type of filtering selected (Type, Text, Scene, Speaker, Description, All)</param> * <returns>True if the class matches the criteria of the filter, and should be listed</returns> */ public bool Matches(string filter, FilterSpeechLine filterSpeechLine) { if (filter == null || filter == "") { return true; } filter = filter.ToLower (); if (filterSpeechLine == FilterSpeechLine.All) { if (description.ToLower ().Contains (filter) || scene.ToLower ().Contains (filter) || owner.ToLower ().Contains (filter) || text.ToLower ().Contains (filter) || textType.ToString ().ToLower ().Contains (filter)) { return true; } } else if (filterSpeechLine == FilterSpeechLine.Description) { return description.ToLower ().Contains (filter); } else if (filterSpeechLine == FilterSpeechLine.Scene) { return scene.ToLower ().Contains (filter); } else if (filterSpeechLine == FilterSpeechLine.Speaker) { return owner.ToLower ().Contains (filter); } else if (filterSpeechLine == FilterSpeechLine.Text) { return text.ToLower ().Contains (filter); } else if (filterSpeechLine == FilterSpeechLine.Type) { return textType.ToString ().ToLower ().Contains (filter); } return false; }
private void ShowRowsGUI() { EditorGUILayout.LabelField("Row filtering", CustomStyles.subHeader); EditorGUILayout.Space(); filterByType = EditorGUILayout.Toggle("Filter by type?", filterByType); if (filterByType) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("-> Limit to type:", GUILayout.Width(100f)); typeFilter = (AC_TextType)EditorGUILayout.EnumPopup(typeFilter); EditorGUILayout.EndHorizontal(); } filterByScene = EditorGUILayout.Toggle("Filter by scene?", filterByScene); if (filterByScene) { string[] sceneNames = speechManager.GetSceneNames(); if (sceneNames != null && sceneNames.Length > 0) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("-> Limit to scene:", GUILayout.Width(100f)); sceneFilter = EditorGUILayout.Popup(sceneFilter, sceneNames); EditorGUILayout.EndHorizontal(); } } filterByText = EditorGUILayout.Toggle("Filter by text:", filterByText); if (filterByText) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("-> Limit to text:", GUILayout.Width(100f)); filterSpeechLine = (FilterSpeechLine)EditorGUILayout.EnumPopup(filterSpeechLine, GUILayout.MaxWidth(100f)); textFilter = EditorGUILayout.TextField(textFilter); EditorGUILayout.EndHorizontal(); } filterByTag = EditorGUILayout.Toggle("Filter by tag:", filterByTag); if (filterByTag) { if (typeFilter == AC_TextType.Speech && speechManager.useSpeechTags && speechManager.speechTags != null && speechManager.speechTags.Count > 1) { if (tagFilter == -1) { tagFilter = 0; } List <string> tagNames = new List <string>(); foreach (SpeechTag speechTag in speechManager.speechTags) { tagNames.Add(speechTag.label); } EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("-> Limit by tag:", GUILayout.Width(65f)); tagFilter = EditorGUILayout.Popup(tagFilter, tagNames.ToArray()); EditorGUILayout.EndHorizontal(); } else { tagFilter = -1; EditorGUILayout.HelpBox("No tags defined - they can be created by clicking 'Edit speech tags' in the Speech Manager.", MessageType.Info); } } EditorGUILayout.Space(); }