Hide players during replay
This commit is contained in:
parent
9b522f0789
commit
5c51e25a11
@ -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) {
|
||||
|
||||
@ -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)]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user