hadean-godot/Scripts/ResourcesPanel.gd

27 lines
1.0 KiB
GDScript
Raw Permalink Normal View History

2025-10-10 03:01:08 -04:00
extends VBoxContainer
var trackers: Dictionary[ResourceController.ResourceType, ResourceTracker] = {}
var resource_tracker_scene: PackedScene = preload("res://ResourceTracker.tscn")
func _ready():
var header = Label.new()
header.text = "Resources"
add_child(header)
for resource in ResourceController.stock.keys():
add_resource_ui(resource)
ResourceController.resource_type_added.connect(add_resource_ui)
ResourceController.resource_stats_updated.connect(_update_resource)
func _update_resource(resource_type: ResourceController.ResourceType, stats: ResourceController.ResourceStats):
if !trackers.has(resource_type): add_resource_ui(resource_type)
var tracker = trackers[resource_type]
tracker.set_val_and_max(stats.value, stats.max)
tracker.set_increment(stats.delta)
func add_resource_ui(resource_type: ResourceController.ResourceType):
var tracker: ResourceTracker = resource_tracker_scene.instantiate()
add_child(tracker)
tracker.set_resource_name(ResourceController.get_resource_name(resource_type))
trackers[resource_type] = tracker