diff options
-rw-r--r-- | pixel-client/src/game.rs | 38 | ||||
-rw-r--r-- | pixel-client/src/menu/ingame.rs | 2 | ||||
-rw-r--r-- | pixel-client/src/menu/main.rs | 2 | ||||
-rw-r--r-- | pixel-client/src/menu/mod.rs | 4 | ||||
-rw-r--r-- | pixel-client/src/menu/settings.rs | 2 | ||||
-rw-r--r-- | pixel-client/tools/src/lib.rs | 1 | ||||
-rw-r--r-- | server/client-lib/src/lib.rs | 32 | ||||
-rw-r--r-- | server/editor/src/main.rs | 13 | ||||
-rw-r--r-- | server/src/commands.rs | 2 | ||||
-rw-r--r-- | server/src/entity/pedestrians.rs | 2 | ||||
-rw-r--r-- | server/src/entity/player_portal.rs | 2 | ||||
-rw-r--r-- | server/src/entity/tram.rs | 2 | ||||
-rw-r--r-- | server/src/server.rs | 21 | ||||
-rw-r--r-- | server/src/state.rs | 2 |
14 files changed, 57 insertions, 68 deletions
diff --git a/pixel-client/src/game.rs b/pixel-client/src/game.rs index 32760364..0c5661c2 100644 --- a/pixel-client/src/game.rs +++ b/pixel-client/src/game.rs @@ -212,11 +212,9 @@ impl Game { }); for player in self.players.values_mut() { - for item in &mut player.items { - if let Some(item) = item { - item.parent_position = player.movement.position; - item.tick(1., dt); - } + for item in player.items.iter_mut().flatten() { + item.parent_position = player.movement.position; + item.tick(1., dt); } } for tile in self.tiles.values_mut() { @@ -360,10 +358,8 @@ impl Game { }) } PacketC::ClearProgress { item } => { - if let Some(slot) = self.get_item(item) { - if let Some(item) = slot { - item.active = None; - } + if let Some(Some(item)) = self.get_item(item) { + item.active = None; } } PacketC::SetProgress { @@ -373,16 +369,14 @@ impl Game { player, warn, } => { - if let Some(slot) = self.get_item(item) { - if let Some(item) = slot { - item.active = Some(Involvement { - position, - speed, - player, - warn, - recipe: RecipeIndex(0), - }); - } + if let Some(Some(item)) = self.get_item(item) { + item.active = Some(Involvement { + position, + speed, + player, + warn, + recipe: RecipeIndex(0), + }); } } PacketC::ServerMessage { .. } => { @@ -517,10 +511,8 @@ impl Player { _ => (), } } - for item in &self.items { - if let Some(item) = item { - item.draw(ctx, item_sprites) - } + for item in self.items.iter().flatten() { + item.draw(ctx, item_sprites) } } } diff --git a/pixel-client/src/menu/ingame.rs b/pixel-client/src/menu/ingame.rs index 991faad6..66c77bce 100644 --- a/pixel-client/src/menu/ingame.rs +++ b/pixel-client/src/menu/ingame.rs @@ -2,8 +2,8 @@ use super::main::MainMenu; use crate::{ config::Config, game::Game, - strings::tr, render::{sprite::SpriteDraw, AtlasLayout, Renderer}, + strings::tr, ui::UiState, State, }; diff --git a/pixel-client/src/menu/main.rs b/pixel-client/src/menu/main.rs index 38dcaaea..7320ff3b 100644 --- a/pixel-client/src/menu/main.rs +++ b/pixel-client/src/menu/main.rs @@ -21,8 +21,8 @@ use super::{ use crate::{ config::Config, game::Game, - strings::tr, render::{sprite::SpriteDraw, AtlasLayout, Renderer}, + strings::tr, ui::UiState, State, }; diff --git a/pixel-client/src/menu/mod.rs b/pixel-client/src/menu/mod.rs index 167d38e0..4e41fc7b 100644 --- a/pixel-client/src/menu/mod.rs +++ b/pixel-client/src/menu/mod.rs @@ -15,8 +15,8 @@ along with this program. If not, see <https://www.gnu.org/licenses/>. */ -pub mod main; pub mod background; -pub mod settings; pub mod credits; pub mod ingame; +pub mod main; +pub mod settings; diff --git a/pixel-client/src/menu/settings.rs b/pixel-client/src/menu/settings.rs index 6f4a20fe..91d43025 100644 --- a/pixel-client/src/menu/settings.rs +++ b/pixel-client/src/menu/settings.rs @@ -15,7 +15,7 @@ along with this program. If not, see <https://www.gnu.org/licenses/>. */ -use crate::{config::Config, strings::tr, render::sprite::SpriteDraw, ui::Ui}; +use crate::{config::Config, render::sprite::SpriteDraw, strings::tr, ui::Ui}; use hurrycurry_protocol::glam::Vec2; use log::warn; diff --git a/pixel-client/tools/src/lib.rs b/pixel-client/tools/src/lib.rs index e69de29b..8b137891 100644 --- a/pixel-client/tools/src/lib.rs +++ b/pixel-client/tools/src/lib.rs @@ -0,0 +1 @@ + diff --git a/server/client-lib/src/lib.rs b/server/client-lib/src/lib.rs index 57554aac..4487596c 100644 --- a/server/client-lib/src/lib.rs +++ b/server/client-lib/src/lib.rs @@ -133,10 +133,8 @@ impl Game { } } PacketC::ClearProgress { item } => { - if let Some(slot) = self.get_item(item) { - if let Some(item) = slot { - item.active = None; - } + if let Some(Some(item)) = self.get_item(item) { + item.active = None; } } PacketC::SetProgress { @@ -146,16 +144,14 @@ impl Game { speed, warn, } => { - if let Some(slot) = self.get_item(item) { - if let Some(item) = slot { - item.active = Some(Involvement { - player, - speed, - warn, - position, - recipe: RecipeIndex(0), - }); - } + if let Some(Some(item)) = self.get_item(item) { + item.active = Some(Involvement { + player, + speed, + warn, + position, + recipe: RecipeIndex(0), + }); } } PacketC::UpdateMap { @@ -216,11 +212,9 @@ impl Game { } for player in self.players.values_mut() { - for item in &mut player.items { - if let Some(item) = item { - if let Some(active) = &mut item.active { - active.position += active.speed; - } + for item in player.items.iter_mut().flatten() { + if let Some(active) = &mut item.active { + active.position += active.speed; } } } diff --git a/server/editor/src/main.rs b/server/editor/src/main.rs index 54d3b065..4cba9e4a 100644 --- a/server/editor/src/main.rs +++ b/server/editor/src/main.rs @@ -5,7 +5,10 @@ use clap::Parser; use futures_util::{SinkExt, StreamExt}; use hurrycurry_client_lib::network::sync::Network; use hurrycurry_protocol::{ - glam::{ivec2, IVec2, Vec2}, movement::MovementBase, Character, Gamedata, Hand, Message, PacketC, PacketS, PlayerClass, PlayerID, TileIndex, VERSION + Character, Gamedata, Hand, Message, PacketC, PacketS, PlayerClass, PlayerID, TileIndex, + VERSION, + glam::{IVec2, Vec2, ivec2}, + movement::MovementBase, }; use log::{debug, info, warn}; use save::{export_state, import_state}; @@ -293,7 +296,7 @@ impl State { let t = t.strip_prefix("/").unwrap_or(&t); self.handle_command( Command::try_parse_from( - shlex::split(&t) + shlex::split(t) .ok_or(anyhow!("invalid quoting"))? .into_iter(), ) @@ -350,10 +353,10 @@ impl State { } pub fn save(&mut self, name: &str) -> Result<()> { - let e = export_state(&self); + let e = export_state(self); File::create(format!("data/maps/{name}.yaml"))?.write_all(e.as_bytes())?; self.out.push(PacketC::ServerMessage { - message: Message::Text(format!("Map saved.")), + message: Message::Text("Map saved.".to_string()), error: false, }); self.mapname = name.to_owned(); @@ -364,7 +367,7 @@ impl State { self.clear(); import_state(self, &e)?; self.out.push(PacketC::ServerMessage { - message: Message::Text(format!("Map loaded.")), + message: Message::Text("Map loaded.".to_string()), error: false, }); self.mapname = name.to_owned(); diff --git a/server/src/commands.rs b/server/src/commands.rs index a0702a05..bf392708 100644 --- a/server/src/commands.rs +++ b/server/src/commands.rs @@ -258,7 +258,7 @@ impl Server { if let Some(board) = self.scoreboard.get(mapname) { if text { - let mut o = format!("Scoreboard for {}:\n", mapname); + let mut o = format!("Scoreboard for {mapname}:\n"); for (i, entry) in board.best.iter().take(5).enumerate() { writeln!( o, diff --git a/server/src/entity/pedestrians.rs b/server/src/entity/pedestrians.rs index cedb9e46..2ddbb920 100644 --- a/server/src/entity/pedestrians.rs +++ b/server/src/entity/pedestrians.rs @@ -47,7 +47,7 @@ impl Entity for Pedestrians { }, class: PlayerClass::Customer, id: Some(id), - position: self.points.get(0).copied(), + position: self.points.first().copied(), }); self.players.insert(id, 0); self.cooldown += self.spawn_delay_distr.sample(&mut rng()).max(0.1); diff --git a/server/src/entity/player_portal.rs b/server/src/entity/player_portal.rs index c0faf767..96168faa 100644 --- a/server/src/entity/player_portal.rs +++ b/server/src/entity/player_portal.rs @@ -15,7 +15,7 @@ along with this program. If not, see <https://www.gnu.org/licenses/>. */ -use super::{EntityContext, Entity}; +use super::{Entity, EntityContext}; use anyhow::{anyhow, Result}; use hurrycurry_protocol::{glam::Vec2, PacketC}; diff --git a/server/src/entity/tram.rs b/server/src/entity/tram.rs index d1d1effa..06e151d7 100644 --- a/server/src/entity/tram.rs +++ b/server/src/entity/tram.rs @@ -43,7 +43,7 @@ impl Entity for Tram { character: self.character, class: PlayerClass::Tram, id: Some(id), - position: self.points.get(0).copied(), + position: self.points.first().copied(), }); self.ids.push(id); } diff --git a/server/src/server.rs b/server/src/server.rs index 95cf182c..368a79a9 100644 --- a/server/src/server.rs +++ b/server/src/server.rs @@ -69,6 +69,7 @@ pub trait GameServerExt { timer: Option<Duration>, packet_out: &mut VecDeque<PacketC>, ); + #[allow(clippy::too_many_arguments)] fn join_player( &mut self, id: PlayerID, @@ -417,17 +418,15 @@ impl Server { self.game.players_spatial_index.remove_entry(player); // TODO if holding two, one is destroyed - for item in p.items { - if let Some(item) = item { - let pos = p.movement.position.floor().as_ivec2(); - if let Some(tile) = self.game.tiles.get_mut(&pos) { - if tile.item.is_none() { - self.packet_out.push_back(PacketC::SetItem { - location: ItemLocation::Tile(pos), - item: Some(item.kind), - }); - tile.item = Some(item); - } + for item in p.items.into_iter().flatten() { + let pos = p.movement.position.floor().as_ivec2(); + if let Some(tile) = self.game.tiles.get_mut(&pos) { + if tile.item.is_none() { + self.packet_out.push_back(PacketC::SetItem { + location: ItemLocation::Tile(pos), + item: Some(item.kind), + }); + tile.item = Some(item); } } } diff --git a/server/src/state.rs b/server/src/state.rs index a509a3bd..bd97266e 100644 --- a/server/src/state.rs +++ b/server/src/state.rs @@ -24,7 +24,7 @@ impl Server { pub async fn tick_outer(&mut self, dt: f32) -> anyhow::Result<()> { let should_pause = self.connections.iter().all(|c| c.1 .1); if should_pause != self.paused { - info!("Game paused: {}", should_pause); + info!("Game paused: {should_pause}"); self.paused = should_pause; for p in self.game.players.keys() { self.packet_out |