From d0f0c8ce6d18e198e20a6976eb1ba02dfe8176d9 Mon Sep 17 00:00:00 2001 From: PopSlime Date: Fri, 27 Jan 2023 15:28:22 +0800 Subject: [PATCH] Fix SkinSelectors.ToString. --- Assets/Cryville/Crtr/SkinSelectors.cs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/Assets/Cryville/Crtr/SkinSelectors.cs b/Assets/Cryville/Crtr/SkinSelectors.cs index 65a01c1..d657711 100644 --- a/Assets/Cryville/Crtr/SkinSelectors.cs +++ b/Assets/Cryville/Crtr/SkinSelectors.cs @@ -23,7 +23,7 @@ namespace Cryville.Crtr { bool flag = false; string r = ""; foreach (var a in annotations) { - if (flag) r += " " + a; + if (flag) r += " @" + a; else { r += a; flag = true; } } foreach (var s in selectors) { @@ -60,6 +60,8 @@ namespace Cryville.Crtr { public abstract class SkinSelector { protected SkinSelector() { } + public abstract override string ToString(); + public virtual void Optimize(PdtEvaluatorBase etor) { } public virtual IEnumerable MatchStatic(ContainerState h, SkinContext c) { throw new SelectorNotAvailableException(); } public virtual SkinContext MatchDynamic(ContainerState h, SkinContext c) { throw new SelectorNotAvailableException(); } @@ -68,6 +70,8 @@ namespace Cryville.Crtr { } public class CreateObject : SkinSelector { public CreateObject() { } + public override string ToString() { return "$"; } + public override IEnumerable MatchStatic(ContainerState h, SkinContext c) { var obj = new GameObject("__obj__"); obj.transform.SetParent(c.Transform, false); @@ -80,6 +84,7 @@ namespace Cryville.Crtr { public Anchor(string name) { Name = IdentifierManager.SharedInstance.Request(name); } + public override string ToString() { return string.Format(".{0}", IdentifierManager.SharedInstance.Retrieve(Name)); } public override IEnumerable MatchStatic(ContainerState h, SkinContext c) { List anchors; @@ -97,6 +102,8 @@ namespace Cryville.Crtr { public AtAnchor(string name) { Name = IdentifierManager.SharedInstance.Request(name); } + public override string ToString() { return string.Format("..{0}", IdentifierManager.SharedInstance.Retrieve(Name)); } + public override SkinContext MatchDynamic(ContainerState h, SkinContext c) { return IsUpdatable(h) ? c : null; } @@ -112,6 +119,8 @@ namespace Cryville.Crtr { _exp = exp; _op = new PropOp.Boolean(v => _flag = v); } + public override string ToString() { return string.Format("> {{{0}}}", _exp); } + public override void Optimize(PdtEvaluatorBase etor) { etor.Optimize(_exp); } @@ -137,15 +146,11 @@ namespace Cryville.Crtr { } } } - public class State : SkinSelector { - public State(string state) { } - public override SkinContext MatchDynamic(ContainerState h, SkinContext c) { - return null; - } - } public class ElementType : SkinSelector { readonly string _type; public ElementType(string type) { _type = type; } + public override string ToString() { return _type; } + public override IEnumerable MatchStatic(ContainerState h, SkinContext c) { return h.Handler.TypeName == _type ? new SkinContext[] { c } : Enumerable.Empty(); }