summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
Diffstat (limited to 'server')
-rw-r--r--server/client-lib/src/lib.rs32
-rw-r--r--server/editor/src/main.rs13
-rw-r--r--server/src/commands.rs2
-rw-r--r--server/src/entity/pedestrians.rs2
-rw-r--r--server/src/entity/player_portal.rs2
-rw-r--r--server/src/entity/tram.rs2
-rw-r--r--server/src/server.rs21
-rw-r--r--server/src/state.rs2
8 files changed, 36 insertions, 40 deletions
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