private static void ClearFsmErrors(Skill fsm)
        {
            List <FsmError> list = new List <FsmError>();

            using (List <FsmError> .Enumerator enumerator = FsmErrorChecker.FsmErrorList.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    FsmError current = enumerator.get_Current();
                    if (current.Fsm == fsm && !current.RuntimeError)
                    {
                        list.Add(current);
                    }
                    if (!SkillEditor.FsmList.Contains(current.Fsm))
                    {
                        list.Add(current);
                    }
                }
            }
            using (List <FsmError> .Enumerator enumerator2 = list.GetEnumerator())
            {
                while (enumerator2.MoveNext())
                {
                    FsmError current2 = enumerator2.get_Current();
                    FsmErrorChecker.FsmErrorList.Remove(current2);
                }
            }
        }
        private static FsmError AddRequiredFieldError()
        {
            FsmError fsmError = FsmErrorChecker.AddError(FsmErrorChecker.checkingState, FsmErrorChecker.checkingAction, FsmErrorChecker.checkingParameter, Strings.get_FsmErrorChecker_RequiredFieldError());

            fsmError.Type = FsmError.ErrorType.requiredField;
            return(fsmError);
        }
예제 #3
0
 private void DoErrorHierarchyGUI()
 {
     this.scrollPosition = GUILayout.BeginScrollView(this.scrollPosition, new GUILayoutOption[0]);
     GUILayout.BeginVertical(new GUILayoutOption[0]);
     using (List <FsmError> .Enumerator enumerator = FsmErrorChecker.GetErrors().GetEnumerator())
     {
         while (enumerator.MoveNext())
         {
             FsmError current = enumerator.get_Current();
             if (!this.filterByFsm || current.Fsm == SkillEditor.SelectedFsm)
             {
                 GUIStyle gUIStyle = SkillEditorStyles.ActionItem;
                 if (this.selectedError == current)
                 {
                     gUIStyle = SkillEditorStyles.ActionItemSelected;
                 }
                 SkillEditorGUILayout.LightDivider(new GUILayoutOption[0]);
                 if (GUILayout.Button(current.ErrorString, gUIStyle, new GUILayoutOption[0]) || GUILayout.Button(current.ToString(), gUIStyle, new GUILayoutOption[0]))
                 {
                     this.selectedError = current;
                     ErrorSelector.GotoError(this.selectedError);
                 }
             }
         }
     }
     GUILayout.EndVertical();
     EditorGUIUtility.AddCursorRect(GUILayoutUtility.GetLastRect(), 4);
     GUILayout.EndScrollView();
 }
        public static FsmError AddRuntimeError(string error)
        {
            FsmError error2 = new FsmError
            {
                Fsm          = SkillExecutionStack.get_ExecutingFsm(),
                State        = SkillExecutionStack.get_ExecutingState(),
                Action       = SkillExecutionStack.get_ExecutingAction(),
                ErrorString  = error,
                RuntimeError = true
            };

            return(FsmErrorChecker.AddError(error2));
        }
 private static void CheckGameObjectHasComponent(GameObject go, Type component)
 {
     if (go == null || component == null)
     {
         return;
     }
     if (go.GetComponent(component) == null)
     {
         FsmError fsmError = FsmErrorChecker.AddParameterError(Strings.get_FsmErrorChecker_RequiresComponentError() + Labels.StripUnityEngineNamespace(component.ToString()) + " Component!");
         fsmError.Type       = FsmError.ErrorType.missingRequiredComponent;
         fsmError.GameObject = go;
         fsmError.ObjectType = component;
     }
 }
 public static bool StateHasErrors(SkillState state)
 {
     using (List <FsmError> .Enumerator enumerator = FsmErrorChecker.FsmErrorList.GetEnumerator())
     {
         while (enumerator.MoveNext())
         {
             FsmError current = enumerator.get_Current();
             if (current.State == state)
             {
                 return(true);
             }
         }
     }
     return(false);
 }
 public static FsmError FindError(FsmError error)
 {
     using (List <FsmError> .Enumerator enumerator = FsmErrorChecker.FsmErrorList.GetEnumerator())
     {
         while (enumerator.MoveNext())
         {
             FsmError current = enumerator.get_Current();
             if (current.SameAs(error))
             {
                 return(current);
             }
         }
     }
     return(null);
 }
        private static void CheckForEventErrors(SkillEvent fsmEvent)
        {
            if (SkillEvent.IsNullOrEmpty(fsmEvent))
            {
                return;
            }
            SkillEventTarget fsmEventTarget = FsmErrorChecker.fsmEventTargetContextGlobal;

            if (FsmErrorChecker.fsmEventTargetContext != null)
            {
                fsmEventTarget = FsmErrorChecker.fsmEventTargetContext;
            }
            if (fsmEventTarget == null)
            {
                fsmEventTarget = new SkillEventTarget();
            }
            Skill fsmTarget = Events.GetFsmTarget(FsmErrorChecker.checkingFsm, fsmEventTarget);

            switch (fsmEventTarget.target)
            {
            case 0:
                if (FsmErrorChecker.checkingState != null && !Events.FsmStateRespondsToEvent(FsmErrorChecker.checkingState, fsmEvent))
                {
                    FsmError fsmError = FsmErrorChecker.AddParameterError(Strings.get_FsmErrorChecker_InvalidEventError());
                    fsmError.Type = FsmError.ErrorType.missingTransitionEvent;
                    fsmError.info = fsmEvent.get_Name();
                }
                break;

            case 1:
            case 2:
                break;

            case 3:
                if (fsmTarget != null && !Events.FsmRespondsToEvent(fsmTarget, fsmEvent))
                {
                    FsmErrorChecker.AddParameterError(Strings.get_FsmErrorChecker_TargetFsmMissingEventError());
                }
                return;

            case 4:
                FsmErrorChecker.CheckGlobalEvent(fsmEvent);
                return;

            default:
                return;
            }
        }
 private static FsmError AddError(FsmError error)
 {
     using (List <FsmError> .Enumerator enumerator = FsmErrorChecker.FsmErrorList.GetEnumerator())
     {
         while (enumerator.MoveNext())
         {
             FsmError current = enumerator.get_Current();
             if (current.SameAs(error))
             {
                 return(error);
             }
         }
     }
     FsmErrorChecker.FsmErrorList.Add(error);
     return(error);
 }
        public static List <string> GetRuntimeErrors(SkillStateAction action)
        {
            List <string> list = new List <string>();

            using (List <FsmError> .Enumerator enumerator = FsmErrorChecker.FsmErrorList.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    FsmError current = enumerator.get_Current();
                    if (current.RuntimeError && current.Action == action)
                    {
                        list.Add(current.ErrorString);
                    }
                }
            }
            return(list);
        }
        public static string GetStateErrors(SkillState state)
        {
            string text = "";

            using (List <FsmError> .Enumerator enumerator = FsmErrorChecker.FsmErrorList.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    FsmError current = enumerator.get_Current();
                    if (current.State == state)
                    {
                        text += current.ErrorString;
                    }
                }
            }
            return(text);
        }
        public static List <string> GetTransitionErrors(SkillTransition transition)
        {
            List <string> list = new List <string>();

            using (List <FsmError> .Enumerator enumerator = FsmErrorChecker.FsmErrorList.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    FsmError current = enumerator.get_Current();
                    if (current.Transition == transition)
                    {
                        list.Add(current.ErrorString);
                    }
                }
            }
            return(list);
        }
        public static List <FsmError> GetParameterErrors(SkillStateAction action, string parameter)
        {
            List <FsmError> list = new List <FsmError>();

            using (List <FsmError> .Enumerator enumerator = FsmErrorChecker.FsmErrorList.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    FsmError current = enumerator.get_Current();
                    if (current.Action == action && current.Parameter == parameter)
                    {
                        list.Add(current);
                    }
                }
            }
            return(list);
        }
        public static int CountActionErrors(SkillStateAction action)
        {
            int num = 0;

            using (List <FsmError> .Enumerator enumerator = FsmErrorChecker.FsmErrorList.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    FsmError current = enumerator.get_Current();
                    if (current.Action == action)
                    {
                        num++;
                    }
                }
            }
            return(num);
        }
        public static int CountRuntimeErrors()
        {
            int num = 0;

            using (List <FsmError> .Enumerator enumerator = FsmErrorChecker.FsmErrorList.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    FsmError current = enumerator.get_Current();
                    if (current.RuntimeError)
                    {
                        num++;
                    }
                }
            }
            return(num);
        }
        public static void ClearErrors(bool deleteRuntimeErrors = true)
        {
            if (!Application.get_isPlaying() && !deleteRuntimeErrors)
            {
                List <FsmError> list = new List <FsmError>();
                using (List <FsmError> .Enumerator enumerator = FsmErrorChecker.FsmErrorList.GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        FsmError current = enumerator.get_Current();
                        if (!current.RuntimeError)
                        {
                            list.Add(current);
                        }
                    }
                }
                using (List <FsmError> .Enumerator enumerator2 = list.GetEnumerator())
                {
                    while (enumerator2.MoveNext())
                    {
                        FsmError current2 = enumerator2.get_Current();
                        FsmErrorChecker.FsmErrorList.Remove(current2);
                    }
                    goto IL_8E;
                }
            }
            FsmErrorChecker.FsmErrorList.Clear();
IL_8E:
            FsmErrorChecker.gameObject                  = null;
            FsmErrorChecker.checkingFsm                 = null;
            FsmErrorChecker.checkingState               = null;
            FsmErrorChecker.checkingAction              = null;
            FsmErrorChecker.checkingParameter           = null;
            FsmErrorChecker.attributes                  = null;
            FsmErrorChecker.checkForErrors              = false;
            FsmErrorChecker.checkFsm                    = null;
            FsmErrorChecker.fsmEventTargetContext       = null;
            FsmErrorChecker.fsmEventTargetContextGlobal = null;
        }
예제 #17
0
 private static void GotoError(FsmError error)
 {
     if (error == null)
     {
         return;
     }
     if (error.Fsm == null)
     {
         return;
     }
     SkillEditor.SelectFsm(error.Fsm);
     if (error.State == null)
     {
         return;
     }
     SkillEditor.SelectState(error.State, true);
     if (error.Action == null)
     {
         return;
     }
     SkillEditor.SelectAction(error.Action, true);
     SkillEditor.Repaint(true);
 }
예제 #18
0
 public bool SameAs(FsmError error)
 {
     return(error != null && this.Fsm == error.Fsm && this.State == error.State && this.Action == error.Action && !(this.Parameter != error.Parameter) && this.Transition == error.Transition && !(this.ErrorString != error.ErrorString) && this.Type == error.Type && this.ObjectType == error.ObjectType);
 }