refactor: standardization round 2

- ConsoleManager: lazy GameManager/AchievementManager via Instance (fixes NullRef on console commands)
- AchievementManager, GhostManager: add static Instance property
- GhostEventHandler: use GhostManager.Instance, add _ExitTree unsubscription
- SpeedRunManager: remove unused IsVisible guard; TimeUpdated now emits when running
- SpeedRunHud: use SpeedRunManager.Instance, remove dead IsVisible binding
- SaveDataDto: moved to scripts/State/SaveDataDto.cs
- GameManager.AddCoins: XML doc clarifying permanent vs session coins
This commit is contained in:
2026-03-19 01:50:20 +01:00
parent 321905e68e
commit cfef49fbc7
10 changed files with 67 additions and 51 deletions

View File

@@ -11,8 +11,7 @@ public partial class SpeedRunManager : Node
public override void _ExitTree() { if (Instance == this) Instance = null; }
public bool IsRunning { get; private set; } = false;
public bool IsVisible { get; private set; } = false;
private double _startTime;
private double _levelStartTime;
private List<double> _splits = [];
@@ -21,7 +20,7 @@ public partial class SpeedRunManager : Node
public override void _Process(double delta)
{
if (!IsRunning || !IsVisible) return;
if (!IsRunning) return;
EmitSignalTimeUpdated(GetCurrentTotalTime(), GetCurrentLevelTime());
}