谱面替换

This commit is contained in:
SoulliesOfficial
2026-07-30 09:28:43 -04:00
parent 58afd6acc1
commit 96619b1bb5
50 changed files with 1453 additions and 807 deletions

View File

@@ -23,7 +23,7 @@ namespace Ichni
/// Phase 4 TrackCore — 更新轨道时间、裁剪区间Track 通过 IScheduledElement 注册)
/// Phase 5 TrackFollower — CrossTrackPoint / HeadPoint / PercentPoint
/// [TrackManager.ManualLateUpdate — 清除 refreshedThisFrame 标记]
/// Phase 6 Note — NoteManager 内部驱动(激活 + 更新 + 重置)
/// Phase 6 Note — Note Prepare → Input Judge → Note Resolve → Hold Reset
/// Phase 7 Effect — ParticleEmitter / TimeEffectsCollection / ParticleTracker / DTM 元素 / LookAt 旋转覆盖
/// Phase 8 Misc — SkyboxSubsetter / JudgeTrigger / LowPriorityActions
///
@@ -198,7 +198,11 @@ namespace Ichni
public void TickEarly(float songTime)
{
_isUpdating = GameManager.Instance.songPlayer.isUpdating;
if (!_isUpdating) return;
if (!_isUpdating)
{
GameManager.Instance.noteJudgeManager.DiscardPendingInputs();
return;
}
_cachedSongTime = songTime;
@@ -257,11 +261,13 @@ namespace Ichni
GameManager.Instance.trackManager.ManualLateUpdate(songTime);
}
// ─── Phase 6: Note由 NoteManager 内部驱动)─────────────────────────
// ─── Phase 6: Note空间准备 → 输入判定 → 生命周期结算 → Hold 重置)──
using (PhaseMarkers[PhaseIndex(UpdatePhase.Note)].Auto())
{
TickPhaseElements(UpdatePhase.Note, songTime);
GameManager.Instance.noteManager.ManualUpdate(songTime);
GameManager.Instance.noteManager.ManualPrepareForJudge(songTime);
GameManager.Instance.noteJudgeManager.ProcessPendingInputs(songTime);
GameManager.Instance.noteManager.ManualResolveAfterJudge(songTime);
GameManager.Instance.noteManager.ManualLateUpdate(songTime);
}