aboutsummaryrefslogtreecommitdiff
path: root/server/data
diff options
context:
space:
mode:
Diffstat (limited to 'server/data')
-rw-r--r--server/data/src/book/recipe_diagram.rs5
-rw-r--r--server/data/src/filter_demands.rs2
-rw-r--r--server/data/src/lib.rs9
-rw-r--r--server/data/src/registry.rs18
4 files changed, 15 insertions, 19 deletions
diff --git a/server/data/src/book/recipe_diagram.rs b/server/data/src/book/recipe_diagram.rs
index 6ec9965f..b6639657 100644
--- a/server/data/src/book/recipe_diagram.rs
+++ b/server/data/src/book/recipe_diagram.rs
@@ -75,7 +75,7 @@ pub fn recipe_diagram(
.collect(),
index: ri,
};
- need.extend(gr.inputs.iter().filter(|i| !have.contains(&i)));
+ need.extend(gr.inputs.iter().filter(|i| !have.contains(i)));
have.extend(&gr.outputs);
recipes.insert(gr);
found_recipe = true;
@@ -104,7 +104,8 @@ pub fn recipe_diagram(
let index = diag.nodes.len();
let recipe = data.recipe(r.index);
- if matches!(recipe, Recipe::Instant { .. }) && r.inputs.len() >= 1 && r.outputs.len() >= 1 {
+ if matches!(recipe, Recipe::Instant { .. }) && !r.inputs.is_empty() && !r.outputs.is_empty()
+ {
for i in r.inputs {
diag.edges.push(DiagramEdge {
src: item_index[&i],
diff --git a/server/data/src/filter_demands.rs b/server/data/src/filter_demands.rs
index 99246252..406c6b09 100644
--- a/server/data/src/filter_demands.rs
+++ b/server/data/src/filter_demands.rs
@@ -32,7 +32,7 @@ pub fn filter_demands_and_recipes(
);
// Remove tile-bound recipes that cant be performed
- recipes.retain(|r| r.tile().map_or(true, |t| map_tiles.contains(&t)));
+ recipes.retain(|r| r.tile().is_none_or(|t| map_tiles.contains(&t)));
let mut producable = HashMap::new();
diff --git a/server/data/src/lib.rs b/server/data/src/lib.rs
index a5e8ac68..dd462e3b 100644
--- a/server/data/src/lib.rs
+++ b/server/data/src/lib.rs
@@ -286,6 +286,7 @@ fn build_data(
Ok((data, serverdata))
}
+#[allow(clippy::type_complexity)]
fn load_recipes(
recipes_in: Vec<RecipeDecl>,
reg: &ItemTileRegistry,
@@ -313,10 +314,10 @@ fn load_recipes(
let mut inputs = r.inputs.into_iter().map(|i| reg.register_item(i));
let mut outputs = r.outputs.into_iter().map(|o| reg.register_item(o));
let tile = r.tile.map(|t| reg.register_tile(t));
- if let Some(g) = r.group {
- if !r.group_hidden {
- recipe_groups.entry(g).or_default().extend(inputs.clone());
- }
+ if let Some(g) = r.group
+ && !r.group_hidden
+ {
+ recipe_groups.entry(g).or_default().extend(inputs.clone());
}
match r.action {
RecipeDeclAction::Never => {}
diff --git a/server/data/src/registry.rs b/server/data/src/registry.rs
index 7d56567d..952a2e29 100644
--- a/server/data/src/registry.rs
+++ b/server/data/src/registry.rs
@@ -128,10 +128,8 @@ pub(crate) fn filter_unused_tiles_and_items(data: &mut Gamedata, serverdata: &mu
*tile = tile_map[tile]
}
*input = item_map[input];
- for output in outputs {
- if let Some(output) = output {
- *output = item_map[output];
- }
+ for output in outputs.iter_mut().flatten() {
+ *output = item_map[output];
}
}
Recipe::Instant {
@@ -143,15 +141,11 @@ pub(crate) fn filter_unused_tiles_and_items(data: &mut Gamedata, serverdata: &mu
if let Some(tile) = tile {
*tile = tile_map[tile]
}
- for input in inputs {
- if let Some(input) = input {
- *input = item_map[input];
- }
+ for input in inputs.iter_mut().flatten() {
+ *input = item_map[input];
}
- for output in outputs {
- if let Some(output) = output {
- *output = item_map[output];
- }
+ for output in outputs.iter_mut().flatten() {
+ *output = item_map[output];
}
}
}