refactor: replace direct manager instances with lazy accessors for improved performance

This commit is contained in:
2026-03-19 02:10:36 +01:00
parent 470b0c3a8c
commit 1e9814a9d8
6 changed files with 20 additions and 36 deletions

View File

@@ -1,5 +1,4 @@
using Godot;
using Mr.BrickAdventures;
using Mr.BrickAdventures.Autoloads;
using Mr.BrickAdventures.scripts.components;
using Mr.BrickAdventures.scripts.Resources;
@@ -18,7 +17,7 @@ public partial class ChargeProgressBar : ProgressBar
{
ProgressBar.Hide();
_skillManager = GetNodeOrNull<SkillManager>(Constants.SkillManagerPath);
_skillManager = SkillManager.Instance;
if (_skillManager == null)
{
GD.PrintErr("ChargeProgressBar: SkillManager autoload not found.");

View File

@@ -1,5 +1,4 @@
using Godot;
using Mr.BrickAdventures;
using Mr.BrickAdventures.Autoloads;
using Mr.BrickAdventures.scripts.Resources;
using Mr.BrickAdventures.scripts.State;
@@ -15,13 +14,11 @@ public partial class DeathScreen : Control
[Export] public float TimeoutTime { get; set; } = 2.0f;
[Export] public Godot.Collections.Array<Node> NodesToDisable { get; set; } = new();
private GameManager _gameManager;
private GameManager GameManager => GameManager.Instance;
private Timer _timer;
public override void _Ready()
{
_gameManager = GameManager.Instance;
// Subscribe to lives changed event for reactive updates
EventBus.Instance.LivesChanged += OnLivesChanged;
}
@@ -74,7 +71,7 @@ public partial class DeathScreen : Control
public void OnPlayerDeath()
{
if (_gameManager == null) return;
if (GameManager == null) return;
ToggleNodes();
SetLabels();

View File

@@ -1,7 +1,6 @@
using System.Collections.Generic;
using Godot;
using Godot.Collections;
using Mr.BrickAdventures;
using Mr.BrickAdventures.Autoloads;
using Mr.BrickAdventures.scripts.components;
using Mr.BrickAdventures.scripts.Resources;
@@ -19,17 +18,14 @@ public partial class Marketplace : Control
[Export] public PackedScene MarketplaceButtonScene { get; set; }
[Export] public PackedScene SkillButtonScene { get; set; }
private GameManager _gameManager;
private SkillManager _skillManager;
private GameManager GameManager => GameManager.Instance;
private SkillManager SkillManager => SkillManager.Instance;
private readonly List<Button> _unlockButtons = [];
private readonly List<SkillButton> _skillButtons = [];
public override void _Ready()
{
_gameManager = GameManager.Instance;
_skillManager = SkillManager.Instance;
Skills = _skillManager.AvailableSkills;
Skills = SkillManager.AvailableSkills;
var skillsToUnlock = new List<SkillData>();
@@ -37,7 +33,7 @@ public partial class Marketplace : Control
foreach (var skill in skillsToUnlock) CreateUpgradeButton(skill);
var unlockedSkills = _gameManager.GetUnlockedSkills();
var unlockedSkills = GameManager.GetUnlockedSkills();
foreach (var skill in unlockedSkills) CreateSkillButton(skill);
SkillUnlockerComponent.SkillUnlocked += OnSkillUnlocked;
@@ -85,7 +81,7 @@ public partial class Marketplace : Control
foreach (var btn in _skillButtons)
{
if (_skillManager.IsSkillActive(btn.Data)) btn.Activate();
if (SkillManager.IsSkillActive(btn.Data)) btn.Activate();
else btn.Deactivate();
}
}
@@ -117,7 +113,7 @@ public partial class Marketplace : Control
private void OnUpgradeButtonPressed(SkillData skill)
{
if (_gameManager.IsSkillUnlocked(skill))
if (GameManager.IsSkillUnlocked(skill))
{
if (skill.Level < skill.MaxLevel)
{