diff --git a/assets/weapons/m4a1_rifle.glb b/assets/weapons/m4a1_rifle.glb index 366b2ad..af01c31 100644 Binary files a/assets/weapons/m4a1_rifle.glb and b/assets/weapons/m4a1_rifle.glb differ diff --git a/src/logic/core/guns/player_firing.rs b/src/logic/core/guns/player_firing.rs index 49ceba7..f708065 100644 --- a/src/logic/core/guns/player_firing.rs +++ b/src/logic/core/guns/player_firing.rs @@ -14,6 +14,7 @@ pub struct PlayerFiringInfo { /// Decreases with time, each gun has its own rebound time pub current_round_index: usize, pub full_auto_timer: Timer, + pub is_reloading: bool, } impl Default for PlayerFiringInfo { @@ -23,6 +24,7 @@ impl Default for PlayerFiringInfo { rounds_in_last_spray: Default::default(), current_round_index: Default::default(), full_auto_timer: Timer::new(Duration::from_secs_f32(0.0), TimerMode::Repeating), + is_reloading: false, } } } diff --git a/src/logic/core/guns/spawn_firearm.rs b/src/logic/core/guns/spawn_firearm.rs index 4307994..1c7d684 100644 --- a/src/logic/core/guns/spawn_firearm.rs +++ b/src/logic/core/guns/spawn_firearm.rs @@ -45,7 +45,6 @@ pub fn spawn_firearm_on_player_hands( TimerMode::Once, ); // Load animations - commands.insert_resource(FirearmAnimations { reload_magazine: asset_server.load(format!("{}#Animation0", DEFAULT_PLAYER_FIREARM.firearm_data().asset_path)), - rock_charging_handle: asset_server.load(format!("{}#Animation1", DEFAULT_PLAYER_FIREARM.firearm_data().asset_path)) }) + commands.insert_resource(FirearmAnimations { reload_magazine: asset_server.load(format!("{}#Animation0", DEFAULT_PLAYER_FIREARM.firearm_data().asset_path))}) } } diff --git a/src/logic/core/player/camera_effects.rs b/src/logic/core/player/camera_effects.rs index 3e77089..e69de29 100644 --- a/src/logic/core/player/camera_effects.rs +++ b/src/logic/core/player/camera_effects.rs @@ -1,12 +0,0 @@ -use bevy::prelude::*; - -use crate::setup::animations::FirearmAnimations; - -pub fn setup_scene_once_loaded( - animations: Res, - mut players: Query<&mut AnimationPlayer, Added>, -) { - for mut player in &mut players { - player.play(animations.reload_magazine.clone_weak()).repeat(); - } -} \ No newline at end of file diff --git a/src/logic/core/player/hands.rs b/src/logic/core/player/hands.rs index dc9eaaf..a24a3c7 100644 --- a/src/logic/core/player/hands.rs +++ b/src/logic/core/player/hands.rs @@ -2,11 +2,12 @@ use bevy::prelude::*; use crate::{ comps::core::markers::{firearm::{FirearmData, MagazineData}, holdable::InPlayerHands, player::PlayerHand}, - logic::core::guns::player_firing::PlayerFiringInfo, utils::rad_deg::radians_from_degrees, + logic::core::guns::player_firing::PlayerFiringInfo, utils::rad_deg::radians_from_degrees, setup::animations::FirearmAnimations, }; pub fn capture_hand_usage( mouse_buttons: Res>, + keyboard_input: Res>, mut hand_query: Query<&mut Transform, With>, time: Res