/**
         * <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);
        }
Beispiel #2
0
        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;
 }
Beispiel #4
0
        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();
        }