bevy_stokes

A bevy plugin providing a thin and ergonomic wrapper around laminar.

License Cargo Documentation

Example

Ping

```rust fn setup(mut commands: Commands) { let addr: SocketAddr = PINGADDR.parse().unwrap(); let socketbundle = bind(addr, Duration::frommillis(10)).unwrap(); commands.spawnbundle(socket_bundle); }

fn ping(mut socketquery: Query<&mut SendQueue, With>) { let mut packetqueue = socketquery.singlemut(); let ping = Packet::reliableunordered(PONGADDR.parse().unwrap(), b"DEADBEEF".tovec()); packetqueue.send(ping); info!("sent ping"); }

fn pong(mut connectionquery: Query<&mut ReceiveQueue, With>) { if let Ok(mut queue) = connectionquery.getsinglemut() { for _ in queue.drain() { info!("received pong"); } } } ```

Pong

```rust fn setup(mut commands: Commands) { let addr: SocketAddr = PONGADDR.parse().unwrap(); let socketbundle = bind(addr, Duration::frommillis(10)).unwrap(); commands.spawnbundle(socket_bundle); }

fn pong( mut socketquery: Query<&mut SendQueue, With>, mut connectionquery: Query< (&SocketId, &ConnectionAddress, &mut ReceiveQueue), With,

, ) { if let Ok((socketid, connaddr, mut queue)) = connectionquery.getsingle_mut() { for ping in queue.drain() { info!("received ping");

        let mut packet_queue = socket_query.get_mut(socket_id.0).unwrap();
        let pong = Packet::reliable_unordered(conn_addr.0, ping.payload().to_vec());
        packet_queue.send(pong);
        info!("returned pong");
    }
}

} ```