new speed display + save best level times (#3)

This commit is contained in:
Taevas 2025-04-21 16:06:56 +02:00
parent ac1f29d111
commit b81eb08e05
Signed by: Taevas
SSH key fingerprint: SHA256:Y5Hv18xwPvUKSlgkx1sPnRO3L2mc03ehC7BzrnZVEyY
3 changed files with 140 additions and 20 deletions

View file

@ -1,81 +0,0 @@
[gd_scene load_steps=5 format=3 uid="uid://xd3nsiglcdfc"]
[ext_resource type="FontFile" uid="uid://c3fsj6knyiuhl" path="res://fonts/Knewave/Knewave-Regular.ttf" id="1_m1tld"]
[sub_resource type="GDScript" id="GDScript_q235s"]
script/source = "extends VBoxContainer
var enabled := false:
get: return enabled
set(value):
enabled = value
if value == true:
var save_file = SaveFiles.read(SaveFiles.selected_file)
if save_file.has(\"played_for\") and save_file.played_for is float:
seconds_spent_total = save_file.played_for
else:
seconds_spent_total = 0.0
var seconds_spent_total := 0.0:
get: return seconds_spent_total
set(value):
seconds_spent_total = value
$Total.text = \"Total: \" + seconds_to_readable(seconds_spent_total)
var seconds_spent_level_attempt := 0.0:
get: return seconds_spent_level_attempt
set(value):
seconds_spent_level_attempt = value
$Level.text = \"Level: \" + seconds_to_readable(seconds_spent_level_attempt)
func _ready():
var data = SaveFiles.read(SaveFiles.selected_file)
if data.has(\"played_for\") and data.played_for is float:
seconds_spent_total = data.played_for
func seconds_to_readable(seconds: float) -> String:
var minutes: int = floor(seconds / 60)
return (\"%0*d\" % [2, minutes]) + \":\" + (\"%0*.3f\" % [6, seconds - (minutes * 60)])
func _physics_process(delta: float) -> void:
if enabled:
seconds_spent_total += delta
seconds_spent_level_attempt += delta
"
[sub_resource type="LabelSettings" id="LabelSettings_m1tld"]
font = ExtResource("1_m1tld")
font_size = 32
outline_size = 8
outline_color = Color(1, 0, 1, 1)
shadow_size = 8
shadow_color = Color(0, 0, 0, 1)
[sub_resource type="LabelSettings" id="LabelSettings_2a86r"]
font = ExtResource("1_m1tld")
font_size = 24
outline_size = 8
outline_color = Color(0, 0, 1, 1)
shadow_size = 8
shadow_color = Color(0, 0, 0, 1)
[node name="Timer" type="VBoxContainer"]
process_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_right = -992.0
offset_bottom = -563.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/separation = -5
script = SubResource("GDScript_q235s")
[node name="Total" type="Label" parent="."]
layout_mode = 2
text = "Total timer"
label_settings = SubResource("LabelSettings_m1tld")
[node name="Level" type="Label" parent="."]
layout_mode = 2
text = "Level timer"
label_settings = SubResource("LabelSettings_2a86r")