Send syncs every physics_tick
This commit is contained in:
parent
9769e7f91a
commit
fcda202c49
@ -225,51 +225,47 @@ impl INode for Game {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn physics_process(&mut self, delta: f64) {
|
fn physics_process(&mut self, delta: f64) {
|
||||||
self.since_last_sync += delta;
|
if let Some(_) = self.current_map {
|
||||||
if self.since_last_sync > (1. / 60.) {
|
if let Some(peer) = &mut NetworkManager::singleton().bind_mut().peer {
|
||||||
self.since_last_sync = 0.;
|
match peer {
|
||||||
if let Some(_) = self.current_map {
|
PeerKind::Client(peer, socket_addr) => {
|
||||||
if let Some(peer) = &mut NetworkManager::singleton().bind_mut().peer {
|
if let Some(player) = self
|
||||||
match peer {
|
.players
|
||||||
PeerKind::Client(peer, socket_addr) => {
|
.iter()
|
||||||
if let Some(player) = self
|
.find(|p| p.id() == self.self_id.unwrap_or(0))
|
||||||
.players
|
{
|
||||||
.iter()
|
if let Some(data) = &player.get_self_sync() {
|
||||||
.find(|p| p.id() == self.self_id.unwrap_or(0))
|
peer.send_unreliable(socket_addr, SelfSync(data.clone()));
|
||||||
{
|
|
||||||
if let Some(data) = &player.get_self_sync() {
|
|
||||||
peer.send_unreliable(socket_addr, SelfSync(data.clone()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
PeerKind::Server(peer, _) => {
|
}
|
||||||
let mut sync_data = HashMap::new();
|
PeerKind::Server(peer, _) => {
|
||||||
for player in &self.players {
|
let mut sync_data = HashMap::new();
|
||||||
if let Some(character) = &player.character {
|
for player in &self.players {
|
||||||
if character.dyn_bind().is_dead() {
|
if let Some(character) = &player.character {
|
||||||
continue;
|
if character.dyn_bind().is_dead() {
|
||||||
}
|
continue;
|
||||||
}
|
|
||||||
if let (Some(dir), Some(look_up), Some(transform)) = (
|
|
||||||
player.get_move_dir(),
|
|
||||||
player.get_look_up(),
|
|
||||||
player.get_transform(),
|
|
||||||
) {
|
|
||||||
sync_data.insert(
|
|
||||||
player.id(),
|
|
||||||
SyncPackage {
|
|
||||||
movement_direction: dir,
|
|
||||||
look_up,
|
|
||||||
transform,
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
peer.broadcast_unreliable(Package::Sync(
|
if let (Some(dir), Some(look_up), Some(transform)) = (
|
||||||
sync_data,
|
player.get_move_dir(),
|
||||||
self.world_ball.as_ref().map(|b| b.bind().get_sync()),
|
player.get_look_up(),
|
||||||
));
|
player.get_transform(),
|
||||||
|
) {
|
||||||
|
sync_data.insert(
|
||||||
|
player.id(),
|
||||||
|
SyncPackage {
|
||||||
|
movement_direction: dir,
|
||||||
|
look_up,
|
||||||
|
transform,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
peer.broadcast_unreliable(Package::Sync(
|
||||||
|
sync_data,
|
||||||
|
self.world_ball.as_ref().map(|b| b.bind().get_sync()),
|
||||||
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user