28 lines
1.0 KiB
Rust
28 lines
1.0 KiB
Rust
use std::net::SocketAddr;
|
|
use bevy::app::{App, Plugin};
|
|
use bevy::prelude::{Commands, EventReader, ResMut};
|
|
use bytes::Bytes;
|
|
use crossbeam_channel::{Receiver, Sender};
|
|
use qp2p::{Config, Endpoint};
|
|
use tokio::runtime::Runtime;
|
|
use bevy_add_events_macro::add_events;
|
|
use crate::networking::{event, resource};
|
|
|
|
pub struct NetworkingPlugin;
|
|
|
|
impl Plugin for NetworkingPlugin {
|
|
fn build(&self, app: &mut App) {
|
|
add_events!(app, ServerConnection, ServerSocketAddr);
|
|
app.add_startup_system(setup_networking_runtime());
|
|
}
|
|
}
|
|
|
|
pub fn setup_networking_runtime(mut commands: Commands) {
|
|
commands.insert_resource(resource::NetworkingRuntime(Runtime::new().expect("networking runtime needs to be init'd to work!")));
|
|
}
|
|
|
|
pub fn connection_added(mut commands: Commands, mut socket_addr: EventReader<event::ServerSocketAddr>, mut networking_runtime: ResMut<resource::NetworkingRuntime>) {
|
|
let mut config = Config::default();
|
|
config.idle_timeout = None;
|
|
let endpoint = Endpoint::new_client(SocketAddr::from)
|
|
} |