From 8ec2ca862f877587160380a225943baea747fce2 Mon Sep 17 00:00:00 2001 From: core Date: Tue, 8 Jul 2025 20:21:04 -0400 Subject: [PATCH] chore: code cleanup --- crates/unified/src/attachment.rs | 20 ++++++------ crates/unified/src/client/key_input.rs | 10 +++--- crates/unified/src/client/mod.rs | 3 -- crates/unified/src/client/particles/mod.rs | 2 +- crates/unified/src/client/parts.rs | 7 ++--- .../src/client/planet/incoming_planets.rs | 4 --- .../unified/src/client/planet/indicators.rs | 4 +-- crates/unified/src/client_plugins.rs | 1 - crates/unified/src/config/part.rs | 2 +- crates/unified/src/main.rs | 2 +- crates/unified/src/particle_editor/mod.rs | 31 +++++++++---------- crates/unified/src/particles.rs | 10 +++--- crates/unified/src/server/earth_parts.rs | 7 +---- crates/unified/src/server/gravity.rs | 2 +- crates/unified/src/server/part.rs | 2 +- crates/unified/src/server/player.rs | 10 ++---- crates/unified/src/server_plugins.rs | 5 +-- 17 files changed, 47 insertions(+), 75 deletions(-) diff --git a/crates/unified/src/attachment.rs b/crates/unified/src/attachment.rs index fe3656be8e6986cd35cb79ea48052048560a25ce..93307bbb4f03e37669c5b059e04a1d8c30ae5304 100644 --- a/crates/unified/src/attachment.rs +++ b/crates/unified/src/attachment.rs @@ -1,18 +1,16 @@ -use bevy::asset::processor::ErasedProcessor; use bevy::ecs::entity::MapEntities; use bevy::prelude::*; use serde::{Deserialize, Serialize}; -use std::ops::Deref; #[derive(Component, Serialize, Deserialize)] /// The primary component for a ship structure pub struct Ship; -#[derive(Component, Serialize, Deserialize)] +#[derive(Component, Serialize, Deserialize, MapEntities)] #[relationship_target(relationship = PartInShip, linked_spawn)] pub struct Parts(#[entities] Vec); -#[derive(Component, Serialize, Deserialize)] +#[derive(Component, Serialize, Deserialize, MapEntities)] #[relationship(relationship_target = Parts)] pub struct PartInShip(#[entities] Entity); @@ -22,29 +20,29 @@ pub struct Joint { pub id: JointId, pub transform: Transform, } -#[derive(Component, Serialize, Deserialize)] +#[derive(Component, Serialize, Deserialize, MapEntities)] pub struct Peer(#[entities] Entity); -#[derive(Component, Serialize, Deserialize)] +#[derive(Component, Serialize, Deserialize, MapEntities)] #[relationship(relationship_target = Joints)] pub struct JointOf(#[entities] pub Entity); -#[derive(Component, Serialize, Deserialize)] +#[derive(Component, Serialize, Deserialize, MapEntities)] #[relationship_target(relationship = JointOf)] pub struct Joints(#[entities] Vec); -#[derive(Component, Serialize, Deserialize)] +#[derive(Component, Serialize, Deserialize, MapEntities)] #[relationship(relationship_target = JointSnaps)] pub struct JointSnapOf(#[entities] pub Entity); -#[derive(Component, Serialize, Deserialize)] +#[derive(Component, Serialize, Deserialize, MapEntities)] #[relationship_target(relationship = JointSnapOf)] pub struct JointSnaps(#[entities] Vec); #[derive(Serialize, Deserialize)] pub struct JointId(pub String); impl JointId { - pub fn from_part_and_joint_id(part: String, joint: String) -> Self { + #[must_use] pub fn from_part_and_joint_id(part: String, joint: String) -> Self { Self(format!("{part}:{joint}")) } } -#[derive(Serialize, Deserialize, Component)] +#[derive(Serialize, Deserialize, Component, MapEntities)] pub struct JointSnapFor(#[entities] pub Entity); diff --git a/crates/unified/src/client/key_input.rs b/crates/unified/src/client/key_input.rs index 0a0e91771417efbcdad8774081559b15d177b823..8a866911af75108de5c39b4054d7b8e0aee4dd6b 100644 --- a/crates/unified/src/client/key_input.rs +++ b/crates/unified/src/client/key_input.rs @@ -1,13 +1,11 @@ use crate::attachment::{Joint, JointSnapFor}; -use crate::ecs::{Part, ThrustEvent}; +use crate::ecs::ThrustEvent; use bevy::color::palettes::css::{FUCHSIA, GREEN}; use bevy::dev_tools::picking_debug::DebugPickingMode; -use bevy::gizmos::AppGizmoBuilder; -use bevy::log::{debug, info}; use bevy::math::Vec3Swizzles; use bevy::prelude::{ - ChildOf, GizmoConfigGroup, Gizmos, GlobalTransform, IntoScheduleConfigs, Query, Reflect, - ResMut, Resource, Transform, With, + Gizmos, GlobalTransform, Query, + ResMut, Resource, With, }; use bevy::{ app::{App, Update}, @@ -73,7 +71,7 @@ fn draw_attachment_debug( joints: Query<&GlobalTransform, With>, snaps: Query<&GlobalTransform, With>, mut gizmos: Gizmos, - mut state: ResMut, + state: ResMut, ) { if !state.0 { return; diff --git a/crates/unified/src/client/mod.rs b/crates/unified/src/client/mod.rs index ee3eb746704e68d3753830dfbf9b4db2679c4124..91fbea2caa0c6fd51242bfb6dccca1155dc477f4 100644 --- a/crates/unified/src/client/mod.rs +++ b/crates/unified/src/client/mod.rs @@ -23,8 +23,6 @@ use bevy::core_pipeline::tonemapping::DebandDither; use bevy::dev_tools::picking_debug::DebugPickingMode; use bevy::prelude::*; use bevy::window::PrimaryWindow; -use bevy_egui::EguiPlugin; -use bevy_replicon::shared::server_entity_map::ServerEntityMap; use planet::incoming_planets::incoming_planets_plugin; pub struct ClientPlugin { @@ -65,7 +63,6 @@ pub struct Me; fn find_me( mut commands: Commands, q_clients: Query<(Entity, &Player, &Part), Added>, - entity_map: Res, asset_server: Res, ) { for (entity, player, part) in q_clients.iter() { diff --git a/crates/unified/src/client/particles/mod.rs b/crates/unified/src/client/particles/mod.rs index f947aceb7c63108c14fc53c2c8c9a898d393b091..07c5e736a7f085846d7508b9fded1dd92d2088f7 100644 --- a/crates/unified/src/client/particles/mod.rs +++ b/crates/unified/src/client/particles/mod.rs @@ -3,5 +3,5 @@ use bevy::app::{App, Plugin}; pub struct ParticlePlugin; impl Plugin for ParticlePlugin { - fn build(&self, app: &mut App) {} + fn build(&self, _app: &mut App) {} } diff --git a/crates/unified/src/client/parts.rs b/crates/unified/src/client/parts.rs index b9a883e788c1af25461961c8de3c439c21cca1d2..9ba845db05b4f40e7138a5f75b7235ec2e9c8a6b 100644 --- a/crates/unified/src/client/parts.rs +++ b/crates/unified/src/client/parts.rs @@ -3,7 +3,6 @@ use crate::ecs::{CursorWorldCoordinates, DragRequestEvent, Part}; use bevy::prelude::*; use bevy_rapier2d::dynamics::MassProperties; use bevy_rapier2d::prelude::{AdditionalMassProperties, ReadMassProperties, RigidBody}; -use std::fmt::Debug; pub fn parts_plugin(app: &mut App) { app.insert_resource(DragResource(None)); @@ -70,8 +69,8 @@ fn on_part_click( ) { if ev.button != PointerButton::Primary { return; - }; - let Ok(sprite) = sprites.get(ev.target()) else { + } + let Ok(_) = sprites.get(ev.target()) else { return; }; drag.0 = Some(ev.target()); @@ -85,7 +84,7 @@ fn on_part_release( ) { if ev.button != PointerButton::Primary { return; - }; + } if let Some(e) = drag.0 && let Some(c) = cursor.0 diff --git a/crates/unified/src/client/planet/incoming_planets.rs b/crates/unified/src/client/planet/incoming_planets.rs index 684c581a1c5663c26bd8a4e6fb190d01bd895ab1..52ca80f7a143a22740be009656a15ddffd433e88 100644 --- a/crates/unified/src/client/planet/incoming_planets.rs +++ b/crates/unified/src/client/planet/incoming_planets.rs @@ -10,8 +10,6 @@ fn handle_incoming_planets( mut commands: Commands, new_planets: Query<(Entity, &Planet), Added>, asset_server: Res, - 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)); @@ -34,8 +32,6 @@ fn handle_updated_planets( mut commands: Commands, updated_planets: Query<(Entity, &Planet), Changed>, asset_server: Res, - 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)); diff --git a/crates/unified/src/client/planet/indicators.rs b/crates/unified/src/client/planet/indicators.rs index 068bf76bd9a1577094550e573ce9c4f46a0d1462..405b8780e62383cfd069d6f08ad116b9fd6202f8 100644 --- a/crates/unified/src/client/planet/indicators.rs +++ b/crates/unified/src/client/planet/indicators.rs @@ -10,7 +10,7 @@ pub fn indicators_plugin(app: &mut App) { } #[derive(Component)] -struct PlanetIndicator(String); +struct PlanetIndicator; #[derive(Component)] struct HasIndicator(Entity); @@ -32,7 +32,7 @@ fn add_indicators( let indicator = commands .spawn(( ChildOf(me), - PlanetIndicator(planet_data.name.clone()), + PlanetIndicator, sprite, Transform::from_xyz(0.0, 0.0, 0.0), )) diff --git a/crates/unified/src/client_plugins.rs b/crates/unified/src/client_plugins.rs index 644ba1636b267716c3f69ba08aa888b07f32c446..66b978ac276ac277ae6a3d32e6c0f3c49aa0a10b 100644 --- a/crates/unified/src/client_plugins.rs +++ b/crates/unified/src/client_plugins.rs @@ -6,7 +6,6 @@ use bevy::app::{PluginGroup, PluginGroupBuilder}; use bevy::dev_tools::picking_debug::DebugPickingPlugin; use bevy::log::LogPlugin; use bevy::prelude::MeshPickingPlugin; -use bevy::sprite::prelude::SpritePickingPlugin; use bevy_rapier2d::prelude::RapierDebugRenderPlugin; use bevy_replicon::RepliconPlugins; diff --git a/crates/unified/src/config/part.rs b/crates/unified/src/config/part.rs index f47bfc5f31035e917842bec538965d34e20fd986..b01382ec8d6cf8649aa9ae5c30e39eedfef2c48b 100644 --- a/crates/unified/src/config/part.rs +++ b/crates/unified/src/config/part.rs @@ -1,6 +1,6 @@ use bevy::asset::Asset; use bevy::math::{Quat, Vec3}; -use bevy::prelude::{Component, Transform, TypePath}; +use bevy::prelude::{Transform, TypePath}; use serde::{Deserialize, Serialize}; #[derive(Deserialize, TypePath, Serialize, Clone, Debug, PartialEq, Asset)] diff --git a/crates/unified/src/main.rs b/crates/unified/src/main.rs index b2c74e10dd1941155c70fe1065a7c2a023339be1..e6efffae2c449eeffe6da4f18e223852a763a9fa 100644 --- a/crates/unified/src/main.rs +++ b/crates/unified/src/main.rs @@ -1,4 +1,4 @@ -use bevy::log::{Level, tracing_subscriber}; +use bevy::log::tracing_subscriber; use bevy::prelude::*; use clap::Parser; use starkingdoms::client_plugins::ClientPluginGroup; diff --git a/crates/unified/src/particle_editor/mod.rs b/crates/unified/src/particle_editor/mod.rs index 48cd00af26aba1f89ffd61aec77b619663c8bf46..423ebe4ae0ba6877aabba2e5d1261e861039556a 100644 --- a/crates/unified/src/particle_editor/mod.rs +++ b/crates/unified/src/particle_editor/mod.rs @@ -6,7 +6,6 @@ use bevy::prelude::*; use bevy_egui::{EguiContexts, EguiPlugin, EguiPrimaryContextPass, egui}; use bevy_rapier2d::plugin::{NoUserData, RapierPhysicsPlugin}; use ordered_float::OrderedFloat; -use ron::ser::PrettyConfig; use std::collections::BTreeMap; mod ecs; @@ -32,7 +31,7 @@ pub fn particle_editor_plugin(app: &mut App) { scale_curve: LifetimeCurve::new(&[(0.0f32, 5.0), (2.0, 0.0)]) .0 .iter() - .map(|u| (u.0.clone(), u.1.clone())) + .map(|u| (*u.0, *u.1)) .collect::>(), color_curve: vec![(OrderedFloat(0.0f32), [255, 0, 0, 255])], }); @@ -167,8 +166,7 @@ fn editor_ui( let new_v = ( OrderedFloat(editor_resource.add_scale_t), editor_resource.add_scale_v, - ) - .clone(); + ); editor_resource.scale_curve.push(new_v); } ui.end_row(); @@ -216,8 +214,7 @@ fn editor_ui( let new_v = ( OrderedFloat(editor_resource.add_color_t), editor_resource.add_color_v, - ) - .clone(); + ); editor_resource.color_curve.push(new_v); } ui.end_row(); @@ -228,10 +225,10 @@ fn editor_ui( ( *u, Color::Srgba(Srgba::new( - v[0] as f32 / 256.0, - v[1] as f32 / 256.0, - v[2] as f32 / 256.0, - v[3] as f32 / 256.0, + f32::from(v[0]) / 256.0, + f32::from(v[1]) / 256.0, + f32::from(v[2]) / 256.0, + f32::from(v[3]) / 256.0, )), ) }))); @@ -250,10 +247,10 @@ fn editor_ui( ( *u, Color::Srgba(Srgba::new( - v[0] as f32 / 256.0, - v[1] as f32 / 256.0, - v[2] as f32 / 256.0, - v[3] as f32 / 256.0, + f32::from(v[0]) / 256.0, + f32::from(v[1]) / 256.0, + f32::from(v[2]) / 256.0, + f32::from(v[3]) / 256.0, )), ) }))); @@ -269,14 +266,14 @@ fn editor_ui( .scale .0 .iter() - .map(|u| (u.0.clone(), u.1.clone())) + .map(|u| (*u.0, *u.1)) .collect::>(); editor_resource.color_curve = effect .color .0 .iter() .map(|u| { - (u.0.clone(), { + (*u.0, { let mut r = [0u8; 4]; let srgba: Srgba = (*u.1).into(); r[0] = (srgba.red * 256.0).floor() as u8; @@ -291,7 +288,7 @@ fn editor_ui( Err(e) => { editor_resource.status = e.to_string(); } - }; + } } }); ui.text_edit_multiline(&mut editor_resource.ser_field); diff --git a/crates/unified/src/particles.rs b/crates/unified/src/particles.rs index ceeb190406b738d83f67f7451e2ce0656dc2b4e3..3bd061ae0fc6f985ee0a26d69ea4d2d54a08d8a4 100644 --- a/crates/unified/src/particles.rs +++ b/crates/unified/src/particles.rs @@ -1,7 +1,7 @@ use bevy::color::{Color, LinearRgba}; use bevy::math::Vec2; use bevy::prelude::Component; -use ordered_float::{FloatCore, OrderedFloat}; +use ordered_float::OrderedFloat; use rand::Rng; use serde::{Deserialize, Serialize}; use std::collections::BTreeMap; @@ -42,13 +42,13 @@ impl LifetimeCurve

{ P: 'a, { Self(BTreeMap::from_iter( - points.into_iter().map(|u| (OrderedFloat(u.0), u.1.clone())), + points.into_iter().map(|u| (OrderedFloat(u.0), u.1)), )) } /// Sample for the value at T. Returns None if the curve has no points, or if T is outside /// the domain of the points specified. - pub fn sample(&self, at: f32) -> Option

{ + #[must_use] pub fn sample(&self, at: f32) -> Option

{ if self.0.is_empty() { return None; } @@ -82,7 +82,7 @@ impl LifetimeCurve

{ /// Given an input time value, use the ends of the spline's time to clamp /// the input value. - pub fn clamp_time(&self, time: f32) -> Option { + #[must_use] pub fn clamp_time(&self, time: f32) -> Option { let Some(first) = self.0.iter().nth(0) else { return None; }; @@ -128,7 +128,7 @@ pub struct RandUsize { } impl RandUsize { pub fn sample(&self, rng: &mut impl Rng) -> usize { - let lower_bound = self.value.checked_sub(self.randomness).unwrap_or(0); + let lower_bound = self.value.saturating_sub(self.randomness); rng.random_range(lower_bound..self.value + self.randomness) } } diff --git a/crates/unified/src/server/earth_parts.rs b/crates/unified/src/server/earth_parts.rs index c3e6b028ef607212c17182bd7a602b6dda256545..f7157bed3ead581b7a0f0dd144115eefda21229b 100644 --- a/crates/unified/src/server/earth_parts.rs +++ b/crates/unified/src/server/earth_parts.rs @@ -1,15 +1,10 @@ use crate::config::planet::Planet; -use crate::ecs::{Part, PartBundle}; use crate::server::part::SpawnPartRequest; use crate::server::world_config::WorldConfigResource; use bevy::app::App; -use bevy::math::Vec2; use bevy::prelude::*; use bevy::prelude::{Commands, Query, Res, Transform}; use bevy::time::Time; -use bevy_rapier2d::dynamics::{AdditionalMassProperties, MassProperties}; -use bevy_rapier2d::geometry::Collider; -use bevy_replicon::prelude::Replicated; #[derive(Resource, Default)] struct PartTimerRes { @@ -21,7 +16,7 @@ pub fn spawn_parts_plugin(app: &mut App) { .add_systems(Update, spawn_parts_on_earth); } -pub fn spawn_parts_on_earth( +fn spawn_parts_on_earth( mut commands: Commands, world_config: Res, planets: Query<(&Transform, &Planet)>, diff --git a/crates/unified/src/server/gravity.rs b/crates/unified/src/server/gravity.rs index 4553c653df9d5d2d0d9c27986dd16269622fdfee..6b7cfc892edf1179c7f4117449e75d4c890777de 100644 --- a/crates/unified/src/server/gravity.rs +++ b/crates/unified/src/server/gravity.rs @@ -10,7 +10,7 @@ pub fn newtonian_gravity_plugin(app: &mut App) { } fn update_gravity( - mut part_query: Query<(&Transform, &ReadMassProperties, &mut ExternalForce), (With)>, + mut part_query: Query<(&Transform, &ReadMassProperties, &mut ExternalForce), With>, planet_query: Query<(&Transform, &ReadMassProperties), With>, world_config: Res, ) { diff --git a/crates/unified/src/server/part.rs b/crates/unified/src/server/part.rs index cf8bd15981d3748148cb4a6d61c1e329783afd91..274552578d2a57d2d560bf43f36f135a866558d3 100644 --- a/crates/unified/src/server/part.rs +++ b/crates/unified/src/server/part.rs @@ -2,7 +2,7 @@ use crate::config::world::PartConfig; use bevy::prelude::Component; use bevy::prelude::*; -pub fn part_management_plugin(app: &mut App) {} +pub fn part_management_plugin(_app: &mut App) {} #[derive(Component)] pub struct SpawnPartRequest(pub Handle); diff --git a/crates/unified/src/server/player.rs b/crates/unified/src/server/player.rs index a3858bf3893c9506dd0d8d1b3cfed8b2e5211afb..3559d79536ed004bb90bf8d4cfe349265dadfdaf 100644 --- a/crates/unified/src/server/player.rs +++ b/crates/unified/src/server/player.rs @@ -2,16 +2,14 @@ use std::f32::consts::PI; use crate::config::planet::Planet; use crate::ecs::{ - DragRequestEvent, Part, PartBundle, Particles, Player, PlayerThrust, ThrustEvent, + DragRequestEvent, Part, Player, PlayerThrust, ThrustEvent, }; use crate::server::part::SpawnPartRequest; use crate::server::world_config::WorldConfigResource; use crate::server::{ConnectedGameEntity, ConnectedNetworkEntity}; use bevy::prelude::*; -use bevy_rapier2d::prelude::{ - AdditionalMassProperties, Collider, ExternalForce, ExternalImpulse, MassProperties, -}; -use bevy_replicon::prelude::{FromClient, Replicated}; +use bevy_rapier2d::prelude::ExternalForce; +use bevy_replicon::prelude::FromClient; pub fn player_management_plugin(app: &mut App) { app.add_systems(Update, (handle_new_players, player_thrust, dragging)); @@ -34,8 +32,6 @@ fn handle_new_players( world_config: Res, planets: Query<(&Transform, &Planet)>, asset_server: Res, - gt: Query<&GlobalTransform>, - child_of: Query<&ChildOf>, ) { let Some(wc) = &world_config.config else { return; diff --git a/crates/unified/src/server_plugins.rs b/crates/unified/src/server_plugins.rs index ebc17a7b3ee633e5a5bb0a47c5f52e3f7dda6396..6a4629d06999abe11ce6964082a92596df36dafc 100644 --- a/crates/unified/src/server_plugins.rs +++ b/crates/unified/src/server_plugins.rs @@ -4,15 +4,12 @@ use crate::config::world::GlobalWorldConfig; use aeronet_replicon::server::AeronetRepliconServerPlugin; use aeronet_websocket::server::WebSocketServerPlugin; use bevy::app::{ - App, PluginGroup, PluginGroupBuilder, ScheduleRunnerPlugin, Startup, TaskPoolPlugin, + PluginGroup, PluginGroupBuilder, ScheduleRunnerPlugin, TaskPoolPlugin, }; use bevy::asset::AssetPlugin; use bevy::diagnostic::FrameCountPlugin; -use bevy::math::Vec2; -use bevy::prelude::Query; use bevy::time::TimePlugin; use bevy_common_assets::toml::TomlAssetPlugin; -use bevy_rapier2d::plugin::{NoUserData, RapierConfiguration, RapierPhysicsPlugin}; use bevy_replicon::RepliconPlugins; use std::net::SocketAddr; use std::time::Duration;