48 lines
982 B
GDScript
48 lines
982 B
GDScript
class_name CurrencyAmount
|
|
extends HBoxContainer
|
|
|
|
@export var amount: int = 0:
|
|
set(value):
|
|
amount = value
|
|
_display_text = str(value)
|
|
_refresh_amount()
|
|
@export_range(8.0, 64.0, 1.0) var icon_size: float = 18.0:
|
|
set(value):
|
|
icon_size = value
|
|
_refresh_icon_size()
|
|
|
|
@onready var _icon: TextureRect = %Icon
|
|
@onready var _amount_label: Label = %Amount
|
|
|
|
var _display_text: String = "0"
|
|
|
|
|
|
func _ready() -> void:
|
|
mouse_filter = Control.MOUSE_FILTER_IGNORE
|
|
_refresh_icon_size()
|
|
_refresh_amount()
|
|
|
|
|
|
func set_amount(value: int) -> void:
|
|
amount = value
|
|
|
|
|
|
func set_amount_text(value: String) -> void:
|
|
_display_text = value
|
|
_refresh_amount()
|
|
|
|
|
|
func get_amount_label() -> Label:
|
|
if _amount_label != null:
|
|
return _amount_label
|
|
return get_node_or_null("Amount") as Label
|
|
|
|
|
|
func _refresh_amount() -> void:
|
|
if _amount_label != null:
|
|
_amount_label.text = _display_text
|
|
|
|
|
|
func _refresh_icon_size() -> void:
|
|
if _icon != null:
|
|
_icon.custom_minimum_size = Vector2.ONE * icon_size
|