Network updates enabled
This commit is contained in:
parent
eafc7cfced
commit
fc96a81424
3 changed files with 57 additions and 26 deletions
|
|
@ -1,7 +1,7 @@
|
|||
pub mod temporal_management;
|
||||
use bevy::{
|
||||
prelude::*,
|
||||
render::{RenderPlugin, settings::WgpuSettings, view::Hdr},
|
||||
render::{RenderPlugin, settings::WgpuSettings},
|
||||
time::common_conditions::on_timer,
|
||||
};
|
||||
use bevy_matchbox::{matchbox_signaling::SignalingServer, prelude::*};
|
||||
|
|
@ -14,8 +14,8 @@ use rand::{
|
|||
distr::{Distribution, Uniform},
|
||||
rng,
|
||||
};
|
||||
use rmp_serde::{Deserializer, Serializer};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use rmp_serde::Serializer;
|
||||
use serde::Serialize;
|
||||
use std::{
|
||||
collections::HashSet,
|
||||
net::{Ipv4Addr, SocketAddrV4},
|
||||
|
|
@ -25,6 +25,8 @@ use std::{
|
|||
const CHANNEL_ID: usize = 0;
|
||||
#[derive(Component)]
|
||||
struct Changed;
|
||||
#[derive(Component)]
|
||||
struct Star;
|
||||
fn main() {
|
||||
App::new()
|
||||
.add_plugins((DefaultPlugins.set(RenderPlugin {
|
||||
|
|
@ -45,7 +47,10 @@ fn main() {
|
|||
)
|
||||
.add_systems(
|
||||
Update,
|
||||
(send_message.run_if(on_timer(Duration::from_secs(5))),),
|
||||
(
|
||||
move_stars,
|
||||
send_message.run_if(on_timer(Duration::from_millis(100))),
|
||||
),
|
||||
)
|
||||
.run();
|
||||
}
|
||||
|
|
@ -95,16 +100,7 @@ fn setup_scene(mut commands: Commands, mut socket: ResMut<MatchboxSocket>) {
|
|||
transform: Transform::from_xyz(x as f32 / 100.0, z as f32 / 20000.0, z as f32 / 100.0),
|
||||
};
|
||||
|
||||
commands.spawn((NetworkObject::Star(star_info), Changed));
|
||||
let peers: Vec<_> = socket.connected_peers().collect();
|
||||
|
||||
for peer in peers {
|
||||
let message = "Hello";
|
||||
info!("Sending message: {message:?} to {peer}");
|
||||
socket
|
||||
.channel_mut(CHANNEL_ID)
|
||||
.send(message.as_bytes().into(), peer);
|
||||
}
|
||||
commands.spawn((NetworkObject::Star(star_info), Changed, Star));
|
||||
}
|
||||
}
|
||||
fn start_socket(mut commands: Commands) {
|
||||
|
|
@ -115,7 +111,7 @@ fn start_socket(mut commands: Commands) {
|
|||
|
||||
fn send_message(mut socket: ResMut<MatchboxSocket>, network_objects: Query<&NetworkObject>) {
|
||||
for (peer, state) in socket.update_peers() {
|
||||
info!("{peer}: {state:?}");
|
||||
// info!("{peer}: {state:?}");
|
||||
}
|
||||
|
||||
let peers: Vec<_> = socket.connected_peers().collect();
|
||||
|
|
@ -124,10 +120,24 @@ fn send_message(mut socket: ResMut<MatchboxSocket>, network_objects: Query<&Netw
|
|||
for network_object in network_objects.iter() {
|
||||
let mut ser_buf: Vec<u8> = Vec::new();
|
||||
network_object.serialize(&mut Serializer::new(&mut ser_buf));
|
||||
info!("Sending message: {ser_buf:?} to {peer}");
|
||||
// info!("Sending message: {ser_buf:?} to {peer}");
|
||||
socket
|
||||
.channel_mut(CHANNEL_ID)
|
||||
.send(ser_buf.as_slice().into(), peer);
|
||||
}
|
||||
}
|
||||
}
|
||||
fn move_stars(mut network_objects: Query<&mut NetworkObject, With<Star>>, time: Res<Time>) {
|
||||
for mut no in network_objects.iter_mut() {
|
||||
if let NetworkObject::Star(star) = no.as_mut() {
|
||||
star.transform.rotate_around(
|
||||
Vec3 {
|
||||
x: 0.0,
|
||||
y: 0.0,
|
||||
z: 0.0,
|
||||
},
|
||||
Quat::from_rotation_y(time.delta_secs() * 0.05),
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue