From 619c2b27f26e596c8bffc4ffb5b5b94e5bbe72da Mon Sep 17 00:00:00 2001 From: metamuffin Date: Wed, 4 Sep 2024 20:41:39 +0200 Subject: precompute recipe speed --- server/src/data/demands.rs | 4 ++-- server/src/data/mod.rs | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'server/src/data') diff --git a/server/src/data/demands.rs b/server/src/data/demands.rs index 3f4b839d..ecfad402 100644 --- a/server/src/data/demands.rs +++ b/server/src/data/demands.rs @@ -57,8 +57,8 @@ pub fn generate_demands( }; let base_cost = match r { - Recipe::Passive { duration, .. } => 2. + duration * 0.1, - Recipe::Active { duration, .. } => 2. + duration, + Recipe::Passive { speed, .. } => 2. + (1. / speed) * 0.1, + Recipe::Active { speed, .. } => 2. + (1. / speed), Recipe::Instant { .. } => 1., }; diff --git a/server/src/data/mod.rs b/server/src/data/mod.rs index 53414178..12d4f23e 100644 --- a/server/src/data/mod.rs +++ b/server/src/data/mod.rs @@ -181,17 +181,17 @@ pub fn build_data( match r.action { RecipeDeclAction::Never => {} RecipeDeclAction::Passive => recipes.push(Recipe::Passive { - duration: r.duration.ok_or(anyhow!("duration for passive missing"))?, + speed: 1. / r.duration.ok_or(anyhow!("duration for passive missing"))?, warn: r.warn, tile, - revert_duration: r.revert_duration, + revert_speed: r.revert_duration.map(|d| 1. / d), input: inputs .next() .ok_or(anyhow!("passive recipe without input"))?, output: outputs.next(), }), RecipeDeclAction::Active => recipes.push(Recipe::Active { - duration: r.duration.ok_or(anyhow!("duration for active missing"))?, + speed: 1. / r.duration.ok_or(anyhow!("duration for active missing"))?, tile, input: inputs .next() -- cgit v1.2.3-70-g09d2