From 89e6102b069c14845c355c2e9cc63c8ee488bb1f Mon Sep 17 00:00:00 2001 From: extrawurst Date: Sun, 21 Dec 2025 16:01:36 -0500 Subject: [PATCH] fix player rotation --- .../hedz_reloaded/src/client/control/mod.rs | 24 ++++++++++++++++++- crates/hedz_reloaded/src/protocol/mod.rs | 2 +- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/crates/hedz_reloaded/src/client/control/mod.rs b/crates/hedz_reloaded/src/client/control/mod.rs index 8874672..8a3ca90 100644 --- a/crates/hedz_reloaded/src/client/control/mod.rs +++ b/crates/hedz_reloaded/src/client/control/mod.rs @@ -1,4 +1,8 @@ -use crate::{GameState, control::ControllerSet}; +use crate::{ + GameState, + control::{ControllerSet, Inputs}, + player::{LocalPlayer, Player, PlayerBodyMesh}, +}; use bevy::prelude::*; use bevy_replicon::client::ClientSystems; @@ -22,4 +26,22 @@ pub fn plugin(app: &mut App) { .before(ClientSystems::Receive) .run_if(in_state(GameState::Playing)), ); + + app.add_systems( + FixedUpdate, + rotate_others.run_if(in_state(GameState::Playing)), + ); +} + +fn rotate_others( + players: Query<(&Inputs, &Children), (With, Without)>, + mut rig: Query<(&mut Transform, &PlayerBodyMesh)>, +) { + for (input, children) in players.iter() { + for child in children.iter() { + if let Ok((mut rig, _)) = rig.get_mut(child) { + *rig = rig.looking_to(input.look_dir, Vec3::Y); + } + } + } } diff --git a/crates/hedz_reloaded/src/protocol/mod.rs b/crates/hedz_reloaded/src/protocol/mod.rs index db32ba5..c4b6bf7 100644 --- a/crates/hedz_reloaded/src/protocol/mod.rs +++ b/crates/hedz_reloaded/src/protocol/mod.rs @@ -104,7 +104,7 @@ pub fn plugin(app: &mut App) { .replicate_once::() .replicate_once::() .replicate::() - .replicate::() + .replicate_once::() .replicate_once::() .replicate_as::();