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); + } });