Replace CurrencyType with Currency resource

This commit is contained in:
2026-03-14 12:39:21 +01:00
parent 020d287b03
commit 6da962a53d
13 changed files with 379 additions and 158 deletions

View File

@@ -1,26 +1,33 @@
class_name CurrencyTile
extends HBoxContainer
@export var currency: GameState.CurrencyType
@export var data: CurrencyGeneratorData
@export var currency: Resource = GameState.GOLD_CURRENCY
@onready var _icon: TextureRect = $CurrencyIcon
@onready var _label: Label = $Label
@onready var _currency_label: Label = $CurrencyValueLabel
@onready var _debug_button: Button = $DebugIncomeButton
func _ready() -> void:
_label.text = data.name
GameState.currency_changed.connect(_on_currency_changed)
match currency:
GameState.CurrencyType.gold:
_on_currency_changed(currency, GameState.gold)
GameState.CurrencyType.gems:
_on_currency_changed(currency, GameState.gems)
var _currency_id: StringName = &""
func _on_currency_changed(changed_currency: GameState.CurrencyType, amount: BigNumber) -> void:
if changed_currency != currency:
func _ready() -> void:
if currency == null:
currency = GameState.GOLD_CURRENCY
_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)
GameState.currency_changed.connect(_on_currency_changed)
_on_currency_changed(_currency_id, GameState.get_currency_amount_by_id(_currency_id))
func _on_currency_changed(changed_currency_id: StringName, amount: BigNumber) -> void:
if changed_currency_id != _currency_id:
return
_currency_label.text = amount.to_string_suffix(2)
func _on_debug_income_button_pressed() -> void:
GameState.add_gold(BigNumber.from_float(100))
if currency == null:
return
GameState.add_currency(currency, BigNumber.from_float(100))