maj client
This commit is contained in:
parent
6d2e6c7d43
commit
b48ab964d8
2 changed files with 35 additions and 22 deletions
|
|
@ -3,7 +3,10 @@ use bevy_renet::RenetClientPlugin;
|
|||
use std::{net::UdpSocket, time::SystemTime};
|
||||
|
||||
use renet::{
|
||||
transport::{ClientAuthentication, NetcodeClientTransport, NETCODE_USER_DATA_BYTES},
|
||||
transport::{
|
||||
ClientAuthentication, NetcodeClientTransport, NetcodeTransportError,
|
||||
NETCODE_USER_DATA_BYTES,
|
||||
},
|
||||
ConnectionConfig, RenetClient,
|
||||
};
|
||||
|
||||
|
|
@ -15,7 +18,7 @@ fn main() {
|
|||
let args = std::env::args().collect::<Vec<String>>();
|
||||
let username = &args[1];
|
||||
|
||||
let client = RenetClient::new(ConnectionConfig::default());
|
||||
let (client, transport) = new_renet_client(&username).unwrap();
|
||||
App::new()
|
||||
// Lets add a nice dark grey background color
|
||||
.insert_resource(ClearColor(Color::hex("282828").unwrap()))
|
||||
|
|
@ -31,15 +34,16 @@ fn main() {
|
|||
// Renet setup
|
||||
.add_plugins(RenetClientPlugin)
|
||||
.insert_resource(client)
|
||||
.insert_resource(new_renet_transport(&username).unwrap())
|
||||
// .add_system(handle_renet_error)
|
||||
.insert_resource(transport)
|
||||
.add_systems(Update, panic_on_error_system)
|
||||
.run();
|
||||
}
|
||||
|
||||
////////// RENET NETWORKING //////////
|
||||
// Creates a RenetClient thats already connected to a server.
|
||||
// Returns an Err if connection fails
|
||||
fn new_renet_transport(username: &String) -> anyhow::Result<NetcodeClientTransport> {
|
||||
fn new_renet_client(username: &String) -> anyhow::Result<(RenetClient, NetcodeClientTransport)> {
|
||||
let client = RenetClient::new(ConnectionConfig::default());
|
||||
let server_addr = "127.0.0.1:5000".parse()?;
|
||||
let socket = UdpSocket::bind("127.0.0.1:0")?;
|
||||
let current_time = SystemTime::now().duration_since(SystemTime::UNIX_EPOCH)?;
|
||||
|
|
@ -61,13 +65,12 @@ fn new_renet_transport(username: &String) -> anyhow::Result<NetcodeClientTranspo
|
|||
};
|
||||
let transport = NetcodeClientTransport::new(current_time, authentication, socket).unwrap();
|
||||
|
||||
Ok(transport)
|
||||
Ok((client, transport))
|
||||
}
|
||||
|
||||
// If there's any network error we just panic 🤷♂️
|
||||
// Ie. Client has lost connection to server, if internet is gone or server shut down etc.
|
||||
// fn handle_renet_error(mut renet_error: EventReader<RenetError>) {
|
||||
// for err in renet_error.iter() {
|
||||
// panic!("{}", err);
|
||||
// }
|
||||
// }
|
||||
// If any error is found we just panic
|
||||
fn panic_on_error_system(mut renet_error: EventReader<NetcodeTransportError>) {
|
||||
for e in renet_error.iter() {
|
||||
panic!("{}", e);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue