/// <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)); }
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); } }