This commit is contained in:
2022-08-11 13:30:28 +02:00
parent b0eadd5420
commit b46a22539e
2 changed files with 34 additions and 13 deletions

View File

@@ -83,6 +83,7 @@ fn main() {
app.add_system(update_visulizer_system);
app.add_startup_system(setup_level);
app.add_startup_system(setup_camera);
app.add_system(panic_on_error_system);
app.run();
@@ -159,8 +160,10 @@ fn client_sync_players(
mut most_recent_tick: ResMut<MostRecentTick>,
) {
let client_id = client.client_id();
while let Some(message) = client.receive_message(ServerChannel::ServerMessages.id()) {
let server_message = bincode::deserialize(&message).unwrap();
match server_message {
ServerMessages::PlayerCreate {
id,
@@ -168,10 +171,13 @@ fn client_sync_players(
entity,
} => {
println!("Player {} connected.", id);
let mut client_entity = commands.spawn_bundle(PbrBundle {
mesh: meshes.add(Mesh::from(shape::Capsule::default())),
material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
transform: Transform::from_xyz(translation[0], translation[1], translation[2]),
let mut client_entity = commands.spawn_bundle(SpriteBundle {
sprite: Sprite {
color: Color::rgb(0., 0.47, 1.),
custom_size: Some(Vec2::new(1., 1.)),
..Default::default()
},
..Default::default()
});
@@ -183,11 +189,14 @@ fn client_sync_players(
server_entity: entity,
client_entity: client_entity.id(),
};
lobby.players.insert(id, player_info);
network_mapping.0.insert(entity, client_entity.id());
}
ServerMessages::PlayerRemove { id } => {
println!("Player {} disconnected.", id);
if let Some(PlayerInfo {
server_entity,
client_entity,
@@ -223,6 +232,7 @@ fn client_sync_players(
while let Some(message) = client.receive_message(ServerChannel::NetworkFrame.id()) {
let frame: NetworkFrame = bincode::deserialize(&message).unwrap();
match most_recent_tick.0 {
None => most_recent_tick.0 = Some(frame.tick),
Some(tick) if tick < frame.tick => most_recent_tick.0 = Some(frame.tick),
@@ -236,11 +246,16 @@ fn client_sync_players(
translation,
..Default::default()
};
commands.entity(*entity).insert(transform);
}
}
}
}
fn setup_camera(mut commands: Commands) {
commands.spawn_bundle(Camera2dBundle::default());
}
#[derive(Component)]
struct Target;