Fix SkinSelectors.ToString.
This commit is contained in:
@@ -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<SkinContext> 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<SkinContext> 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<SkinContext> MatchStatic(ContainerState h, SkinContext c) {
|
||||
List<CAnchor> 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<SkinContext> MatchStatic(ContainerState h, SkinContext c) {
|
||||
return h.Handler.TypeName == _type ? new SkinContext[] { c } : Enumerable.Empty<SkinContext>();
|
||||
}
|
||||
|
Reference in New Issue
Block a user