Code cleanup with the implementation of property store.

This commit is contained in:
2023-08-02 17:20:45 +08:00
parent e34a9cc868
commit 5393ff1451
9 changed files with 122 additions and 99 deletions

View File

@@ -23,27 +23,21 @@ namespace Cryville.Crtr {
static readonly int _var_judge_time_absolute = IdentifierManager.Shared.Request("judge_time_absolute");
static readonly int _var_judge_time_relative = IdentifierManager.Shared.Request("judge_time_relative");
public Anchor StaticAnchor { get; private set; }
public float AbsoluteTime { get; private set; }
PropSrc _jtabsPropSrc;
public float RelativeTime { get; private set; }
PropSrc _jtrelPropSrc;
public int Result { get; private set; }
PropSrc _resultPropSrc;
readonly PropStores.Float _jtabsst = new PropStores.Float();
readonly PropStores.Float _jtrelst = new PropStores.Float();
readonly PropStores.Identifier _resultst = new PropStores.Identifier();
public JudgeState(NoteHandler handler, int name) {
StaticAnchor = handler.RegisterAnchor(handler.judge.judgeMap[name], false, 3);
}
public void MarkJudged(float abs, float rel, int result) {
AbsoluteTime = abs;
RelativeTime = rel;
Result = result;
_jtabsPropSrc.Invalidate();
_jtrelPropSrc.Invalidate();
_resultPropSrc.Invalidate();
_jtabsst.Value = abs;
_jtrelst.Value = rel;
_resultst.Value = result;
}
public void InitPropSrcs() {
StaticAnchor.PropSrcs.Add(_var_judge_result, _resultPropSrc = new PropSrc.Identifier(() => Result));
StaticAnchor.PropSrcs.Add(_var_judge_time_absolute, _jtabsPropSrc = new PropSrc.Float(() => AbsoluteTime));
StaticAnchor.PropSrcs.Add(_var_judge_time_relative, _jtrelPropSrc = new PropSrc.Float(() => RelativeTime));
StaticAnchor.PropSrcs.Add(_var_judge_result, _resultst.Source);
StaticAnchor.PropSrcs.Add(_var_judge_time_absolute, _jtabsst.Source);
StaticAnchor.PropSrcs.Add(_var_judge_time_relative, _jtrelst.Source);
}
}