refactor: replace direct manager instances with lazy accessors for improved performance
This commit is contained in:
@@ -21,11 +21,7 @@ public partial class GameManager : Node
|
||||
}
|
||||
|
||||
private PlayerController _player;
|
||||
private SpeedRunManager _speedRunManager;
|
||||
|
||||
/// <summary>
|
||||
/// Lazy accessor for GameStateStore - avoids initialization order issues.
|
||||
/// </summary>
|
||||
private SpeedRunManager SpeedRunManager => SpeedRunManager.Instance;
|
||||
private GameStateStore Store => GameStateStore.Instance;
|
||||
|
||||
public static GameManager Instance { get; private set; }
|
||||
@@ -33,7 +29,6 @@ public partial class GameManager : Node
|
||||
public override void _Ready()
|
||||
{
|
||||
Instance = this;
|
||||
_speedRunManager = SpeedRunManager.Instance;
|
||||
EventBus.Instance.PlayerSpawned += OnPlayerSpawned;
|
||||
}
|
||||
|
||||
@@ -197,7 +192,7 @@ public partial class GameManager : Node
|
||||
public void StartNewGame()
|
||||
{
|
||||
Store?.ResetAll();
|
||||
_speedRunManager?.StartTimer();
|
||||
SpeedRunManager?.StartTimer();
|
||||
GetTree().ChangeSceneToPacked(LevelScenes[0]);
|
||||
SaveSystem.Instance.SaveGame();
|
||||
EventBus.EmitGameStarted();
|
||||
@@ -234,7 +229,7 @@ public partial class GameManager : Node
|
||||
Store.CommitSessionCoins();
|
||||
Store.CommitSessionSkills();
|
||||
|
||||
var completionTime = _speedRunManager?.GetCurrentLevelTime() ?? 0.0;
|
||||
var completionTime = SpeedRunManager?.GetCurrentLevelTime() ?? 0.0;
|
||||
EventBus.EmitLevelCompleted(levelIndex, GetTree().CurrentScene, completionTime);
|
||||
|
||||
Store.ResetSession();
|
||||
|
||||
Reference in New Issue
Block a user