From 1734cf9b72cf0b7206746d57bbdda69bf36cc554 Mon Sep 17 00:00:00 2001 From: PopSlime Date: Sat, 19 Nov 2022 10:49:52 +0800 Subject: [PATCH] Logic cleanup. --- Assets/Cryville/Crtr/SkinContainer.cs | 24 ++++++++++++------------ Assets/Cryville/Crtr/SkinSelectors.cs | 4 ---- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/Assets/Cryville/Crtr/SkinContainer.cs b/Assets/Cryville/Crtr/SkinContainer.cs index 5112c36..4742a1c 100644 --- a/Assets/Cryville/Crtr/SkinContainer.cs +++ b/Assets/Cryville/Crtr/SkinContainer.cs @@ -17,26 +17,26 @@ namespace Cryville.Crtr { skin = _skin; } public void MatchStatic(ContainerState context) { + ChartPlayer.etor.ContextState = context; + ChartPlayer.etor.ContextEvent = context.Container; matchedStatic.Clear(); MatchStatic(skin, context, context.Handler.gogroup); foreach (var m in matchedStatic) { var el = m.Key; var obj = m.Value; + ChartPlayer.etor.ContextTransform = obj; foreach (var p in el.properties) { if (p.Key.Name == null) obj.gameObject.AddComponent(p.Key.Component); else { - ChartPlayer.etor.ContextTransform = obj; - ChartPlayer.etor.ContextEvent = context.Container; - ChartPlayer.etor.ContextState = context; ChartPlayer.etor.Evaluate(GetPropOp(obj, p.Key), p.Value); - ChartPlayer.etor.ContextState = null; - ChartPlayer.etor.ContextEvent = null; - ChartPlayer.etor.ContextTransform = null; } } + ChartPlayer.etor.ContextTransform = null; } + ChartPlayer.etor.ContextEvent = null; + ChartPlayer.etor.ContextState = null; } void MatchStatic(SkinElement rel, ContainerState context, Transform anchor = null) { matchedStatic.Add(rel, anchor); @@ -49,24 +49,24 @@ namespace Cryville.Crtr { } public void MatchDynamic(ContainerState context) { Profiler.BeginSample("SkinContainer.MatchDynamic"); + ChartPlayer.etor.ContextState = context; + ChartPlayer.etor.ContextEvent = context.Container; matchedDynamic.Clear(); MatchDynamic(skin, context, context.Handler.gogroup); foreach (var m in matchedDynamic) { var el = m.Key; var obj = m.Value; + ChartPlayer.etor.ContextTransform = obj; foreach (var p in el.properties) { if (p.Key.Name == null) continue; if (p.Value.IsConstant) continue; - ChartPlayer.etor.ContextTransform = obj; - ChartPlayer.etor.ContextEvent = context.Container; - ChartPlayer.etor.ContextState = context; ChartPlayer.etor.Evaluate(GetPropOp(obj, p.Key), p.Value); - ChartPlayer.etor.ContextState = null; - ChartPlayer.etor.ContextEvent = null; - ChartPlayer.etor.ContextTransform = null; } + ChartPlayer.etor.ContextTransform = null; } + ChartPlayer.etor.ContextEvent = null; + ChartPlayer.etor.ContextState = null; Profiler.EndSample(); } void MatchDynamic(SkinElement rel, ContainerState context, Transform anchor = null) { diff --git a/Assets/Cryville/Crtr/SkinSelectors.cs b/Assets/Cryville/Crtr/SkinSelectors.cs index 7d9c92d..873dc02 100644 --- a/Assets/Cryville/Crtr/SkinSelectors.cs +++ b/Assets/Cryville/Crtr/SkinSelectors.cs @@ -114,11 +114,7 @@ namespace Cryville.Crtr { } public override Transform Match(ContainerState h, Transform a, Transform ot = null) { ChartPlayer.etor.ContextTransform = a; - ChartPlayer.etor.ContextEvent = h.Container; - ChartPlayer.etor.ContextState = h; ChartPlayer.etor.Evaluate(_op, _exp); - ChartPlayer.etor.ContextState = null; - ChartPlayer.etor.ContextEvent = null; ChartPlayer.etor.ContextTransform = null; return _flag ? a : null; }