protected virtual void AddNested(DrawableHitObject h) { h.OnJudgement += (d, j) => OnJudgement?.Invoke(d, j); h.OnJudgementRemoved += (d, j) => OnJudgementRemoved?.Invoke(d, j); h.ApplyCustomUpdateState += (d, j) => ApplyCustomUpdateState?.Invoke(d, j); nestedHitObjects.Value.Add(h); }
protected virtual void AddNested(DrawableHitObject h) { if (nestedHitObjects == null) { nestedHitObjects = new List <DrawableHitObject>(); } h.OnJudgement += (d, j) => OnJudgement?.Invoke(d, j); h.OnJudgementRemoved += (d, j) => OnJudgementRemoved?.Invoke(d, j); h.ApplyCustomUpdateState += (d, j) => ApplyCustomUpdateState?.Invoke(d, j); nestedHitObjects.Add(h); }
protected override void Update() { base.Update(); var endTime = (HitObject as IHasEndTime)?.EndTime ?? HitObject.StartTime; while (judgements.Count > 0) { var lastJudgement = judgements[judgements.Count - 1]; if (lastJudgement.TimeOffset + endTime <= Time.Current) { break; } judgements.RemoveAt(judgements.Count - 1); State.Value = ArmedState.Idle; OnJudgementRemoved?.Invoke(this, lastJudgement); } }