diff --git a/client/src/main.rs b/client/src/main.rs index 3992097..58cf919 100644 --- a/client/src/main.rs +++ b/client/src/main.rs @@ -23,7 +23,10 @@ use renet_visualizer::{RenetClientVisualizer, RenetVisualizerStyle}; struct MainCamera; #[derive(Component)] -struct ControlledPlayer { +struct ControlledPlayer; + +#[derive(Component)] +struct Aimer { aiming_at: Vec2, } @@ -120,14 +123,14 @@ fn update_visulizer_system( } fn player_input( - controlled_player_query: Query<(&Transform, &ControlledPlayer)>, + controlled_player_query: Query<(&Transform, &Aimer)>, keyboard_input: Res>, mut player_input: ResMut, mouse_button_input: Res>, mut player_commands: EventWriter, most_recent_tick: Res, ) { - let (transform, controlled_player) = controlled_player_query.single(); + let (transform, aimer) = controlled_player_query.single(); player_input.left = keyboard_input.pressed(KeyCode::A) || keyboard_input.pressed(KeyCode::Left); player_input.right = @@ -139,21 +142,21 @@ fn player_input( if mouse_button_input.just_pressed(MouseButton::Left) { info!( "player at origin {} fired at {}", - transform.translation, controlled_player.aiming_at + transform.translation, aimer.aiming_at ); player_commands.send(PlayerCommand::BasicAttack { origin: Vec2::new(transform.translation.x, transform.translation.y), - direction: controlled_player.aiming_at, + direction: aimer.aiming_at, }); } } fn cursor_system( wnds: Res, - mut q_camera: Query<(&Camera, &mut ControlledPlayer, &GlobalTransform), With>, + mut q_camera: Query<(&Camera, &mut Aimer, &GlobalTransform), With>, ) { - let (camera, mut controlled_player, camera_transform) = q_camera.single_mut(); + let (camera, mut aimer, camera_transform) = q_camera.single_mut(); let wnd = if let RenderTarget::Window(id) = camera.target { wnds.get(id).unwrap() @@ -169,7 +172,7 @@ fn cursor_system( let world_pos = ndc_to_world.project_point3(ndc.extend(-1.0)); let world_pos: Vec2 = world_pos.truncate(); - controlled_player.aiming_at = world_pos; + aimer.aiming_at = world_pos; } } @@ -215,7 +218,7 @@ fn client_sync_players( }); if client_id == id { - client_entity.insert(ControlledPlayer { + client_entity.insert(ControlledPlayer).insert(Aimer { aiming_at: Vec2::new(0., 0.), }); } @@ -241,11 +244,7 @@ fn client_sync_players( network_mapping.0.remove(&server_entity); } } - ServerMessages::SpawnProjectile { - entity, - origin, - direction, - } => { + ServerMessages::SpawnProjectile { entity } => { let projectile_entity = commands.spawn_bundle(SpriteBundle { sprite: Sprite { color: Color::rgb(0.25, 0.25, 0.75), @@ -291,7 +290,8 @@ fn client_sync_players( fn setup_camera(mut commands: Commands) { commands .spawn_bundle(Camera2dBundle::default()) - .insert(ControlledPlayer { + .insert(ControlledPlayer) + .insert(Aimer { aiming_at: Vec2::new(0., 0.), }); } diff --git a/server/src/main.rs b/server/src/main.rs index 4cabe38..03def18 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -174,12 +174,7 @@ fn server_update_system( ); let entity = spawn_projectile(&mut commands, origin, direction); - let message = ServerMessages::SpawnProjectile { - entity, - origin, - direction, - }; - + let message = ServerMessages::SpawnProjectile { entity }; let message = bincode::serialize(&message).unwrap(); server.broadcast_message(ServerChannel::ServerMessages.id(), message); diff --git a/shared/src/lib.rs b/shared/src/lib.rs index ab62763..79ecc5e 100644 --- a/shared/src/lib.rs +++ b/shared/src/lib.rs @@ -51,21 +51,10 @@ pub enum ServerChannel { #[derive(Debug, Serialize, Deserialize, Component)] pub enum ServerMessages { - PlayerCreate { - entity: Entity, - id: u64, - }, - PlayerRemove { - id: u64, - }, - SpawnProjectile { - entity: Entity, - origin: Vec2, - direction: Vec2, - }, - DespawnProjectile { - entity: Entity, - }, + PlayerCreate { entity: Entity, id: u64 }, + PlayerRemove { id: u64 }, + SpawnProjectile { entity: Entity }, + DespawnProjectile { entity: Entity }, } #[derive(Debug, Serialize, Deserialize, Default)]