Implement dynamic stack for skin.

This commit is contained in:
2023-01-31 22:50:24 +08:00
parent 5727fcf177
commit 450bd52095
2 changed files with 59 additions and 34 deletions

View File

@@ -93,9 +93,6 @@ namespace Cryville.Crtr {
}
else return Enumerable.Empty<SkinContext>();
}
public override bool IsUpdatable(ContainerState h) {
return h.Handler.OpenedAnchor != null && h.Handler.OpenedAnchor.Name == Name;
}
}
public class AtAnchor : SkinSelector {
public int Name { get; private set; }
@@ -105,10 +102,10 @@ namespace Cryville.Crtr {
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;
return h.Handler.OpenedAnchor != null && h.Handler.OpenedAnchor.Name == Name ? c : null;
}
public override bool IsUpdatable(ContainerState h) {
return h.Handler.OpenedAnchor != null && h.Handler.OpenedAnchor.Name == Name;
return h.CloneType >= 2;
}
}
public class Property : SkinSelector {