From 265fc540b0a0a8ba38d66066fa6c570968f59e37 Mon Sep 17 00:00:00 2001 From: core Date: Sun, 6 Jul 2025 19:40:51 -0400 Subject: [PATCH] chore: newtype linearsplines for particle system --- crates/unified/src/client/net.rs | 4 ++-- .../src/client/planet/incoming_planets.rs | 22 +++++++------------ .../unified/src/client/planet/indicators.rs | 2 +- crates/unified/src/lib.rs | 3 +-- crates/unified/src/particles.rs | 9 ++++---- crates/unified/src/server/earth_parts.rs | 7 +++--- crates/unified/src/server/mod.rs | 2 +- crates/unified/src/server/player.rs | 2 +- 8 files changed, 21 insertions(+), 30 deletions(-) diff --git a/crates/unified/src/client/net.rs b/crates/unified/src/client/net.rs index a016f09a996a2efef3910ca04dba26992f48866b..ad06d21bfd40362f9ff7bb0cff6f9ebfd1cec488 100644 --- a/crates/unified/src/client/net.rs +++ b/crates/unified/src/client/net.rs @@ -5,8 +5,8 @@ use aeronet_transport::TransportConfig; use bevy::prelude::*; pub fn set_config(mut q: Query<&mut TransportConfig, Added>) { - for mut q in q.iter_mut() { - q.max_memory_usage = 8388608; // 8 MiB + for mut q in &mut q { + q.max_memory_usage = 8_388_608; // 8 MiB } } diff --git a/crates/unified/src/client/planet/incoming_planets.rs b/crates/unified/src/client/planet/incoming_planets.rs index 0746488ffeb0f367026ca8160f295a138feb0b24..7634615ae2493be4aab80ae7f7dfc0bbf700f88f 100644 --- a/crates/unified/src/client/planet/incoming_planets.rs +++ b/crates/unified/src/client/planet/incoming_planets.rs @@ -10,18 +10,15 @@ fn handle_incoming_planets( mut commands: Commands, new_planets: Query<(Entity, &Planet), Added>, asset_server: Res, - mut meshes: ResMut>, - mut materials: ResMut> + meshes: ResMut>, + materials: ResMut> ) { for (new_entity, new_planet) in new_planets.iter() { let mut sprite = Sprite::from_image(asset_server.load(&new_planet.sprite)); sprite.custom_size = Some(Vec2::new(new_planet.radius * 2.0, new_planet.radius * 2.0)); - match new_planet.special_sprite_properties { - Some(SpecialSpriteProperties::ForceColor(c)) => { - sprite.color = c; - }, - _ => {} + if let Some(SpecialSpriteProperties::ForceColor(c)) = new_planet.special_sprite_properties { + sprite.color = c; } let mut commands = commands @@ -37,8 +34,8 @@ fn handle_updated_planets( mut commands: Commands, updated_planets: Query<(Entity, &Planet), Changed>, asset_server: Res, - mut meshes: ResMut>, - mut materials: ResMut> + meshes: ResMut>, + materials: ResMut> ) { for (updated_entity, updated_planet) in updated_planets.iter() { let mut sprite = Sprite::from_image(asset_server.load(&updated_planet.sprite)); @@ -47,11 +44,8 @@ fn handle_updated_planets( updated_planet.radius * 2.0, )); - match updated_planet.special_sprite_properties { - Some(SpecialSpriteProperties::ForceColor(c)) => { - sprite.color = c; - }, - _ => {} + if let Some(SpecialSpriteProperties::ForceColor(c)) = updated_planet.special_sprite_properties { + sprite.color = c; } let mut commands = commands.entity(updated_entity); diff --git a/crates/unified/src/client/planet/indicators.rs b/crates/unified/src/client/planet/indicators.rs index 5342781a710208b91fc84ad491532893df29e04e..07192df47a9308e38cd67083f4294f814fcf0db8 100644 --- a/crates/unified/src/client/planet/indicators.rs +++ b/crates/unified/src/client/planet/indicators.rs @@ -2,7 +2,7 @@ use bevy::prelude::*; use bevy::window::PrimaryWindow; use crate::client::Me; use crate::config::planet::Planet; -use crate::ecs::{MainCamera, StarfieldBack, StarfieldFront, StarfieldMid}; +use crate::ecs::MainCamera; pub fn indicators_plugin(app: &mut App) { app.add_systems(PreUpdate, (add_indicators, update_indicators)) diff --git a/crates/unified/src/lib.rs b/crates/unified/src/lib.rs index 76a58c41b578ce9635f7a59756faf0e0a7620618..f37a302e6030af9fa53895de3932b9977ed6f746 100644 --- a/crates/unified/src/lib.rs +++ b/crates/unified/src/lib.rs @@ -24,5 +24,4 @@ pub mod ecs; pub mod server; #[cfg(all(not(target_arch = "wasm32"), feature = "native"))] pub mod server_plugins; -pub mod shared_plugins; -pub mod particle; +pub mod shared_plugins; \ No newline at end of file diff --git a/crates/unified/src/particles.rs b/crates/unified/src/particles.rs index 92977aef64dd7462d048422d634be94f29ee697f..e62dfcfcff566cdb841a7a403a93a3c4c015a04a 100644 --- a/crates/unified/src/particles.rs +++ b/crates/unified/src/particles.rs @@ -1,9 +1,8 @@ -use bevy::color::{Color, ColorCurve, LinearRgba}; +use bevy::color::LinearRgba; use bevy::math::cubic_splines::LinearSpline; -use bevy::math::{Vec2, VectorSpace}; +use bevy::math::Vec2; use rand::Rng; use serde::{Deserialize, Serialize}; -use serde::de::DeserializeOwned; #[derive(Deserialize, Serialize)] pub struct ParticleEffect { @@ -38,14 +37,14 @@ pub struct ParticleEffect { pub struct ScaleSpline(Vec); impl From for LinearSpline { fn from(value: ScaleSpline) -> Self { - Self::new(&value.0) + Self::new(value.0) } } #[derive(Deserialize, Serialize)] pub struct ColorSpline(Vec); impl From for LinearSpline { fn from(value: ColorSpline) -> Self { - Self::new(&value.0) + Self::new(value.0) } } diff --git a/crates/unified/src/server/earth_parts.rs b/crates/unified/src/server/earth_parts.rs index d738ebe8f89adae59e6a3d1a80924beb2a469565..d1b3f709cf3829daabffbcb67d14ccbc7b714217 100644 --- a/crates/unified/src/server/earth_parts.rs +++ b/crates/unified/src/server/earth_parts.rs @@ -1,13 +1,12 @@ -use std::time::Duration; use bevy::app::App; use bevy::math::Vec2; use bevy::prelude::{Commands, Query, Res, Transform}; -use bevy::time::{Real, Time}; -use bevy_rapier2d::dynamics::{AdditionalMassProperties, ExternalForce, MassProperties}; +use bevy::time::Time; +use bevy_rapier2d::dynamics::{AdditionalMassProperties, MassProperties}; use bevy_rapier2d::geometry::Collider; use bevy_replicon::prelude::Replicated; use crate::config::planet::Planet; -use crate::ecs::{Part, PartBundle, Player, PlayerThrust}; +use crate::ecs::{Part, PartBundle}; use crate::server::world_config::WorldConfigResource; use bevy::prelude::*; diff --git a/crates/unified/src/server/mod.rs b/crates/unified/src/server/mod.rs index 232e351dcaad40c7471e8b356e7ccac1a2190fad..39b4edb15c36fd2a92ea538738b6a10b242515e4 100644 --- a/crates/unified/src/server/mod.rs +++ b/crates/unified/src/server/mod.rs @@ -16,7 +16,7 @@ use aeronet_websocket::server::WebSocketServer; use bevy::prelude::*; use bevy_replicon::prelude::Replicated; use std::net::SocketAddr; -use crate::server::earth_parts::{spawn_parts_on_earth, spawn_parts_plugin}; +use crate::server::earth_parts::spawn_parts_plugin; pub struct ServerPlugin { pub bind: SocketAddr, diff --git a/crates/unified/src/server/player.rs b/crates/unified/src/server/player.rs index 0ccb896f9b70664db11d65dfeffd3731869dde92..6f4fa1c4dc5b7677d5232bd34ff30c823e6e5025 100644 --- a/crates/unified/src/server/player.rs +++ b/crates/unified/src/server/player.rs @@ -38,7 +38,7 @@ fn handle_new_players( let (spawn_planet_pos, spawn_planet) = planets .iter() .find(|p| p.1.name == wc.hearty.spawn_at) - .expect(format!("spawn planet {} is missing? (check that the planet is named exactly '{}')", wc.hearty.spawn_at, wc.hearty.spawn_at).as_str()); + .unwrap_or_else(|| panic!("spawn planet {} is missing? (check that the planet is named exactly '{}')", wc.hearty.spawn_at, wc.hearty.spawn_at)); let angle = rand::random::() * std::f32::consts::TAU; let offset = spawn_planet.radius + 150.0; let mut new_transform =