No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

GaugeProgress.gd 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. extends MarginContainer
  2. export(String) var gauge_name := ""
  3. export(Color) var gauge_color := Color.white
  4. export(String, MULTILINE) var description_bad: = ""
  5. export(String, MULTILINE) var description_neutral := ""
  6. export(String, MULTILINE) var description_good := ""
  7. var DESCRIPTION_THRESHOLDS = [40, 60]
  8. var progress : float = 0 setget set_progress
  9. onready var tween = $Tween
  10. onready var hover_control = $HoverControl
  11. onready var container = $VBoxContainer
  12. onready var progress_bar = $VBoxContainer/ProgressBar
  13. onready var label = $VBoxContainer/Label
  14. func _ready():
  15. container.hide()
  16. hover_control.selection_object = progress_bar
  17. hover_control.infobox_position = "left"
  18. hover_control.info_panel.title = gauge_name
  19. hover_control.info_panel.content = ""
  20. label.text = gauge_name
  21. progress_bar.tint_progress = gauge_color
  22. container.modulate = Color(1, 1, 1, 0)
  23. func start_anim():
  24. tween.start()
  25. container.show()
  26. func _set_description():
  27. if progress < DESCRIPTION_THRESHOLDS[0]:
  28. hover_control.info_panel.content = description_bad
  29. elif progress > DESCRIPTION_THRESHOLDS[1]:
  30. hover_control.info_panel.content = description_good
  31. else:
  32. hover_control.info_panel.content = description_neutral
  33. func set_progress(new_value: float):
  34. progress = new_value
  35. _set_description()
  36. # hover_control.info_panel.content = variable_descriptions[]
  37. tween.interpolate_property(progress_bar, "value", 0, progress, 1.5, Tween.TRANS_CUBIC, Tween.EASE_IN_OUT)
  38. tween.interpolate_property(container, "modulate", Color(1, 1, 1, 0), Color(1, 1, 1, 1), 1, Tween.TRANS_CUBIC, Tween.EASE_IN_OUT)
  39. start_anim()