Decouple everything from globals

This commit is contained in:
2026-04-10 01:09:57 +02:00
parent b758803afe
commit f671ab3419
56 changed files with 993 additions and 1291 deletions

View File

@@ -2,28 +2,31 @@ class_name CurrencyTile
extends HBoxContainer
@export var currency: Resource
@export var game_state: LevelGameState
@onready var _icon: TextureRect = $CurrencyIcon
@onready var _label: Label = $Label
@onready var _label: Label = $CurrencyValueLabel
@onready var _currency_label: Label = $CurrencyValueLabel
@onready var _debug_button: Button = $DebugIncomeButton
var _currency_id: StringName = &""
func _ready() -> void:
#if currency == null:
#currency = CurrencyDatabase.get_currency_resource(GameState.GOLD_CURRENCY_ID)
if currency == null:
push_warning("CurrencyTile '%s' has no currency configured." % String(name))
return
_currency_id = GameState.get_currency_id(currency)
_label.text = "%s:" % GameState.get_currency_name(_currency_id)
_icon.texture = GameState.get_currency_icon(_currency_id)
_debug_button.text = "+100 %s" % GameState.get_currency_name(_currency_id)
if game_state == null:
push_error("CurrencyTile '%s' missing game_state reference" % String(name))
return
GameState.currency_changed.connect(_on_currency_changed)
_on_currency_changed(_currency_id, GameState.get_currency_amount_by_id(_currency_id))
_currency_id = game_state.get_currency_id(currency)
_label.text = "%s:" % game_state.get_currency_name(_currency_id)
_icon.texture = game_state.get_currency_icon(_currency_id)
_debug_button.text = "+100 %s" % game_state.get_currency_name(_currency_id)
game_state.currency_changed.connect(_on_currency_changed)
_on_currency_changed(_currency_id, game_state.get_currency_amount_by_id(_currency_id))
func _on_currency_changed(changed_currency_id: StringName, amount: BigNumber) -> void:
if changed_currency_id != _currency_id:
@@ -33,4 +36,6 @@ func _on_currency_changed(changed_currency_id: StringName, amount: BigNumber) ->
func _on_debug_income_button_pressed() -> void:
if currency == null:
return
GameState.add_currency(currency, BigNumber.from_float(100))
if game_state == null:
return
game_state.add_currency(currency, BigNumber.from_float(100))