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

@@ -127,12 +127,12 @@ namespace Cryville.Crtr.Event {
a_tail = RegisterAnchor(_a_tail, true);
}
public virtual void Init() {
ChartPlayer.etor.ContextState = ps;
ChartPlayer.etor.ContextEvent = Container;
PdtEvaluator.Instance.ContextState = ps;
PdtEvaluator.Instance.ContextEvent = Container;
skinContainer.MatchStatic();
MatchDynamic(ps, 0);
ChartPlayer.etor.ContextEvent = null;
ChartPlayer.etor.ContextState = null;
PdtEvaluator.Instance.ContextEvent = null;
PdtEvaluator.Instance.ContextState = null;
foreach (Transform child in RootTransform) {
if (child.CompareTag(TagRootTransform)) continue;
_comps.AddRange(child.GetComponentsInChildren<SkinComponent>());
@@ -199,11 +199,11 @@ namespace Cryville.Crtr.Event {
protected static bool CanDoGraphicalUpdate(ContainerState s) { return s.CloneType >= 2 && s.CloneType < 16; }
[MethodImpl(MethodImplOptions.AggressiveInlining)]
void MatchDynamic(ContainerState s, int dl) {
ChartPlayer.etor.ContextState = s;
ChartPlayer.etor.ContextEvent = Container;
PdtEvaluator.Instance.ContextState = s;
PdtEvaluator.Instance.ContextEvent = Container;
skinContainer.MatchDynamic(dl);
ChartPlayer.etor.ContextEvent = null;
ChartPlayer.etor.ContextState = null;
PdtEvaluator.Instance.ContextEvent = null;
PdtEvaluator.Instance.ContextState = null;
}
#endregion
#region Anchor

View File

@@ -462,9 +462,9 @@ namespace Cryville.Crtr.Event {
if (transition == null) return new Vector4(time, time, time, time);
_ttime = time;
_ttimesrc.Invalidate();
ChartPlayer.etor.ContextSelfValue = _ttimesrc;
ChartPlayer.etor.Evaluate(_transop, transition);
ChartPlayer.etor.ContextSelfValue = null;
PdtEvaluator.Instance.ContextSelfValue = _ttimesrc;
PdtEvaluator.Instance.Evaluate(_transop, transition);
PdtEvaluator.Instance.ContextSelfValue = null;
return _trans;
}