recipes: add subtype indicator for each recipe
This commit is contained in:
parent
44ee8eaeee
commit
79df7638a8
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component" ],
|
||||
"input": { "circuit_board": 1, "quickwire": 18 },
|
||||
"output": { "ai_limiter": 1 },
|
||||
"machine": "assembler",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component", "item" ],
|
||||
"input": { "wire": 2 },
|
||||
"output": { "cable": 1 },
|
||||
"machine": "constructor",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component" ],
|
||||
"input": { "caterium_ore": 4 },
|
||||
"output": { "caterium_ingot": 1 },
|
||||
"machine": "smelter",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component" ],
|
||||
"input": { "wire": 12, "plastic": 6 },
|
||||
"output": { "circuit_board": 1 },
|
||||
"machine": "assembler",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component" ],
|
||||
"input": { "circuit_board": 5, "cable": 12, "plastic": 18, "screw": 60 },
|
||||
"output": { "computer": 1 },
|
||||
"machine": "manufacturer",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component" ],
|
||||
"input": { "limestone": 3 },
|
||||
"output": { "concrete": 1 },
|
||||
"machine": "constructor",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component" ],
|
||||
"input": { "copper_ore": 1 },
|
||||
"output": { "copper_ingot": 1 },
|
||||
"machine": "smelter",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component" ],
|
||||
"input": { "steel_beam": 4, "concrete": 5 },
|
||||
"output": { "encased_industrial_beam": 1 },
|
||||
"machine": "assembler",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component" ],
|
||||
"input": { "modular_frame": 5, "steel_pipe": 15, "encased_industrial_beam": 5, "screw": 90 },
|
||||
"output": { "heavy_modular_frame": 1 },
|
||||
"machine": "assembler",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component" ],
|
||||
"input": { "quickwire": 40, "cable": 10, "plastic": 6 },
|
||||
"output": { "high_speed_connector": 1 },
|
||||
"machine": "manufacturer",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component" ],
|
||||
"input": { "iron_ore": 1 },
|
||||
"output": { "iron_ingot": 1 },
|
||||
"machine": "smelter",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component" ],
|
||||
"input": { "iron_ingot": 2 },
|
||||
"output": { "iron_plate": 1 },
|
||||
"crafting_time": 4,
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component" ],
|
||||
"input": { "iron_ingot": 1 },
|
||||
"output": { "iron_rod": 1 },
|
||||
"machine": "constructor",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component" ],
|
||||
"input": { "reinforced_iron_plate": 3, "iron_rod": 3 },
|
||||
"output": { "modular_frame": 1 },
|
||||
"machine": "assembler",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component" ],
|
||||
"input": { "rotor": 2, "stator": 2 },
|
||||
"output": { "motor": 1 },
|
||||
"machine": "assembler",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component" ],
|
||||
"input": { "crude_oil": 4 },
|
||||
"output": { "plastic": 3 },
|
||||
"machine": "oil_refinery",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component" ],
|
||||
"input": { "caterium_ingot": 1 },
|
||||
"output": { "quickwire": 4 },
|
||||
"machine": "constructor",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component" ],
|
||||
"input": { "iron_plate": 4, "screw": 24 },
|
||||
"output": { "reinforced_iron_plate": 1 },
|
||||
"machine": "assembler",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component" ],
|
||||
"input": { "iron_rod": 3, "screw": 22 },
|
||||
"output": { "rotor": 1 },
|
||||
"machine": "smelter",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component" ],
|
||||
"input": { "crude_oil": 4 },
|
||||
"output": { "rubber": 4 },
|
||||
"machine": "oil_refinery",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component" ],
|
||||
"input": { "iron_rod": 1 },
|
||||
"output": { "screw": 6 },
|
||||
"machine": "constructor",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component" ],
|
||||
"input": { "steel_pipe": 3, "wire": 10 },
|
||||
"output": { "stator": 1 },
|
||||
"machine": "assembler",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component" ],
|
||||
"input": { "steel_ingot": 3 },
|
||||
"output": { "steel_beam": 1 },
|
||||
"machine": "constructor",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component" ],
|
||||
"input": { "iron_ore": 3, "coal": 3 },
|
||||
"output": { "steel_ingot": 2 },
|
||||
"machine": "foundry",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component" ],
|
||||
"input": { "steel_ingot": 1 },
|
||||
"output": { "steel_pipe": 1 },
|
||||
"machine": "constructor",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component" ],
|
||||
"input": { "computer": 2, "ai_limiter": 2, "high_speed_connector": 3, "plastic": 21 },
|
||||
"output": { "supercomputer": 1 },
|
||||
"machine": "manufacturer",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "component" ],
|
||||
"input": { "copper_ingot": 1 },
|
||||
"output": { "wire": 3 },
|
||||
"machine": "constructor",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "machine" ],
|
||||
"input": { "modular_frame": 3, "rotor": 4, "cable": 10 },
|
||||
"output": { "assembler": 1 },
|
||||
"machine": "_craft_bench",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "machine" ],
|
||||
"input": { "reinforced_iron_plate": 3, "cable": 2 },
|
||||
"output": { "constructor": 1 },
|
||||
"machine": "_craft_bench",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "machine" ],
|
||||
"input": { "heavy_modular_frame": 2, "motor": 2, "cable": 25, "computer": 3 },
|
||||
"output": { "manufacturer": 1 },
|
||||
"machine": "_craft_bench",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "machine" ],
|
||||
"input": { "portable_miner": 1, "iron_rod": 5, "concrete": 5 },
|
||||
"output": { "miner_mk1": 1 },
|
||||
"is": "miner",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "machine" ],
|
||||
"input": { "heavy_modular_frame": 2, "motor": 3, "cable": 10 },
|
||||
"output": { "oil_pump": 1 },
|
||||
"machine": "_craft_bench",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "machine", "item" ],
|
||||
"input": { "iron_plate": 4, "wire": 8, "cable": 4 },
|
||||
"output": { "portable_miner": 1 },
|
||||
"machine": "equipment_workshop",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "machine" ],
|
||||
"input": { "iron_rod": 5, "wire": 8 },
|
||||
"output": { "smelter": 1 },
|
||||
"machine": "_craft_bench",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "machine" ],
|
||||
"input": { "concrete": 500, "iron_plate": 250, "iron_rod": 400, "wire": 1500 },
|
||||
"output": { "space_elevator": 1 },
|
||||
"machine": "_placement",
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "resource" ],
|
||||
"input": { },
|
||||
"output": { "caterium_ore": 1 },
|
||||
"machine": "miner"
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "resource" ],
|
||||
"input": { },
|
||||
"output": { "coal": 1 },
|
||||
"machine": "miner"
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "resource" ],
|
||||
"input": { },
|
||||
"output": { "copper_ore": 1 },
|
||||
"machine": "miner"
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "resource" ],
|
||||
"input": { },
|
||||
"output": { "crude_oil": 1 },
|
||||
"machine": "oil_pump"
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "resource" ],
|
||||
"input": { },
|
||||
"output": { "iron_ore": 1 },
|
||||
"machine": "miner"
|
||||
|
@ -1,5 +1,6 @@
|
||||
[
|
||||
{
|
||||
"type": [ "resource" ],
|
||||
"input": { },
|
||||
"output": { "limestone": 1 },
|
||||
"machine": "miner",
|
||||
|
17
graph.py
17
graph.py
@ -26,6 +26,21 @@ class Cookbook(object):
|
||||
def all(self):
|
||||
return self.recipes.keys()
|
||||
|
||||
def is_component(self, name):
|
||||
return 'component' in self.recipes[name]['type']
|
||||
|
||||
def components(self):
|
||||
found = set()
|
||||
|
||||
for target, methods in self.recipes.items():
|
||||
for variation in methods:
|
||||
for need, _ in variation['input'].items():
|
||||
if need in found:
|
||||
continue
|
||||
found.add(need)
|
||||
if not self.is_component(need):
|
||||
continue
|
||||
yield need
|
||||
|
||||
def graph(recipes: dict, targets: Iterable[str]):
|
||||
print("digraph G {")
|
||||
@ -71,6 +86,6 @@ if __name__ == '__main__':
|
||||
if args.target:
|
||||
graph_one(recipes, args.target)
|
||||
else:
|
||||
graph_all(recipes)
|
||||
graph(recipes, recipes.components())
|
||||
|
||||
main()
|
||||
|
Loading…
Reference in New Issue
Block a user