From c1415f3e438922cf3afe92a802be606e66461cf4 Mon Sep 17 00:00:00 2001 From: TheThomaas Date: Mon, 12 Oct 2026 17:17:03 +0200 Subject: [PATCH] Create UI for saving/loading handling --- game/ui/hud/save_hud.gd | 29 +++++++++++++++++++++++++++++ game/ui/hud/save_hud.gd.uid | 1 + game/ui/hud/ui.tscn | 11 +++++++++++ 3 files changed, 41 insertions(+) create mode 100644 game/ui/hud/save_hud.gd create mode 100644 game/ui/hud/save_hud.gd.uid diff --git a/game/ui/hud/save_hud.gd b/game/ui/hud/save_hud.gd new file mode 100644 index 0000000..87ba3d7 --- /dev/null +++ b/game/ui/hud/save_hud.gd @@ -0,0 +1,29 @@ +extends CanvasLayer + +@onready var panel : PanelContainer = $Panel +@onready var label : Label = $Panel/Label + +func _ready() -> void: + panel.visible = false + GameData.save_started.connect(_on_save_started) + GameData.save_finished.connect(_on_save_finished) + +func _on_save_started() -> void: + label.text = "Sauvegarde en cours..." + panel.visible = true + panel.modulate.a = 1.0 + +func _on_save_finished(success : bool) -> void: + label.text = "Sauvegardé !" if success else "Échec de la sauvegarde" + _fade_out() + +func _on_load_finished(success : bool) -> void: + label.text = "Chargé !" if success else "Aucune sauvegarde" + _fade_out() + +func _fade_out() -> void: + # petit fade out après un court délai + var tween := create_tween() + tween.tween_interval(0.8) + tween.tween_property(panel, "modulate:a", 0.0, 0.3) + tween.tween_callback(func() -> void: panel.visible = false) diff --git a/game/ui/hud/save_hud.gd.uid b/game/ui/hud/save_hud.gd.uid new file mode 100644 index 0000000..0a6be2d --- /dev/null +++ b/game/ui/hud/save_hud.gd.uid @@ -0,0 +1 @@ +uid://rgm6aitwyxdv diff --git a/game/ui/hud/ui.tscn b/game/ui/hud/ui.tscn index 85f86b3..8d52743 100644 --- a/game/ui/hud/ui.tscn +++ b/game/ui/hud/ui.tscn @@ -1,6 +1,7 @@ [gd_scene format=3 uid="uid://di22cs2qposdm"] [ext_resource type="Script" uid="uid://7hglx6nfu063" path="res://addons/controller_icons/objects/ControllerIconTexture.gd" id="1_4xhdt"] +[ext_resource type="Script" uid="uid://rgm6aitwyxdv" path="res://game/ui/hud/save_hud.gd" id="1_euh0j"] [ext_resource type="Script" uid="uid://b3ddqgiawrh5c" path="res://game/ui/hud/team_hud.gd" id="2_lkjh2"] [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_uyiaf"] @@ -25,6 +26,16 @@ metadata/_custom_type_script = "uid://7hglx6nfu063" [node name="Ui" type="CanvasLayer" unique_id=1492671226] +[node name="SaveHUD" type="CanvasLayer" parent="." unique_id=319200051] +script = ExtResource("1_euh0j") + +[node name="Panel" type="PanelContainer" parent="SaveHUD" unique_id=243494129] +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="Label" type="Label" parent="SaveHUD/Panel" unique_id=42675420] +layout_mode = 2 + [node name="MarginContainer" type="MarginContainer" parent="." unique_id=38584238] anchors_preset = 3 anchor_left = 1.0