extends MarginContainer export(String) var gauge_name = "" export(Color) var gauge_color = Color.white var progress : float = 0 setget set_progress onready var tween = $Tween onready var hover_tween = $HoverTween onready var container = $VBoxContainer onready var progress_bar = $VBoxContainer/ProgressBar onready var label = $VBoxContainer/Label onready var button = $TextureButton func _ready(): button.connect("mouse_entered", self, '_on_mouse_entered') button.connect("mouse_exited", self, '_on_mouse_exited') button.connect("pressed", self, '_on_button_pressed') container.hide() label.text = gauge_name progress_bar.tint_progress = gauge_color container.modulate = Color(1, 1, 1, 0) func start_anim(): tween.start() container.show() func set_progress(new_value: float): progress = new_value tween.interpolate_property(progress_bar, "value", 0, progress, 1.5, Tween.TRANS_CUBIC, Tween.EASE_IN_OUT) tween.interpolate_property(container, "modulate", Color(1, 1, 1, 0), Color(1, 1, 1, 1), 1, Tween.TRANS_CUBIC, Tween.EASE_IN_OUT) start_anim() func _on_mouse_exited(): hover_tween.interpolate_property(progress_bar, "tint_progress", null, gauge_color, 0.3, Tween.TRANS_CUBIC, Tween.EASE_IN_OUT) hover_tween.start() func _on_mouse_entered(): hover_tween.interpolate_property(progress_bar, "tint_progress", null, Color("#615ea4"), 0.3, Tween.TRANS_CUBIC, Tween.EASE_IN_OUT) hover_tween.start() func _on_button_pressed(): print("pressed")