satisfactory/src/Test.java

63 lines
2.8 KiB
Java

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import items.Database;
import items.Item;
import items.Recipe;
import items.Utils;
import org.jgrapht.Graph;
import org.jgrapht.graph.DefaultWeightedEdge;
import org.jgrapht.graph.EdgeReversedGraph;
import org.jgrapht.nio.Attribute;
import org.jgrapht.nio.DefaultAttribute;
import org.jgrapht.nio.dot.DOTExporter;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
public class Test {
public static void main(String[] args) throws JsonProcessingException {
//System.out.println(items.Database.AdaptiveControlUnit);
Map<Item, Integer> totalRequirements = Database.HeavyModularFrame.getRecipe().getTotalRequirements();
System.out.println(totalRequirements);
ObjectMapper om = new ObjectMapper().enable(SerializationFeature.INDENT_OUTPUT);
String json = om.writeValueAsString(totalRequirements);
System.out.println(json);
Map<Item, Integer> rawOnly = Utils.getRawOnly(Database.HeavyModularFrame.getRecipe().getTotalRequirements());
String json2 = om.writeValueAsString(rawOnly);
String json3 = om.writeValueAsString(Recipe.getInputs(rawOnly));
System.out.println(json2);
System.out.println(json3);
Item ACU = Database.AdaptiveControlUnit;
System.out.println(om.writeValueAsString(Utils.getRawOnly(ACU.getRecipe().getTotalRequirements())));
System.out.println(om.writeValueAsString(ACU.getRecipe().getTotalRequirements()));
System.out.println();
System.out.println(om.writeValueAsString(ACU));
System.out.println(ACU.getProductionRate());
System.out.println("total requirements for ACU");
System.out.println(om.writeValueAsString(Utils.shorten(ACU.getRecipe().getTotalRequirements())));
//System.out.println(Database.AdaptiveControlUnit.getRecipe().getRequirementRates(Database.AdaptiveControlUnit));
System.out.println("requirement rate for ACU");
System.out.println(om.writeValueAsString(Utils.shorten(ACU.getRecipe().getRequirementRates(ACU))));
Graph<Item, DefaultWeightedEdge> x = ACU.getRecipe().buildGraph(ACU);
DOTExporter<Item, DefaultWeightedEdge> de = new DOTExporter<>(Utils::dotID);
de.setEdgeAttributeProvider(defaultWeightedEdge -> {
Map<String, Attribute> m = new HashMap<>();
m.put("label", DefaultAttribute.createAttribute(x.getEdgeWeight(defaultWeightedEdge)));
return m;
});
de.exportGraph(x, new File("acu.dot"));
de.exportGraph(new EdgeReversedGraph<>(x), new File("acu2.dot"));
Utils.fixSums(ACU, x);
de.exportGraph(x, new File("acu3.dot"));
}
}