Implement judge_result contextual variable.
This commit is contained in:
@@ -25,19 +25,27 @@ namespace Cryville.Crtr {
|
|||||||
readonly Dictionary<Chart.Judge, JudgeState> judges = new Dictionary<Chart.Judge, JudgeState>();
|
readonly Dictionary<Chart.Judge, JudgeState> judges = new Dictionary<Chart.Judge, JudgeState>();
|
||||||
readonly Dictionary<int, DynamicJudgeAnchorPair> dynJudgeAnchors = new Dictionary<int, DynamicJudgeAnchorPair>();
|
readonly Dictionary<int, DynamicJudgeAnchorPair> dynJudgeAnchors = new Dictionary<int, DynamicJudgeAnchorPair>();
|
||||||
class JudgeState {
|
class JudgeState {
|
||||||
|
static readonly int _var_judge_result = IdentifierManager.SharedInstance.Request("judge_result");
|
||||||
public Anchor StaticAnchor { get; private set; }
|
public Anchor StaticAnchor { get; private set; }
|
||||||
public DynamicJudgeAnchorPair DynamicAnchors { get; private set; }
|
public DynamicJudgeAnchorPair DynamicAnchors { get; private set; }
|
||||||
public bool Judged { get; private set; }
|
public bool Judged { get; private set; }
|
||||||
public float AbsoluteTime { get; private set; }
|
public float AbsoluteTime { get; private set; }
|
||||||
public float RelativeTime { get; private set; }
|
public float RelativeTime { get; private set; }
|
||||||
|
int _result = 0;
|
||||||
|
PropSrc _resultPropSrc;
|
||||||
public JudgeState(NoteHandler handler, int name) {
|
public JudgeState(NoteHandler handler, int name) {
|
||||||
StaticAnchor = handler.RegisterAnchor(handler.judge.judgeMap[name]);
|
StaticAnchor = handler.RegisterAnchor(handler.judge.judgeMap[name], true);
|
||||||
DynamicAnchors = handler.GetDynamicJudgeAnchorPair(name);
|
DynamicAnchors = handler.GetDynamicJudgeAnchorPair(name);
|
||||||
}
|
}
|
||||||
public void MarkJudged(float abs, float rel) {
|
public void MarkJudged(float abs, float rel, int result) {
|
||||||
Judged = true;
|
Judged = true;
|
||||||
AbsoluteTime = abs;
|
AbsoluteTime = abs;
|
||||||
RelativeTime = rel;
|
RelativeTime = rel;
|
||||||
|
_result = result;
|
||||||
|
_resultPropSrc.Invalidate();
|
||||||
|
}
|
||||||
|
public void InitPropSrcs() {
|
||||||
|
StaticAnchor.PropSrcs.Add(_var_judge_result, _resultPropSrc = new PropSrc.Identifier(() => _result));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
class DynamicJudgeAnchorPair {
|
class DynamicJudgeAnchorPair {
|
||||||
@@ -68,6 +76,7 @@ namespace Cryville.Crtr {
|
|||||||
public override void Init() {
|
public override void Init() {
|
||||||
base.Init();
|
base.Init();
|
||||||
sgos = gogroup.GetComponentsInChildren<SectionalGameObject>();
|
sgos = gogroup.GetComponentsInChildren<SectionalGameObject>();
|
||||||
|
foreach (var judge in judges.Values) judge.InitPropSrcs();
|
||||||
}
|
}
|
||||||
protected override void PreAwake(ContainerState s) {
|
protected override void PreAwake(ContainerState s) {
|
||||||
base.PreAwake(s);
|
base.PreAwake(s);
|
||||||
|
|||||||
Reference in New Issue
Block a user