From f8c17d351f4fcf5a9e763c866f3573d1aa4105b6 Mon Sep 17 00:00:00 2001 From: agp8x Date: Sat, 8 May 2021 19:48:48 +0200 Subject: [PATCH] add byproducts --- src/items/Recipe.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/items/Recipe.java b/src/items/Recipe.java index 52f675b..eea1af6 100644 --- a/src/items/Recipe.java +++ b/src/items/Recipe.java @@ -9,6 +9,7 @@ import org.jgrapht.graph.DefaultWeightedEdge; import java.util.HashMap; import java.util.Map; +import java.util.stream.Collectors; public class Recipe { private Map inputs; @@ -110,14 +111,25 @@ public class Recipe { public Graph buildGraph(Item target) { Graph graph = new DefaultDirectedWeightedGraph<>(DefaultWeightedEdge.class); graph.addVertex(target); - target.sum +=1; + target.sum += 1; + Map output = outputs.entrySet().stream() + .filter(itemIntegerEntry -> itemIntegerEntry.getKey() != target) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + output.forEach((item, integer) -> { + graph.addVertex(item); + graph.addEdge(target, item); + graph.setEdgeWeight(target, item, integer); + }); inputs.forEach((item, integer) -> { graph.addVertex(item); graph.addEdge(item, target); graph.setEdgeWeight(item, target, integer); - Graph g = item.getRecipe().buildGraph(item); - Graphs.addGraph(graph, g); + Recipe recipe = item.getRecipe(); + if (recipe != null) { + Graph g = recipe.buildGraph(item); + Graphs.addGraph(graph, g); + } });