diff --git a/client/src/main.rs b/client/src/main.rs
index 54e4b77..d6a3d01 100644
--- a/client/src/main.rs
+++ b/client/src/main.rs
@@ -116,7 +116,6 @@ fn player_input(
keyboard_input: Res>,
mut player_input: ResMut,
mouse_button_input: Res>,
- target_query: Query<&Transform, With>,
mut player_commands: EventWriter,
most_recent_tick: Res,
) {
@@ -129,7 +128,7 @@ fn player_input(
if mouse_button_input.just_pressed(MouseButton::Left) {
player_commands.send(PlayerCommand::BasicAttack {
- cast_at: Vec2::default(), // TODO: spawn projectiles correctly
+ fired_at: Vec2::default(), // TODO: spawn projectiles correctly
});
}
}
@@ -152,8 +151,6 @@ fn client_send_player_commands(
fn client_sync_players(
mut commands: Commands,
- mut meshes: ResMut>,
- mut materials: ResMut>,
mut client: ResMut,
mut lobby: ResMut,
mut network_mapping: ResMut,
@@ -165,11 +162,7 @@ fn client_sync_players(
let server_message = bincode::deserialize(&message).unwrap();
match server_message {
- ServerMessages::PlayerCreate {
- id,
- translation,
- entity,
- } => {
+ ServerMessages::PlayerCreate { id, entity } => {
println!("Player {} connected.", id);
let mut client_entity = commands.spawn_bundle(SpriteBundle {
@@ -208,7 +201,7 @@ fn client_sync_players(
}
ServerMessages::SpawnProjectile {
entity,
- location,
+ position,
direction,
} => {
let projectile_entity = commands.spawn_bundle(SpriteBundle {
@@ -256,6 +249,3 @@ fn client_sync_players(
fn setup_camera(mut commands: Commands) {
commands.spawn_bundle(Camera2dBundle::default());
}
-
-#[derive(Component)]
-struct Target;
diff --git a/server/src/main.rs b/server/src/main.rs
index 2ae414c..8aa5b81 100644
--- a/server/src/main.rs
+++ b/server/src/main.rs
@@ -80,13 +80,11 @@ fn main() {
fn server_update_system(
mut server_events: EventReader,
mut commands: Commands,
- mut meshes: ResMut>,
- mut materials: ResMut>,
mut lobby: ResMut,
mut server: ResMut,
mut visualizer: ResMut>,
mut client_ticks: ResMut,
- players: Query<(Entity, &Player, &Transform)>,
+ players: Query<(Entity, &Player)>,
) {
for event in server_events.iter() {
match event {
@@ -96,19 +94,16 @@ fn server_update_system(
visualizer.add_client(*id);
// Initialize other players for this new client
- for (entity, player, transform) in players.iter() {
- let translation: [f32; 3] = transform.translation.into();
+ for (entity, player) in players.iter() {
let message = bincode::serialize(&ServerMessages::PlayerCreate {
id: player.id,
entity,
- translation,
})
.unwrap();
server.send_message(*id, ServerChannel::ServerMessages.id(), message);
}
// Spawn new player
- let transform = Transform::from_xyz(0., 0.51, 0.);
let player_entity = commands
.spawn_bundle(SpriteBundle {
sprite: Sprite {
@@ -125,17 +120,15 @@ fn server_update_system(
.insert(Velocity::default())
.insert(Player {
id: *id,
- location: Vec2::new(10., 10.),
+ position: Vec2::new(10., 10.),
})
.id();
lobby.players.insert(*id, player_entity);
- let translation: [f32; 3] = transform.translation.into();
let message = bincode::serialize(&ServerMessages::PlayerCreate {
id: *id,
entity: player_entity,
- translation,
})
.unwrap();
@@ -164,23 +157,23 @@ fn server_update_system(
let command: PlayerCommand = bincode::deserialize(&message).unwrap();
match command {
- PlayerCommand::BasicAttack { mut cast_at } => {
+ PlayerCommand::BasicAttack { mut fired_at } => {
println!(
"Received basic attack from client {}: {:?}",
- client_id, cast_at
+ client_id, fired_at
);
if let Some(player_entity) = lobby.players.get(&client_id) {
- if let Ok((_, _, player_transform)) = players.get(*player_entity) {
- cast_at[1] = player_transform.translation[1];
+ if let Ok((_, player)) = players.get(*player_entity) {
+ fired_at = player.position;
let projectile_entity =
- spawn_projectile(&mut commands, cast_at, cast_at);
+ spawn_projectile(&mut commands, fired_at, fired_at);
let message = ServerMessages::SpawnProjectile {
entity: projectile_entity,
- location: cast_at,
- direction: cast_at,
+ position: fired_at,
+ direction: fired_at,
};
let message = bincode::serialize(&message).unwrap();
@@ -255,10 +248,9 @@ fn move_players_system(mut query: Query<(&mut Velocity, &PlayerInput)>) {
for (mut velocity, input) in query.iter_mut() {
let x = (input.right as i8 - input.left as i8) as f32;
let y = (input.down as i8 - input.up as i8) as f32;
- let direction = Vec2::new(x, y).normalize_or_zero();
- velocity.linvel.x = direction.x * PLAYER_MOVE_SPEED;
- velocity.linvel.y = direction.y * PLAYER_MOVE_SPEED;
+ velocity.linvel.x = x * PLAYER_MOVE_SPEED;
+ velocity.linvel.y = y * PLAYER_MOVE_SPEED;
}
}
diff --git a/shared/src/lib.rs b/shared/src/lib.rs
index b80a81b..d9bb7ef 100644
--- a/shared/src/lib.rs
+++ b/shared/src/lib.rs
@@ -17,7 +17,7 @@ pub const PROTOCOL_ID: u64 = 7;
#[derive(Debug, Component)]
pub struct Player {
pub id: u64,
- pub location: Vec2,
+ pub position: Vec2,
}
#[derive(Debug, Default, Clone, Copy, Serialize, Deserialize, Component)]
@@ -31,7 +31,7 @@ pub struct PlayerInput {
#[derive(Debug, Serialize, Deserialize, Component)]
pub enum PlayerCommand {
- BasicAttack { cast_at: Vec2 },
+ BasicAttack { fired_at: Vec2 },
}
pub enum ClientChannel {
@@ -49,14 +49,13 @@ pub enum ServerMessages {
PlayerCreate {
entity: Entity,
id: u64,
- translation: [f32; 3],
},
PlayerRemove {
id: u64,
},
SpawnProjectile {
entity: Entity,
- location: Vec2,
+ position: Vec2,
direction: Vec2,
},
DespawnProjectile {