From cb12db536334ba53d596110ebd26301cdc3b636d Mon Sep 17 00:00:00 2001 From: core Date: Thu, 3 Jul 2025 21:46:37 -0400 Subject: [PATCH] chore(lint): pass clippy & enable extra lints --- crates/unified/src/client/mod.rs | 3 --- crates/unified/src/client/net.rs | 3 +-- crates/unified/src/ecs.rs | 1 + crates/unified/src/lib.rs | 10 ++++++++++ crates/unified/src/server/gravity.rs | 3 +-- crates/unified/src/server/mod.rs | 1 - crates/unified/src/server/player.rs | 13 ++++++------- crates/unified/src/server/world_config.rs | 1 - crates/xtask/src/main.rs | 10 ++++++++++ 9 files changed, 29 insertions(+), 16 deletions(-) diff --git a/crates/unified/src/client/mod.rs b/crates/unified/src/client/mod.rs index a282e98c78ed8b4db679953aaaa1908ab658ef6b..c0cef611b08924a9f16d5c6ca45ed3018a45958c 100644 --- a/crates/unified/src/client/mod.rs +++ b/crates/unified/src/client/mod.rs @@ -13,15 +13,12 @@ use crate::ecs::{CursorWorldCoordinates, MainCamera, Player}; use bevy::core_pipeline::fxaa::Fxaa; use bevy::prelude::*; use bevy::window::PrimaryWindow; -use bevy_replicon::prelude::RepliconChannels; use bevy_replicon::shared::server_entity_map::ServerEntityMap; -use web_time::SystemTime; pub struct ClientPlugin { pub server: String } impl Plugin for ClientPlugin { - #[allow(clippy::clone_on_copy)] fn build(&self, app: &mut App) { let server = self.server.clone(); app.insert_resource(CursorWorldCoordinates(None)) diff --git a/crates/unified/src/client/net.rs b/crates/unified/src/client/net.rs index 646f8f9a02f7e17df8d262adb8624e4c8e9098e6..96a240116c2441ebd20dc8c9ca10540bb91d0a92 100644 --- a/crates/unified/src/client/net.rs +++ b/crates/unified/src/client/net.rs @@ -1,7 +1,6 @@ use aeronet::io::{Session, SessionEndpoint}; use aeronet::io::connection::Disconnected; use aeronet_replicon::client::AeronetRepliconClient; -use aeronet_transport::TransportConfig; use bevy::prelude::*; pub fn on_connecting(trigger: Trigger, names: Query<&Name>, mut commands: Commands) { @@ -11,7 +10,7 @@ pub fn on_connecting(trigger: Trigger, names: Query<&Nam commands.entity(entity).insert(AeronetRepliconClient); } -pub fn on_connected(trigger: Trigger, names: Query<&Name>, mut commands: Commands) { +pub fn on_connected(trigger: Trigger, names: Query<&Name>) { let entity = trigger.target(); let name = names.get(entity).unwrap(); info!("{name} is connected"); diff --git a/crates/unified/src/ecs.rs b/crates/unified/src/ecs.rs index 77a0d2095445287197ef1c8c0df5658ab72f6005..bb6853641310fa7d3d3a978e4335ac3de1ff1b57 100644 --- a/crates/unified/src/ecs.rs +++ b/crates/unified/src/ecs.rs @@ -54,6 +54,7 @@ pub struct Player { } #[derive(Component, Default, Serialize, Deserialize, Debug)] +#[allow(clippy::struct_excessive_bools, reason = "It's not a state machine")] pub struct PlayerThrust { pub up: bool, pub down: bool, diff --git a/crates/unified/src/lib.rs b/crates/unified/src/lib.rs index 1a0dbb85700949cd9cee983feefebd220b831c25..78c73e1200ffad7b3bc8df4112fe4936c1a07f5c 100644 --- a/crates/unified/src/lib.rs +++ b/crates/unified/src/lib.rs @@ -1,3 +1,13 @@ +#![warn(clippy::pedantic)] // Be annoying, and disable specific irritating lints if needed +#![deny(clippy::allow_attributes_without_reason, clippy::assertions_on_result_states)] +#![warn(clippy::if_then_some_else_none)] + + +#![allow(clippy::type_complexity, reason = "Bevy makes this a nightmare")] +#![allow(clippy::needless_pass_by_value, reason = "Bevy makes this a nightmare")] +#![allow(clippy::cast_precision_loss, reason = "We cast ints to floats a lot")] +#![allow(clippy::missing_panics_doc, reason = "Gamedev! We panic a lot")] + //! Primary entrypoint for the lib... mostly useful for wasm #[cfg(target_arch = "wasm32")] pub mod wasm_entrypoint; diff --git a/crates/unified/src/server/gravity.rs b/crates/unified/src/server/gravity.rs index 13b08f484ba1397516e3feaf5931ee42535983e5..7424bc0dfc3b2fe296a35b3f6468e670d7eec7a2 100644 --- a/crates/unified/src/server/gravity.rs +++ b/crates/unified/src/server/gravity.rs @@ -15,7 +15,6 @@ fn update_gravity( &Transform, &ReadMassProperties, &mut ExternalForce, - &mut ExternalImpulse, ), With, >, @@ -26,7 +25,7 @@ fn update_gravity( return; }; - for (part_transform, part_mass, mut forces, impulses) in &mut part_query { + for (part_transform, part_mass, mut forces) in &mut part_query { let part_mass = part_mass.mass; let part_translation = part_transform.translation; diff --git a/crates/unified/src/server/mod.rs b/crates/unified/src/server/mod.rs index 878f7434be196b889f6ac1011280cf2fd622d8de..3d830a4b0c3fcd0c229638057d51580c95f88e55 100644 --- a/crates/unified/src/server/mod.rs +++ b/crates/unified/src/server/mod.rs @@ -9,7 +9,6 @@ use aeronet::io::server::Server; use aeronet::io::Session; use aeronet_replicon::server::AeronetRepliconServer; use aeronet_websocket::server::WebSocketServer; -use bevy::asset::AssetContainer; use bevy::prelude::*; use bevy_replicon::prelude::Replicated; use crate::server::gravity::newtonian_gravity_plugin; diff --git a/crates/unified/src/server/player.rs b/crates/unified/src/server/player.rs index 5282b4f87e2cf2687c9bd7dd3119c538473e510a..65c5096fe337f66cd2cb319dc37c4bb0e226a627 100644 --- a/crates/unified/src/server/player.rs +++ b/crates/unified/src/server/player.rs @@ -7,7 +7,7 @@ use bevy::prelude::*; use bevy_rapier2d::prelude::{ AdditionalMassProperties, Collider, ExternalForce, ExternalImpulse, MassProperties, }; -use bevy_replicon::prelude::{ConnectedClient, FromClient, Replicated}; +use bevy_replicon::prelude::{FromClient, Replicated}; use crate::server::{ConnectedGameEntity, ConnectedNetworkEntity}; pub fn player_management_plugin(app: &mut App) { @@ -81,11 +81,10 @@ fn handle_new_players( fn player_thrust( mut players: Query<(&Transform, &mut ExternalForce, &mut PlayerThrust)>, - mut clients: Query<&ConnectedNetworkEntity>, + clients: Query<&ConnectedNetworkEntity>, mut thrust_event: EventReader>, world_config: Res, ) { - use ThrustEvent::*; for FromClient { client_entity, event } in thrust_event.read() { let ConnectedNetworkEntity { game_entity } = clients.get(*client_entity).unwrap(); @@ -93,10 +92,10 @@ fn player_thrust( continue; }; match *event { - Up(on) => thrust.up = on, - Down(on) => thrust.down = on, - Left(on) => thrust.left = on, - Right(on) => thrust.right = on, + ThrustEvent::Up(on) => thrust.up = on, + ThrustEvent::Down(on) => thrust.down = on, + ThrustEvent::Left(on) => thrust.left = on, + ThrustEvent::Right(on) => thrust.right = on, } } for (transform, mut force, thrust) in &mut players { diff --git a/crates/unified/src/server/world_config.rs b/crates/unified/src/server/world_config.rs index 37f2a7e84851128ca2cfab5189c37400da70c31a..41ddd6c099284a24316abdca59abc5a9b54f86c1 100644 --- a/crates/unified/src/server/world_config.rs +++ b/crates/unified/src/server/world_config.rs @@ -19,7 +19,6 @@ fn start_loading_planets(assets: Res, mut planets: ResMut>, assets: ResMut>, mut resource: ResMut, diff --git a/crates/xtask/src/main.rs b/crates/xtask/src/main.rs index e03f65d15ec83c2dab32d68b3b2684493be51cc2..8f4fb460e11921f1752c75400bc015bddd874f11 100644 --- a/crates/xtask/src/main.rs +++ b/crates/xtask/src/main.rs @@ -250,6 +250,16 @@ fn main() { exec("wasm-bindgen", format!("--target web --typescript --out-dir {} {}", unified.join("web/").display(), wasm_file.display()).as_str()); println!("{} {} {}", "-->".dimmed(), "✓ done".green(), format!("{}ms", start.elapsed().as_millis()).dimmed()); }, + "unified:web:release" => { + let start = Instant::now(); + let target = workspace_dir().join("target/"); + let unified = workspace_dir().join("crates/unified/"); + exec("cargo", "build --package starkingdoms --lib --target wasm32-unknown-unknown -F wasm --no-default-features --profile wasm-release"); + let wasm_file = target.join("wasm32-unknown-unknown/wasm-release/starkingdoms.wasm"); + exec("wasm-bindgen", format!("--target web --typescript --out-dir {} {}", unified.join("web/").display(), wasm_file.display()).as_str()); + exec("wasm-opt", format!("-Oz -d {} -o {}", unified.join("web/starkingdoms_bg.wasm").display(), unified.join("web/starkingdoms_bg.wasm").display()).as_str()); + println!("{} {} {}", "-->".dimmed(), "✓ done".green(), format!("{}ms", start.elapsed().as_millis()).dimmed()); + }, _ => panic!("unsupported command"), } }