Change fixed skin root to configurable root element in skin container.

This commit is contained in:
2023-02-15 18:09:21 +08:00
parent c7ea6f1d4b
commit b6e238780e
2 changed files with 5 additions and 5 deletions

View File

@@ -72,7 +72,7 @@ namespace Cryville.Crtr.Event {
SkinContainer skinContainer;
protected Judge judge;
public void AttachSystems(PdtSkin skin, Judge judge) {
skinContainer = new SkinContainer(skin);
skinContainer = new SkinContainer(skin.elements);
this.judge = judge;
}

View File

@@ -6,7 +6,7 @@ using UnityEngine.Profiling;
namespace Cryville.Crtr {
public class SkinContainer {
readonly PdtSkin skin;
readonly SkinElement _rootElement;
readonly DynamicStack[] _stacks = new DynamicStack[2];
class DynamicStack {
public readonly List<DynamicProperty> Properties = new List<DynamicProperty>();
@@ -26,8 +26,8 @@ namespace Cryville.Crtr {
public SkinSelectors Selectors { get; set; }
public SkinElement Element { get; set; }
}
public SkinContainer(PdtSkin _skin) {
skin = _skin;
public SkinContainer(SkinElement rootElement) {
_rootElement = rootElement;
for (int i = 0; i < _stacks.Length; i++) _stacks[i] = new DynamicStack();
}
public void MatchStatic(ContainerState state) {
@@ -35,7 +35,7 @@ namespace Cryville.Crtr {
stack.Clear();
ChartPlayer.etor.ContextState = state;
ChartPlayer.etor.ContextEvent = state.Container;
MatchStatic(skin, state, stack, new RuntimeSkinContext(state.Handler.SkinContext));
MatchStatic(_rootElement, state, stack, new RuntimeSkinContext(state.Handler.SkinContext));
ChartPlayer.etor.ContextEvent = null;
ChartPlayer.etor.ContextState = null;
}