diff --git a/assets/models/characters/mig pilot.glb b/assets/models/characters/mig pilot.glb index fb257a4..3b176e4 100644 Binary files a/assets/models/characters/mig pilot.glb and b/assets/models/characters/mig pilot.glb differ diff --git a/src/control/controller_flying.rs b/src/control/controller_flying.rs index 80e4292..d802b5b 100644 --- a/src/control/controller_flying.rs +++ b/src/control/controller_flying.rs @@ -6,8 +6,8 @@ use bevy::prelude::*; use crate::player::PlayerBodyMesh; use super::{ - ControlState, ControllerSet, Controls, - controller_common::{JumpImpulse, MovementDampingFactor, MovementSpeed, PlayerMovement}, + ControlState, ControllerSet, + controller_common::{MovementDampingFactor, MovementSpeed}, }; pub struct CharacterControllerPlugin; @@ -16,23 +16,13 @@ impl Plugin for CharacterControllerPlugin { fn build(&self, app: &mut App) { app.add_systems( Update, - ( - set_movement_flag, - rotate_rig, - movement, - apply_movement_damping, - ) + (rotate_rig, movement, apply_movement_damping) .chain() .in_set(ControllerSet::ApplyControlsFly), // todo only in GameState::Playing? ); } } -/// Sets the movement flag, which is an indicator for the rig animation and the braking system. -fn set_movement_flag(mut player_movement: ResMut) { - player_movement.any_direction = true; -} - fn rotate_rig( mut rig_transform_q: Option>>, controls: Res, @@ -68,18 +58,12 @@ fn rotate_rig( /// Responds to [`MovementAction`] events and moves character controllers accordingly. fn movement( - controls: Res, - mut controllers: Query<(&MovementSpeed, &JumpImpulse, &mut LinearVelocity)>, + mut controllers: Query<(&MovementSpeed, &mut LinearVelocity)>, rig_transform_q: Option>>, ) { - let move_dir = Vec2::new(0.0, 1.0); // Always full-throttle forwards when flying - let mut jump_requested = controls.keyboard_state.jump; + let move_dir = Vec2::new(0.0, 0.8); // Always full-throttle forwards when flying - if let Some(gamepad) = controls.gamepad_state { - jump_requested |= gamepad.jump; - } - - for (movement_acceleration, jump_impulse, mut linear_velocity) in &mut controllers { + for (movement_acceleration, mut linear_velocity) in &mut controllers { let mut direction = move_dir.extend(0.0).xzy(); if let Some(ref rig_transform) = rig_transform_q { @@ -88,10 +72,6 @@ fn movement( } linear_velocity.0 = -direction * movement_acceleration.0; - - if jump_requested { - linear_velocity.y = jump_impulse.0; - } } }