|
|
|
@ -26,8 +26,6 @@ impl Plugin for ServerPlugin { |
|
|
|
|
|
|
|
|
|
|
|
#[cfg(not(target_family = "wasm"))] |
|
|
|
#[cfg(not(target_family = "wasm"))] |
|
|
|
app.add_observer(super::server_webtransport::print_certificate_digest); |
|
|
|
app.add_observer(super::server_webtransport::print_certificate_digest); |
|
|
|
|
|
|
|
|
|
|
|
app.add_systems(FixedUpdate, crate::player::server_movement); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -57,11 +55,11 @@ fn on_server_stopped(event: On<Add, Stopped>) { |
|
|
|
|
|
|
|
|
|
|
|
fn handle_client_connected( |
|
|
|
fn handle_client_connected( |
|
|
|
event: On<Add, Connected>, |
|
|
|
event: On<Add, Connected>, |
|
|
|
clients: Query<&LinkOf>, |
|
|
|
clients: Query<(&LinkOf, &RemoteId)>, |
|
|
|
mut commands: Commands, |
|
|
|
mut commands: Commands, |
|
|
|
) { |
|
|
|
) { |
|
|
|
let client = event.entity; |
|
|
|
let client = event.entity; |
|
|
|
let Ok(LinkOf { server }) = clients.get(client) else { |
|
|
|
let Ok((LinkOf { server }, RemoteId(peer_id))) = clients.get(client) else { |
|
|
|
return; // Not a client of the server. (client-side?)
|
|
|
|
return; // Not a client of the server. (client-side?)
|
|
|
|
}; |
|
|
|
}; |
|
|
|
info!("Client '{client}' connected to server '{server}'"); |
|
|
|
info!("Client '{client}' connected to server '{server}'"); |
|
|
|
@ -74,11 +72,13 @@ fn handle_client_connected( |
|
|
|
commands.spawn(( |
|
|
|
commands.spawn(( |
|
|
|
Player, |
|
|
|
Player, |
|
|
|
Name::from("Player"), |
|
|
|
Name::from("Player"), |
|
|
|
Replicate::to_clients(NetworkTarget::All), |
|
|
|
|
|
|
|
ControlledBy { |
|
|
|
ControlledBy { |
|
|
|
owner: client, |
|
|
|
owner: client, |
|
|
|
lifetime: Lifetime::SessionBased, |
|
|
|
lifetime: Lifetime::SessionBased, |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
Replicate::to_clients(NetworkTarget::All), |
|
|
|
|
|
|
|
PredictionTarget::to_clients(NetworkTarget::Single(*peer_id)), |
|
|
|
|
|
|
|
InterpolationTarget::to_clients(NetworkTarget::AllExceptSingle(*peer_id)), |
|
|
|
)); |
|
|
|
)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|