summaryrefslogtreecommitdiff
path: root/src/ui/stats_display/scripts/progression_label.gd
blob: 57db363cf76e3b0c26a0cbf615880211b3ea0a6e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
class_name ProgressionLabel
extends MarginContainer

enum Type {
	BODY_SEGMENT,
	DASH_SEGMENT,
	SLOW_SEGMENT,
	JUMP_SEGMENT,
	EMPTY
}

export(int) var TYPE: int = Type.EMPTY
export(String) var PREFIX: String
export(float) var BEFORE_VALUE: float
export(float) var AFTER_VALUE: float = -1.0

onready var label_prefix: Label = $HBox/Prefix
onready var label_stats: Label = $HBox/Stats
onready var texture_rect: TextureRect = $HBox/Center/VBox/TextureRect


var textures: Dictionary = {
	Type.BODY_SEGMENT: preload("res://ui/hud/progress_bars/sprites/grow/grow_progress_icon.png"),
	Type.DASH_SEGMENT: preload("res://ui/hud/progress_bars/sprites/dash/dash_progress_icon.png"),
	Type.SLOW_SEGMENT: preload("res://ui/hud/progress_bars/sprites/slow/slow_progress_icon.png"),
	Type.JUMP_SEGMENT: preload("res://ui/hud/progress_bars/sprites/jump/jump_progress_icon.png"),
	Type.EMPTY: preload("res://ui/stats_display/sprites/sep_8x8.png")
}

var _fmt: String = "%s->%s"
var _fmt_partial: String = "%s"
var _fmt_prefix: String = " %s "


func _ready() -> void:
	set_properties(TYPE, PREFIX, BEFORE_VALUE, AFTER_VALUE)


func set_properties(icon: int, prefix: String, before: float, after: float=-1.0) -> void:
	texture_rect.texture = textures[icon]
	if after == -1.0:
		label_stats.text =_fmt_partial % before
	else:
		label_stats.text =_fmt % [before, after]
		if after > before:
			label_stats.add_color_override("font_color", Color.green)
		elif after < before:
			label_stats.add_color_override("font_color", Color.red)
	if not prefix.empty():
		label_prefix.text = _fmt_prefix % prefix
	else:
		label_prefix.text = " "
	label_prefix.update()
	label_stats.update()