Decouple the usage of PDT evaluator of chart player.

This commit is contained in:
2023-07-28 14:13:49 +08:00
parent 8b64165fb7
commit 3db8f61e3b
15 changed files with 96 additions and 77 deletions

View File

@@ -90,10 +90,10 @@ namespace Cryville.Crtr {
etor.Optimize(_exp);
}
public override IEnumerable<ChartEvent> Match(ChartEvent ev) {
ChartPlayer.etor.ContextEvent = ev;
if (!ChartPlayer.etor.Evaluate(_op, _exp))
PdtEvaluator.Instance.ContextEvent = ev;
if (!PdtEvaluator.Instance.Evaluate(_op, _exp))
throw new EvaluationFailureException();
ChartPlayer.etor.ContextEvent = null;
PdtEvaluator.Instance.ContextEvent = null;
if (_flag) return new ChartEvent[] { ev };
else return null;
}