30 lines
1.4 KiB
GDScript
30 lines
1.4 KiB
GDScript
extends CanvasLayer
|
|
class_name HUD
|
|
|
|
@onready var progress_bar_red: ProgressBar = $PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/PanelContainerRed/ProgressBar
|
|
@onready var progress_bar_green: ProgressBar = $PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/PanelContainerGreen/ProgressBar
|
|
@onready var progress_bar_blue: ProgressBar = $PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/PanelContainerBlue/ProgressBar
|
|
@onready var texture_rect: TextureRect = $PanelContainer/MarginContainer/VBoxContainer/TextureRect
|
|
@onready var lives_container: GridContainer = $PanelContainer/MarginContainer/VBoxContainer/LivesContainer
|
|
@onready var entity_count_label: Label = $EntityCountContainer/MarginContainer/EntityCountLabel
|
|
const HEART = preload("res://assets/heart.png")
|
|
|
|
func _on_player_color_changed(color: Color) -> void:
|
|
progress_bar_red.value = color.r
|
|
progress_bar_green.value = color.g
|
|
progress_bar_blue.value = color.b
|
|
texture_rect.modulate = color
|
|
|
|
|
|
func _on_player_lives_changed(lives: int) -> void:
|
|
var heart_containers = lives_container.get_children()
|
|
if heart_containers.size() < lives:
|
|
var life = TextureRect.new()
|
|
life.texture = HEART
|
|
lives_container.add_child(life)
|
|
elif heart_containers.size() > lives:
|
|
heart_containers.pop_back().queue_free()
|
|
|
|
func update_entity_count(count: int):
|
|
entity_count_label.text = "Entity Count: %s" % count
|