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;
     }
 }
 private static void CheckPrefabRestrictions(GameObject go)
 {
     if (go == null)
     {
         return;
     }
     if (FsmErrorChecker.ownerIsAsset)
     {
         PrefabType prefabType = PrefabUtility.GetPrefabType(go);
         if (prefabType != 1 && prefabType != 2)
         {
             FsmErrorChecker.AddParameterError(Strings.get_FsmErrorChecker_PrefabReferencingSceneObjectError());
         }
     }
 }
        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;
            }
        }