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