pir-serious-game-ethics/scenes/end-screen/GaugeProgress.gd

49 lines
1.4 KiB
GDScript

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")