small racing game im working on
Diffstat (limited to 'ui/splits/difference.gd')
| -rw-r--r-- | ui/splits/difference.gd | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/ui/splits/difference.gd b/ui/splits/difference.gd new file mode 100644 index 0000000..8d81ff3 --- /dev/null +++ b/ui/splits/difference.gd @@ -0,0 +1,27 @@ +extends PanelContainer + +@export var gain_style: StyleBox +@export var loss_style: StyleBox +@export var neutral_style: StyleBox +@export var label: Label + +enum Change { GAIN, LOSS, EQUAL } + +func update(time: float, prev_time: float) -> void: + var change := diff(time, prev_time) + style(change) + match change: + Change.LOSS: label.text = "+" + GameTimer.format(time - prev_time) + Change.GAIN: label.text = "-" + GameTimer.format(prev_time - time) + Change.EQUAL: label.text = "0:00.00" + +func diff(t1: float, t2: float) -> int: + if t1 == t2: + return Change.EQUAL + return Change.GAIN if t1 < t2 else Change.LOSS + +func style(d: int) -> void: + match d: + Change.LOSS: add_theme_stylebox_override(&"panel", loss_style) + Change.GAIN: add_theme_stylebox_override(&"panel", gain_style) + Change.EQUAL: add_theme_stylebox_override(&"panel", neutral_style) |