Skip to content

Commit 4f05738

Browse files
committed
bump to bevy 0.14
Signed-off-by: Matthew Fisher <[email protected]>
1 parent d6e58d1 commit 4f05738

File tree

11 files changed

+2252
-1188
lines changed

11 files changed

+2252
-1188
lines changed

Cargo.lock

Lines changed: 2151 additions & 1041 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@ license = "Apache-2.0"
1212
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
1313

1414
[dependencies]
15-
bevy = "0.8"
15+
bevy = "0.14"
1616
bytes = "1"

examples/chat_client.rs

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use std::net::{SocketAddr, UdpSocket};
22

33
use bevy::{log::LogPlugin, prelude::*};
4-
use bevy_simple_networking::{ClientPlugin, NetworkEvent, Transport};
4+
use bevy_simple_networking::{ClientPlugin, NetworkEvent, SocketAddrResource, Transport, UdpSocketResource};
55

66
fn main() {
77
let remote_addr: SocketAddr = "127.0.0.1:4567".parse().expect("could not parse addr");
@@ -14,18 +14,16 @@ fn main() {
1414
.expect("could not set socket to be nonblocking");
1515

1616
App::new()
17-
.insert_resource(remote_addr)
18-
.insert_resource(socket)
19-
.add_plugins(MinimalPlugins)
20-
.add_plugin(LogPlugin)
21-
.add_plugin(ClientPlugin)
22-
.add_system(connection_handler)
23-
.add_startup_system(hello_world)
17+
.insert_resource(SocketAddrResource::new(remote_addr))
18+
.insert_resource(UdpSocketResource::new(socket))
19+
.add_plugins((MinimalPlugins, LogPlugin::default(), ClientPlugin))
20+
.add_systems(Update, connection_handler)
21+
.add_systems(Startup, hello_world)
2422
.run();
2523
}
2624

2725
fn connection_handler(mut events: EventReader<NetworkEvent>) {
28-
for event in events.iter() {
26+
for event in events.read() {
2927
match event {
3028
NetworkEvent::Message(_, msg) => {
3129
info!("{}", String::from_utf8_lossy(msg));
@@ -45,6 +43,6 @@ fn connection_handler(mut events: EventReader<NetworkEvent>) {
4543
}
4644
}
4745

48-
fn hello_world(remote_addr: Res<SocketAddr>, mut transport: ResMut<Transport>) {
49-
transport.send(*remote_addr, b"Hello world!");
46+
fn hello_world(remote_addr: Res<SocketAddrResource>, mut transport: ResMut<Transport>) {
47+
transport.send(**remote_addr, b"Hello world!");
5048
}

examples/chat_server.rs

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use std::{net::UdpSocket, time::Duration};
22

3-
use bevy::{app::ScheduleRunnerSettings, log::LogPlugin, prelude::*};
4-
use bevy_simple_networking::{NetworkEvent, NetworkResource, ServerPlugin, Transport};
3+
use bevy::{app::{App, ScheduleRunnerPlugin, Update}, log::{info, LogPlugin}, prelude::*, MinimalPlugins};
4+
use bevy_simple_networking::{NetworkEvent, NetworkResource, ServerPlugin, Transport, UdpSocketResource};
55

66
const LISTEN_ADDRESS: &str = "127.0.0.1:4567";
77

@@ -17,15 +17,12 @@ fn main() {
1717
info!("Server now listening on {}", LISTEN_ADDRESS);
1818

1919
App::new()
20+
.insert_resource(UdpSocketResource::new(socket))
2021
// run the server at a reduced tick rate (35 ticks per second)
21-
.insert_resource(ScheduleRunnerSettings::run_loop(Duration::from_secs_f32(
22+
.add_plugins((MinimalPlugins, LogPlugin::default(), ServerPlugin, ScheduleRunnerPlugin::run_loop(Duration::from_secs_f32(
2223
1. / 35.,
23-
)))
24-
.insert_resource(socket)
25-
.add_plugins(MinimalPlugins)
26-
.add_plugin(LogPlugin)
27-
.add_plugin(ServerPlugin)
28-
.add_system(connection_handler)
24+
))))
25+
.add_systems(Update, connection_handler)
2926
.run();
3027
}
3128

@@ -34,7 +31,7 @@ fn connection_handler(
3431
mut events: EventReader<NetworkEvent>,
3532
mut transport: ResMut<Transport>,
3633
) {
37-
for event in events.iter() {
34+
for event in events.read() {
3835
match event {
3936
NetworkEvent::Connected(handle) => {
4037
for (addr, _) in net.connections.iter() {

examples/simple_client.rs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use std::net::{SocketAddr, UdpSocket};
22

33
use bevy::{log::LogPlugin, prelude::*};
4-
use bevy_simple_networking::{ClientPlugin, NetworkEvent};
4+
use bevy_simple_networking::{ClientPlugin, NetworkEvent, SocketAddrResource, UdpSocketResource};
55

66
fn main() {
77
let remote_addr: SocketAddr = "127.0.0.1:4567".parse().expect("could not parse addr");
@@ -14,17 +14,15 @@ fn main() {
1414
.expect("could not set socket to be nonblocking");
1515

1616
App::new()
17-
.insert_resource(remote_addr)
18-
.insert_resource(socket)
19-
.add_plugins(MinimalPlugins)
20-
.add_plugin(LogPlugin)
21-
.add_plugin(ClientPlugin)
22-
.add_system(connection_handler)
17+
.insert_resource(SocketAddrResource::new(remote_addr))
18+
.insert_resource(UdpSocketResource::new(socket))
19+
.add_plugins((MinimalPlugins, LogPlugin::default(), ClientPlugin))
20+
.add_systems(Update, connection_handler)
2321
.run();
2422
}
2523

2624
fn connection_handler(mut events: EventReader<NetworkEvent>) {
27-
for event in events.iter() {
25+
for event in events.read() {
2826
match event {
2927
NetworkEvent::Message(_, msg) => {
3028
info!("server sent a message: {:?}", msg);

examples/simple_server.rs

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use std::{net::UdpSocket, time::Duration};
22

3-
use bevy::{app::ScheduleRunnerSettings, log::LogPlugin, prelude::*};
4-
use bevy_simple_networking::{NetworkEvent, ServerPlugin, Transport};
3+
use bevy::{app::ScheduleRunnerPlugin, log::LogPlugin, prelude::*};
4+
use bevy_simple_networking::{NetworkEvent, ServerPlugin, Transport, UdpSocketResource};
55

66
const LISTEN_ADDRESS: &str = "127.0.0.1:4567";
77

@@ -18,19 +18,16 @@ fn main() {
1818

1919
App::new()
2020
// run the server at a reduced tick rate (100 ticks per minute)
21-
.insert_resource(ScheduleRunnerSettings::run_loop(Duration::from_secs_f32(
21+
.insert_resource(UdpSocketResource::new(socket))
22+
.add_plugins((MinimalPlugins, LogPlugin::default(), ServerPlugin, ScheduleRunnerPlugin::run_loop(Duration::from_secs_f32(
2223
60. / 100.,
23-
)))
24-
.insert_resource(socket)
25-
.add_plugins(MinimalPlugins)
26-
.add_plugin(LogPlugin)
27-
.add_plugin(ServerPlugin)
28-
.add_system(connection_handler)
24+
))))
25+
.add_systems(Update, connection_handler)
2926
.run();
3027
}
3128

3229
fn connection_handler(mut events: EventReader<NetworkEvent>, mut transport: ResMut<Transport>) {
33-
for event in events.iter() {
30+
for event in events.read() {
3431
match event {
3532
NetworkEvent::Connected(handle) => {
3633
info!("{}: connected!", handle);

examples/using_label.rs

Lines changed: 0 additions & 88 deletions
This file was deleted.

src/events.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
use std::{io, net::SocketAddr};
22

3+
use bevy::prelude::Event;
34
use bytes::Bytes;
45

56
use super::message::Message;
67

8+
#[derive(Event)]
79
pub enum NetworkEvent {
810
// A message was received from a client
911
Message(SocketAddr, Bytes),

src/lib.rs

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use std::net::SocketAddr;
88
use std::time::Duration;
99

1010
pub use self::events::NetworkEvent;
11+
pub use self::systems::{SocketAddrResource, UdpSocketResource};
1112
pub use self::transport::Transport;
1213

1314
use bevy::prelude::*;
@@ -19,6 +20,7 @@ const DEFAULT_HEARTBEAT_TICK_RATE_SECS: f32 = 2.;
1920
/// NetworkEvent::Disconnected
2021
const DEFAULT_IDLE_TIMEOUT_SECS: f32 = 5.;
2122

23+
#[derive(Resource)]
2224
pub struct NetworkResource {
2325
// Hashmap of each live connection and their last known packet activity
2426
pub connections: HashMap<SocketAddr, Duration>,
@@ -35,20 +37,20 @@ impl Default for NetworkResource {
3537
}
3638

3739
/// Label for network related systems.
38-
#[derive(Clone, Hash, Debug, PartialEq, Eq, SystemLabel)]
40+
#[derive(Clone, Hash, Debug, PartialEq, Eq, SystemSet)]
3941
pub enum NetworkSystem {
4042
Receive,
4143
Send,
4244
}
4345

4446
/// Label for server specific systems.
45-
#[derive(Clone, Hash, Debug, PartialEq, Eq, SystemLabel)]
47+
#[derive(Clone, Hash, Debug, PartialEq, Eq, SystemSet)]
4648
pub enum ServerSystem {
4749
IdleTimeout,
4850
}
4951

5052
/// Label for client specific systems.
51-
#[derive(Clone, Hash, Debug, PartialEq, Eq, SystemLabel)]
53+
#[derive(Clone, Hash, Debug, PartialEq, Eq, SystemSet)]
5254
pub enum ClientSystem {
5355
Heartbeat,
5456
}
@@ -60,12 +62,18 @@ impl Plugin for ServerPlugin {
6062
app.insert_resource(NetworkResource::default())
6163
.insert_resource(transport::Transport::new())
6264
.add_event::<events::NetworkEvent>()
63-
.add_system(systems::server_recv_packet_system.label(NetworkSystem::Receive))
64-
.add_system(systems::send_packet_system.label(NetworkSystem::Send))
65-
.add_system(systems::idle_timeout_system.label(ServerSystem::IdleTimeout));
65+
.add_systems(
66+
Update,
67+
(
68+
systems::server_recv_packet_system.in_set(NetworkSystem::Receive),
69+
systems::send_packet_system.in_set(NetworkSystem::Send),
70+
systems::idle_timeout_system.in_set(ServerSystem::IdleTimeout)
71+
)
72+
);
6673
}
6774
}
6875

76+
#[derive(Resource)]
6977
pub struct HeartbeatTimer(Timer);
7078

7179
pub struct ClientPlugin;
@@ -75,11 +83,16 @@ impl Plugin for ClientPlugin {
7583
app.insert_resource(transport::Transport::new())
7684
.insert_resource(HeartbeatTimer(Timer::from_seconds(
7785
DEFAULT_HEARTBEAT_TICK_RATE_SECS,
78-
true,
86+
TimerMode::Repeating,
7987
)))
8088
.add_event::<events::NetworkEvent>()
81-
.add_system(systems::client_recv_packet_system.label(NetworkSystem::Receive))
82-
.add_system(systems::send_packet_system.label(NetworkSystem::Send))
83-
.add_system(systems::auto_heartbeat_system.label(ClientSystem::Heartbeat));
89+
.add_systems(
90+
Update,
91+
(
92+
systems::client_recv_packet_system.in_set(NetworkSystem::Receive),
93+
systems::send_packet_system.in_set(NetworkSystem::Send),
94+
systems::auto_heartbeat_system.in_set(ClientSystem::Heartbeat)
95+
)
96+
);
8497
}
8598
}

0 commit comments

Comments
 (0)