namespace Zinnia.Rule { using UnityEngine; using Zinnia.Pattern; using Zinnia.Pattern.Collection; /// /// Determines whether all of the given components successfully match. /// public class PatternMatcherRule : Rule { [Tooltip("The patterns to attempt to match.")] [SerializeField] private PatternMatcherObservableList patterns; /// /// The patterns to attempt to match. /// public PatternMatcherObservableList Patterns { get { return patterns; } set { patterns = value; } } /// public override bool Accepts(object _) { if (ShouldAutoRejectDueToState() || Patterns == null) { return false; } foreach (PatternMatcher pattern in Patterns.NonSubscribableElements) { if (!pattern.DoMatch()) { return false; } } return true; } } }