Hide players during replay

This commit is contained in:
Sofia 2026-07-26 19:40:36 +03:00
parent 9b522f0789
commit 5c51e25a11
2 changed files with 28 additions and 1 deletions

View File

@ -355,6 +355,23 @@ impl Game {
self.current_replay_playback = Some(playback.clone());
self.base_mut().add_child(&playback);
}
for player in &mut self.players {
if let Some(character) = &mut player.character {
character.set_visible(false);
}
}
}
pub fn stop_playback(&mut self) {
if let Some(mut playback) = self.current_replay_playback.take() {
playback.queue_free();
}
for player in &mut self.players {
if let Some(character) = &mut player.character {
character.set_visible(true);
}
}
}
pub fn start_game(&mut self) {

View File

@ -66,7 +66,10 @@ impl INode for ReplayPlayback {
character.bind_mut().apply_look_up(state.look_up);
character
.bind_mut()
.set_movement_dir(state.movement_dir.into())
.set_movement_dir(state.movement_dir.into());
character
.bind_mut()
.swap_weapon(state.current_weapon, false);
} else {
character.queue_free();
self.player_characters.remove(&id);
@ -75,6 +78,13 @@ impl INode for ReplayPlayback {
self.current_frame_idx += 1;
}
}
fn exit_tree(&mut self) {
for (_, character) in &mut self.player_characters {
character.queue_free();
}
self.player_characters.clear();
}
}
#[derive(GodotClass)]