Make hud exit button work on replay
This commit is contained in:
parent
f5f375db1e
commit
ba1b1bf6f1
@ -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")
|
||||
|
||||
@ -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)]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user