Пример #1
0
        /// <summary>
        /// Validates all loaded behaviours that implement Validator
        /// </summary>
        /// <param name="toggle"></param>
        public static StratusObjectValidation[] ValidateAggregate()
        {
            IStratusValidatorAggregator[] validators = FindInterfaces <IStratusValidatorAggregator>();
            var messages = StratusObjectValidation.Aggregate(validators);

            StratusDebug.Log($"Validated {validators.Length} behaviours.");
            return(messages.ToArray());
        }
        /// <summary>
        /// Validates all the components within the system
        /// </summary>
        private void ValidateAll()
        {
            var messages = StratusObjectValidation.Aggregate(target);

            foreach (var msg in messages)
            {
                AddMessage(msg);
            }
        }
 private void ValidateNull()
 {
     foreach (var t in triggers)
     {
         var validation = StratusObjectValidation.NullReference(t, $"<i>{t.description}</i>");
         if (validation != null)
         {
             AddMessage(validation);
         }
     }
     foreach (var t in triggerables)
     {
         var validation = StratusObjectValidation.NullReference(t, $"<i>{t.description}</i>");
         if (validation != null)
         {
             AddMessage(validation);
         }
     }
 }
 StratusObjectValidation[] IStratusValidatorAggregator.Validate()
 {
     return(StratusObjectValidation.Aggregate(triggerSystem));
 }
 StratusObjectValidation[] IStratusValidatorAggregator.Validate()
 {
     return(StratusObjectValidation.Aggregate(segments));
 }
Пример #6
0
        private void Show(StratusEpisodeBehaviour episode)
        {
            GUILayout.Label(episode.label, EditorStyles.whiteLargeLabel);
            //StratusEditorUtility.OnLastControlMouseClick(null, null, () => { Selection.activeGameObject = episode.gameObject; });

            EditorGUILayout.BeginHorizontal();
            StratusEditorUtility.ModifyProperty(episode, "mode", GUIContent.none);
            if (GUILayout.Button("Validate", EditorStyles.miniButtonRight))
            {
                ValidatorWindow.Open("Episode Validation", StratusObjectValidation.Aggregate(episode));
            }
            EditorGUILayout.EndHorizontal();

            foreach (var segment in episode.segments)
            {
                if (segment == null || !segmentExpanded.ContainsKey(segment))
                {
                    continue;
                }

                // Show the segment
                GUILayout.BeginHorizontal(EditorStyles.toolbar);
                //episode.initialSegment == episode ? $"{episode.label} *" : episode.label, EditorStyles.whiteLabel
                GUIStyle segmentStyle = EditorStyles.label;                 // segment == (episode.initialSegment) ? EditorStyles.centeredGreyMiniLabel: GUI.skin.label;
                string   label        = episode.initialSegment == segment ? $"{segment.label} (Initial)" : segment.label;
                segmentExpanded[segment] = EditorGUILayout.Foldout(segmentExpanded[segment], label, false, EditorStyles.foldout);

                //if (EditorGUI.Rect)
                System.Action onRightClick = () =>
                {
                    var menu = new GenericMenu();
                    menu.AddItem(new GUIContent("Select"), false, () => { Selection.activeGameObject = segment.gameObject; });
                    if (!Application.isPlaying)
                    {
                        menu.AddItem(new GUIContent("Set Initial"), false, () => { episode.SetInitialSegment(segment); });
                    }
                    else
                    {
                        menu.AddItem(new GUIContent("Enter"), false, () =>
                        {
                            episode.Enter(segment, true, 0);
                        });
                    }
                    menu.ShowAsContext();
                };

                System.Action onDoubleClick = () =>
                {
                    StratusDebug.Log("Boop");
                    Selection.activeGameObject = segment.gameObject;
                };

                StratusEditorUtility.OnLastControlMouseClick(null, onRightClick, onDoubleClick);

                //var button = new GUIObject();
                //button.label = segment.label;
                //button.onRightClickDown = onRightClick;
                //button.onLeftClickUp = onLeftClick;
                //button.Draw(segmentStyle);


                GUILayout.EndHorizontal();

                ShowSegment(episode, segment);
            }
        }