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