use crate::{ collision::Collider, damagable::Damagable, projectile::{ProjectileSprite, spawn_projectile}, ships::Factions, velocity::Velocity, }; use bevy::prelude::*; #[derive(Component)] #[require(Velocity)] pub struct PlayerMovement { pub(super) acceleration: f32, } #[derive(Component)] pub struct PlayerGun { shoot_timer: Timer, damage: u32, } pub fn spawn_player(commands: &mut Commands, sprite: Handle, at: Vec2) { commands.spawn(( PlayerMovement { acceleration: 100. }, PlayerGun { shoot_timer: Timer::from_seconds(0.2, TimerMode::Once), damage: 1, }, Collider::new(8.), Sprite::from(sprite), Transform::from_xyz(at.x, at.y, 0.), Factions::PlayerFaction, Damagable::new(15), )); } pub(super) fn player_movement_system( time: Res