Make hud exit button work on replay

This commit is contained in:
Sofia 2026-07-27 02:39:36 +03:00
parent f5f375db1e
commit ba1b1bf6f1
2 changed files with 20 additions and 0 deletions

View File

@ -2,7 +2,9 @@
[ext_resource type="PackedScene" uid="uid://d3377ecff6nyn" path="res://scenes/replay_finished.tscn" id="1_q5ujf"]
[ext_resource type="PackedScene" uid="uid://c1gs6cqek1qlq" path="res://scenes/ui/hud.tscn" id="2_a451s"]
[ext_resource type="PackedScene" uid="uid://lahirbqfppvw" path="res://scenes/main.tscn" id="2_r7g00"]
[node name="standalone_replay_global" type="StandaloneReplayManager" unique_id=730657724]
replay_finished_screen = ExtResource("1_q5ujf")
main_menu = ExtResource("2_r7g00")
hud_scene = ExtResource("2_a451s")

View File

@ -30,6 +30,8 @@ pub struct StandaloneReplayManager {
#[export]
replay_finished_screen: Option<Gd<PackedScene>>,
#[export]
main_menu: Option<Gd<PackedScene>>,
#[export]
hud_scene: Option<Gd<PackedScene>>,
loading_replay: bool,
@ -92,6 +94,16 @@ impl StandaloneReplayManager {
if let Some(scene) = &self.hud_scene {
let hud = scene.instantiate_as::<Hud>();
hud.signals().on_exit_to_lobby().connect_other(self, |s| {
s.on_done();
});
hud.signals().on_exit().connect_other(self, |s| {
s.clear();
s.go_to_menu();
});
self.hud = Some(hud.clone());
playback.add_child(&hud);
}
@ -115,6 +127,12 @@ impl StandaloneReplayManager {
playback.queue_free();
}
}
pub fn go_to_menu(&mut self) {
if let Some(scene) = &self.main_menu {
self.base().get_tree().change_scene_to_packed(scene);
}
}
}
#[derive(GodotClass)]