Compare commits

...

3 commits

Author SHA1 Message Date
293ccf9370
Always derive Debug
All checks were successful
CI / Formatting (push) Successful in 1m13s
2025-06-03 00:04:56 -04:00
cb64878186
Rename types to queues
I mean that name just sucked
2025-06-02 23:58:56 -04:00
3c0590b273
Set write timeout
No read timeout because who knows if we'll ever receive a packet, but writes shouldn't last long
2025-06-02 23:56:00 -04:00
7 changed files with 14 additions and 13 deletions

View file

@ -4,25 +4,25 @@ use bevy::prelude::*;
use super::state::AppState;
/// Basic implementation of a physics object
#[derive(Component, Default)]
#[derive(Component, Debug, Default)]
#[require(Collider, Mesh2d, MeshMaterial2d<ColorMaterial>, Restitution = Restitution::new(1.0), RigidBody, TransformInterpolation, Transform, StateScoped<AppState> = StateScoped(AppState::InGame))]
struct GameObject;
/// Radius of a ball
#[derive(Component, Default)]
#[derive(Component, Debug, Default)]
pub struct Radius(pub f32);
/// A basic ball with which to interact
#[derive(Component, Default)]
#[derive(Component, Debug, Default)]
#[require(GameObject, RigidBody = RigidBody::Dynamic, Radius)]
pub struct Ball;
/// The controllable ball
#[derive(Component, Default)]
#[derive(Component, Debug, Default)]
#[require(Ball)]
pub struct Player;
/// The static objects bounding the playable area
#[derive(Component, Default)]
#[derive(Component, Debug, Default)]
#[require(GameObject, RigidBody = RigidBody::Static)]
pub struct Wall;

View file

@ -30,7 +30,7 @@ pub fn check_for_seed(seed: Option<Res<Seed>>, mut next_state: ResMut<NextState<
}
/// The size of the playable area (x, y)
#[derive(Resource)]
#[derive(Resource, Debug)]
pub struct PlayableArea(f32, f32);
/// Initialize deterministic values

View file

@ -1,5 +1,5 @@
mod plugin;
pub use plugin::NetIOPlugin;
mod queues;
mod socket;
mod thread;
mod types;

View file

@ -5,8 +5,8 @@ use bevy::prelude::*;
use crate::game::prelude::Seed;
use super::{
queues::{NetworkReceive, NetworkSend},
socket::bind_socket,
types::{NetworkReceive, NetworkSend},
};
fn handle_network_io(

View file

@ -7,7 +7,7 @@ pub type NetworkMessage = (Vec<u8>, SocketAddr);
pub type SendQueue = Sender<NetworkMessage>;
pub type ReceiveQueue = Receiver<NetworkMessage>;
#[derive(Resource)]
#[derive(Resource, Debug)]
pub struct NetworkSend(SendQueue);
impl NetworkSend {
@ -25,7 +25,7 @@ impl NetworkSend {
}
}
#[derive(Resource, Clone)]
#[derive(Resource, Clone, Debug)]
pub struct NetworkReceive(ReceiveQueue);
impl NetworkReceive {

View file

@ -1,18 +1,19 @@
use std::{
io::Result,
net::{Ipv6Addr, UdpSocket},
time::Duration,
};
use crossbeam_channel::unbounded;
use super::{
queues::{ReceiveQueue, SendQueue},
thread::{start_receive_thread, start_send_thread},
types::{ReceiveQueue, SendQueue},
};
fn configure_socket(socket: &UdpSocket) -> Result<()> {
socket.set_read_timeout(None)?;
socket.set_write_timeout(None)?;
socket.set_write_timeout(Some(Duration::from_secs(1)))?;
Ok(())
}

View file

@ -5,7 +5,7 @@ use std::{
use bevy::prelude::*;
use super::types::{ReceiveQueue, SendQueue};
use super::queues::{ReceiveQueue, SendQueue};
fn network_send_loop(messages: ReceiveQueue, socket: UdpSocket) -> Result {
loop {