From 8300b2f1853e026a2c3d5d1aa40a185341deba47 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sun, 13 Oct 2024 22:21:44 +0200 Subject: fix compile for new rust nightly --- server/src/entity/conveyor.rs | 13 +++++++------ server/src/entity/item_portal.rs | 13 +++++++------ 2 files changed, 14 insertions(+), 12 deletions(-) (limited to 'server/src/entity') diff --git a/server/src/entity/conveyor.rs b/server/src/entity/conveyor.rs index e8ff34d7..6177ba9c 100644 --- a/server/src/entity/conveyor.rs +++ b/server/src/entity/conveyor.rs @@ -17,7 +17,7 @@ */ use super::{Entity, EntityContext}; use crate::interaction::interact; -use anyhow::{anyhow, Result}; +use anyhow::{anyhow, bail, Result}; use hurrycurry_protocol::{glam::IVec2, ItemIndex, ItemLocation}; #[derive(Debug, Clone)] @@ -62,11 +62,12 @@ impl Entity for Conveyor { } self.cooldown = 0.; - let [from, to] = c - .game - .tiles - .get_many_mut([&self.from, &self.to]) - .ok_or(anyhow!("conveyor does ends in itself"))?; + if self.from == self.to { + bail!("conveyor does ends in itself") + } + let [Some(from), Some(to)] = c.game.tiles.get_many_mut([&self.from, &self.to]) else { + bail!("at least one conveyor end not on map"); + }; interact( &c.game.data, diff --git a/server/src/entity/item_portal.rs b/server/src/entity/item_portal.rs index 8eda7a3c..3ea33fa6 100644 --- a/server/src/entity/item_portal.rs +++ b/server/src/entity/item_portal.rs @@ -17,7 +17,7 @@ */ use super::{Entity, EntityContext}; use crate::interaction::interact; -use anyhow::{anyhow, Result}; +use anyhow::{bail, Result}; use hurrycurry_protocol::{glam::IVec2, ItemLocation}; #[derive(Debug, Default, Clone)] @@ -28,11 +28,12 @@ pub struct ItemPortal { impl Entity for ItemPortal { fn tick(&mut self, c: EntityContext) -> Result<()> { - let [from, to] = c - .game - .tiles - .get_many_mut([&self.from, &self.to]) - .ok_or(anyhow!("conveyor does ends in itself"))?; + if self.from == self.to { + bail!("item portal ends in itself") + } + let [Some(from), Some(to)] = c.game.tiles.get_many_mut([&self.from, &self.to]) else { + bail!("at least one item portal end not on map"); + }; if from.item.is_some() { interact( -- cgit v1.2.3-70-g09d2