63 lines
2.8 KiB
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"));
|
|
}
|
|
}
|