update lightyear + fix aiming crash (#67)
This commit is contained in:
@@ -7,8 +7,13 @@ use bevy::{
|
||||
};
|
||||
use bevy_trenchbroom::geometry::Brushes;
|
||||
use lightyear::{
|
||||
link::{LinkConditioner, prelude::*},
|
||||
netcode::Key,
|
||||
prelude::{client::NetcodeConfig, input::native::InputMarker, *},
|
||||
prelude::{
|
||||
client::{Input, InputDelayConfig, NetcodeConfig},
|
||||
input::native::InputMarker,
|
||||
*,
|
||||
},
|
||||
};
|
||||
use nil::prelude::Mutex;
|
||||
use shared::{
|
||||
@@ -25,6 +30,7 @@ use std::{
|
||||
net::{IpAddr, Ipv4Addr, SocketAddr},
|
||||
process::Stdio,
|
||||
sync::{LazyLock, mpsc},
|
||||
time::Duration,
|
||||
};
|
||||
|
||||
/// Cache of server processes to be cleared at process exit
|
||||
@@ -78,11 +84,21 @@ fn attempt_connection(mut commands: Commands) -> Result {
|
||||
private_key: Key::default(),
|
||||
protocol_id: 0,
|
||||
};
|
||||
let sync_config = SyncConfig {
|
||||
jitter_multiple: 5,
|
||||
jitter_margin: Duration::from_millis(15),
|
||||
..default()
|
||||
};
|
||||
let conditioner = LinkConditioner::new(LinkConditionerConfig {
|
||||
incoming_latency: Duration::from_millis(10),
|
||||
incoming_jitter: Duration::from_millis(0),
|
||||
incoming_loss: 0.0,
|
||||
});
|
||||
commands
|
||||
.spawn((
|
||||
Name::from("Client"),
|
||||
Client::default(),
|
||||
Link::new(None),
|
||||
Link::new(Some(conditioner)),
|
||||
LocalAddr(client_addr),
|
||||
PeerAddr(server_addr),
|
||||
ReplicationReceiver::default(),
|
||||
@@ -94,6 +110,10 @@ fn attempt_connection(mut commands: Commands) -> Result {
|
||||
},
|
||||
)?,
|
||||
UdpIo::default(),
|
||||
InputTimeline(Timeline::from(Input::new(
|
||||
sync_config,
|
||||
InputDelayConfig::balanced(),
|
||||
))),
|
||||
))
|
||||
.trigger(Connect);
|
||||
|
||||
|
||||
@@ -1,11 +1,17 @@
|
||||
use crate::config::ServerConfig;
|
||||
use bevy::prelude::*;
|
||||
use lightyear::prelude::{
|
||||
server::{NetcodeConfig, NetcodeServer, ServerUdpIo, Started},
|
||||
*,
|
||||
use lightyear::{
|
||||
link::LinkConditioner,
|
||||
prelude::{
|
||||
server::{NetcodeConfig, NetcodeServer, ServerUdpIo, Started},
|
||||
*,
|
||||
},
|
||||
};
|
||||
use shared::{GameState, global_observer, heads_database::HeadsDatabase, tb_entities::SpawnPoint};
|
||||
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
|
||||
use std::{
|
||||
net::{IpAddr, Ipv4Addr, SocketAddr},
|
||||
time::Duration,
|
||||
};
|
||||
|
||||
pub fn plugin(app: &mut App) {
|
||||
app.add_systems(Startup, (start_server, setup_timeout_timer));
|
||||
@@ -34,9 +40,15 @@ fn handle_new_client(
|
||||
|
||||
info!("Client connected on IP: {}", id.ip());
|
||||
|
||||
let conditioner = LinkConditioner::new(LinkConditionerConfig {
|
||||
incoming_latency: Duration::from_millis(10),
|
||||
incoming_jitter: Duration::from_millis(0),
|
||||
incoming_loss: 0.0,
|
||||
});
|
||||
|
||||
commands
|
||||
.entity(trigger.target())
|
||||
.insert(ReplicationSender::default());
|
||||
.insert((ReplicationSender::default(), Link::new(Some(conditioner))));
|
||||
|
||||
crate::player::spawn(commands, trigger.target(), query, asset_server, heads_db);
|
||||
|
||||
@@ -56,11 +68,17 @@ fn close_on_disconnect(
|
||||
fn start_server(mut commands: Commands) -> Result {
|
||||
let server_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 25565);
|
||||
|
||||
let conditioner = LinkConditioner::new(LinkConditionerConfig {
|
||||
incoming_latency: Duration::from_millis(10),
|
||||
incoming_jitter: Duration::from_millis(0),
|
||||
incoming_loss: 0.0,
|
||||
});
|
||||
let mut commands = commands.spawn((
|
||||
Name::from("Server"),
|
||||
LocalAddr(server_addr),
|
||||
ServerUdpIo::default(),
|
||||
NetcodeServer::new(NetcodeConfig::default()),
|
||||
Link::new(Some(conditioner)),
|
||||
));
|
||||
commands.trigger(server::Start);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user