use crate::{
events::{Inbox, NetworkEvent, Outbox},
server::Server,
};
use bevy::prelude::*;
pub(crate) fn handle_incoming(server: Res<Server>) {
for connection in server.incoming.receiver.try_iter() {
info!("Handling incoming connection: {connection:?}");
server.setup_client(connection);
}
}
pub(crate) fn handle_lost(server: Res<Server>) {
for id in server.lost.receiver.try_iter() {
info!("Handling lost connection: {id:?}");
server.remove_client(&id);
}
}
pub(crate) fn handle_events(server: Res<Server>, mut events: MessageWriter<NetworkEvent>) {
for event in server.events.receiver.try_iter() {
info!("Handling event: {event:?}");
events.write(event);
}
}
pub(crate) fn handle_inbox(server: Res<Server>, mut inbox: MessageWriter<Inbox>) {
for frame in server.inbox.receiver.try_iter() {
info!("Handling inbox frame: {frame:?}");
inbox.write(frame);
}
}
pub(crate) fn handle_outbox(server: Res<Server>, mut outbox: MessageReader<Outbox>) {
for out in outbox.read() {
server.send(out);
}
}