Forked from pfmoore/factorio-recipe-parser.lua
Last active
November 12, 2017 16:41
-
-
Save j000/d398ceea09b1fd8706fb41e23348e6cd to your computer and use it in GitHub Desktop.
Parse the Factorio recipe files to create a CSV of recipes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
local write = io.write | |
function print_me(write,...) | |
local n = select("#",...) | |
for i = 1,n do | |
local v = tostring(select(i,...)) | |
write(v) | |
if i~=n then write'\t' end | |
end | |
write'\n' | |
end | |
function print(...) | |
print_me(write,...) | |
end | |
function error(...) | |
local function write(...) | |
io.stderr:write(...) | |
end | |
print_me(write,...) | |
end | |
-- remember about trailing / (or \\ on Windows™) | |
local basepath='/home/j000/.local/share/Steam/steamapps/common/Factorio/data/base/' | |
-- global variables | |
local constraints = {} | |
local images = {} | |
local skip = {} | |
local nodes = {} | |
function mark(array, what) | |
if type(what) ~= 'table' then | |
array[what] = true | |
return | |
end | |
for _, value in ipairs(what) do | |
mark(array, value) | |
end | |
end | |
function check_node(name) | |
if nodes[name] ~= false then | |
nodes[name] = true | |
end | |
end | |
function make_node(name, attributes) | |
nodes[name] = false | |
-- just name | |
if (type(attributes) ~= 'table') then | |
error(name .. ' does not have attributes') | |
attributes = {} | |
end | |
-- open attributes | |
write('\t"' .. name .. '" [') | |
-- loop through attributes | |
for k, v in pairs(attributes) do | |
write(k .. '="' .. v .. '", ') | |
end | |
-- clear label | |
if (not attributes['label'] and images[name] ~= '') then | |
write('label=" ", ') | |
end | |
-- add images | |
if not attributes['image'] then | |
write('image="' .. (images[name] or (name .. '.png')) .. '", ') | |
--write('labelloc="b", ') | |
end | |
-- close attributes | |
write('];\n') | |
end | |
function make_edge(from, to, attributes) | |
if (type(attributes) ~= 'table') then | |
error(from .. ' -> ' .. to .. ' does not have attributes') | |
attributes = {} | |
end | |
write('\t"' .. from .. '" -> "' .. to .. '" [') | |
for k, v in pairs(attributes) do | |
write(k .. '="' .. v .. '", ') | |
end | |
if constraints[from] and not constraints[to] then | |
write('constraint=false, /*style=invis,*/ ') | |
end | |
write('];\n') | |
end | |
function get_recipes() | |
local file_name = '' | |
data = {} | |
data["extend"] = function (data, t) | |
print('// '..file_name) | |
for n, recipe in ipairs(t) do | |
local name = recipe["name"] | |
if not skip[name] then | |
local image = recipe["icon"] | |
if image then | |
image = basepath .. string.sub(image, 10) | |
end | |
-- we have array of results | |
if recipe["results"] then | |
-- just one result with same name as product (i.e. water, petroleum gas -> sulfur -> sulfur) | |
if recipe["results"][2] == nil | |
and ((recipe["results"][1][1] and recipe["results"][1][1] == name) | |
or (recipe["results"][1]["name"] and recipe["results"][1]["name"] == name)) then | |
make_node(name, {image = image}) | |
else | |
make_node(name, {image = image, shape = 'box'}) | |
for i, result in ipairs(recipe["results"]) do | |
local rname = result[1] or result["name"] | |
local ramt = result[2] or result["amount"] | |
check_node(rname) | |
make_edge(name, rname, {label = ramt}) | |
end | |
end | |
else | |
make_node(name, {image = image}) | |
end | |
for i, component in ipairs(recipe["ingredients"]) do | |
local cname = component[1] or component["name"] | |
local camt = component[2] or component["amount"] | |
check_node(cname) | |
make_edge(cname, name, {label = camt}) | |
end | |
end | |
end | |
end | |
local files = { | |
'ammo', | |
'capsule', | |
'demo-furnace-recipe', | |
'demo-recipe', | |
'demo-turret', | |
'equipment', | |
'fluid-recipe', | |
'furnace-recipe', | |
'inserter', | |
'module', | |
'recipe', | |
'turret', | |
} | |
mark(constraints, { | |
--'electronic-circuit', | |
--'advanced-circuit', | |
--'processing-unit', | |
'empty-barrel', | |
'crude-oil-barrel', | |
--'empty-crude-oil-barrel', | |
--'fill-crude-oil-barrel' | |
}) | |
-- not usable in-game items as of 0.14.21 | |
mark(skip, { | |
'small-plane', | |
'loader', | |
'fast-loader', | |
'express-loader', | |
'player-port', | |
'electric-energy-interface' | |
}) | |
-- images have different names | |
images['railgun-dart'] = 'railgun-ammo.png' | |
images['low-density-structure'] = 'rocket-structure.png' | |
-- no image | |
images['discharge-defense-remote'] = '' | |
images['electric-energy-interface'] = '' | |
for i, f in ipairs(files) do | |
file_name = f | |
dofile(basepath .. "prototypes/recipe/" .. f .. ".lua") | |
end | |
for k, v in pairs(nodes) do | |
if v then | |
--error('making node '..k) | |
make_node(k, {}) | |
end | |
end | |
end | |
print([[ | |
digraph factorio { | |
imagepath="]]..basepath..[[graphics/icons/fluid:]]..basepath..[[graphics/icons"; | |
graph [ | |
//compound=true, | |
//ordering="out", // preserve order from file | |
]; | |
//rankdir=LR; // draw from left to right, not top to bottom | |
ranksep="0.1 equally" // space between "ranks" | |
//size="8,5"; // image size | |
//ratio="0.625"; // image ratio | |
overlap=false; // don't overlap nodes | |
//style=invis; // hide clusters' borders | |
maxiter=100000; // number of iterations | |
]]) | |
get_recipes() | |
print([[ | |
// some positioning | |
//{ rank=min; "coal"; "iron-ore"; "copper-ore"; "stone"; "raw-wood"; "water"; "crude-oil" } | |
//{ rank=same; "iron-plate"; "copper-plate"; "wood"; "landfill"; "stone-brick" } | |
//{ rank=same; "lubricant"; "heavy-oil"; "heavy-oil-cracking"; "light-oil"; "light-oil-cracking"; "petroleum-gas" } | |
//{ rank=same; "splitter"; "underground-belt"; "loader"; "fast-transport-belt" } | |
//{ rank=same; "empty-barrel"; "crude-oil-barrel"; "empty-crude-oil-barrel"; "fill-crude-oil-barrel" } | |
subgraph cluster_barrels { | |
{ rank=same; "empty-barrel"; "crude-oil-barrel"; } | |
"empty-crude-oil-barrel"; "fill-crude-oil-barrel" | |
} | |
} | |
]]) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
piercing-rounds-magazine | copper-plate | 5 | |
---|---|---|---|
piercing-rounds-magazine | steel-plate | 1 | |
rocket | electronic-circuit | 1 | |
rocket | explosives | 2 | |
rocket | iron-plate | 2 | |
explosive-rocket | rocket | 1 | |
explosive-rocket | explosives | 5 | |
shotgun-shell | copper-plate | 2 | |
shotgun-shell | iron-plate | 2 | |
piercing-shotgun-shell | copper-plate | 2 | |
piercing-shotgun-shell | steel-plate | 2 | |
railgun-dart | steel-plate | 5 | |
railgun-dart | electronic-circuit | 5 | |
cannon-shell | steel-plate | 4 | |
cannon-shell | plastic-bar | 2 | |
cannon-shell | explosives | 1 | |
explosive-cannon-shell | steel-plate | 4 | |
explosive-cannon-shell | plastic-bar | 2 | |
explosive-cannon-shell | explosives | 4 | |
poison-capsule | steel-plate | 3 | |
poison-capsule | electronic-circuit | 3 | |
poison-capsule | coal | 10 | |
slowdown-capsule | steel-plate | 2 | |
slowdown-capsule | electronic-circuit | 2 | |
slowdown-capsule | coal | 5 | |
grenade | iron-plate | 5 | |
grenade | coal | 10 | |
cluster-grenade | grenade | 7 | |
cluster-grenade | explosives | 5 | |
cluster-grenade | steel-plate | 5 | |
defender-capsule | piercing-rounds-magazine | 1 | |
defender-capsule | electronic-circuit | 2 | |
defender-capsule | iron-gear-wheel | 3 | |
distractor-capsule | defender-capsule | 4 | |
distractor-capsule | advanced-circuit | 3 | |
destroyer-capsule | distractor-capsule | 4 | |
destroyer-capsule | speed-module | 1 | |
discharge-defense-remote | electronic-circuit | 1 | |
copper-plate | copper-ore | 1 | |
iron-plate | iron-ore | 1 | |
stone-brick | stone | 2 | |
wood | raw-wood | 1 | |
wooden-chest | wood | 4 | |
iron-stick | iron-plate | 1 | |
iron-axe | iron-stick | 2 | |
iron-axe | iron-plate | 3 | |
stone-furnace | stone | 5 | |
boiler | stone-furnace | 1 | |
boiler | pipe | 1 | |
steam-engine | iron-gear-wheel | 5 | |
steam-engine | pipe | 5 | |
steam-engine | iron-plate | 5 | |
iron-gear-wheel | iron-plate | 2 | |
electronic-circuit | iron-plate | 1 | |
electronic-circuit | copper-cable | 3 | |
transport-belt | iron-plate | 1 | |
transport-belt | iron-gear-wheel | 1 | |
electric-mining-drill | electronic-circuit | 3 | |
electric-mining-drill | iron-gear-wheel | 5 | |
electric-mining-drill | iron-plate | 10 | |
burner-mining-drill | iron-gear-wheel | 3 | |
burner-mining-drill | stone-furnace | 1 | |
burner-mining-drill | iron-plate | 3 | |
inserter | electronic-circuit | 1 | |
inserter | iron-gear-wheel | 1 | |
inserter | iron-plate | 1 | |
burner-inserter | iron-plate | 1 | |
burner-inserter | iron-gear-wheel | 1 | |
pipe | iron-plate | 1 | |
offshore-pump | electronic-circuit | 2 | |
offshore-pump | pipe | 1 | |
offshore-pump | iron-gear-wheel | 1 | |
copper-cable | copper-plate | 1 | |
small-electric-pole | wood | 2 | |
small-electric-pole | copper-cable | 2 | |
pistol | copper-plate | 5 | |
pistol | iron-plate | 5 | |
submachine-gun | iron-gear-wheel | 10 | |
submachine-gun | copper-plate | 5 | |
submachine-gun | iron-plate | 10 | |
firearm-magazine | iron-plate | 2 | |
light-armor | iron-plate | 40 | |
radar | electronic-circuit | 5 | |
radar | iron-gear-wheel | 5 | |
radar | iron-plate | 10 | |
small-lamp | electronic-circuit | 1 | |
small-lamp | iron-stick | 3 | |
small-lamp | iron-plate | 1 | |
pipe-to-ground | pipe | 10 | |
pipe-to-ground | iron-plate | 5 | |
assembling-machine-1 | electronic-circuit | 3 | |
assembling-machine-1 | iron-gear-wheel | 5 | |
assembling-machine-1 | iron-plate | 9 | |
repair-pack | electronic-circuit | 1 | |
repair-pack | iron-gear-wheel | 1 | |
gun-turret | iron-gear-wheel | 10 | |
gun-turret | copper-plate | 10 | |
gun-turret | iron-plate | 20 | |
night-vision-equipment | advanced-circuit | 5 | |
night-vision-equipment | steel-plate | 10 | |
energy-shield-equipment | advanced-circuit | 5 | |
energy-shield-equipment | steel-plate | 10 | |
energy-shield-mk2-equipment | energy-shield-equipment | 10 | |
energy-shield-mk2-equipment | processing-unit | 10 | |
battery-equipment | battery | 5 | |
battery-equipment | steel-plate | 10 | |
battery-mk2-equipment | battery-equipment | 10 | |
battery-mk2-equipment | processing-unit | 20 | |
solar-panel-equipment | solar-panel | 5 | |
solar-panel-equipment | processing-unit | 1 | |
solar-panel-equipment | steel-plate | 5 | |
fusion-reactor-equipment | processing-unit | 100 | |
fusion-reactor-equipment | alien-artifact | 30 | |
personal-laser-defense-equipment | processing-unit | 1 | |
personal-laser-defense-equipment | steel-plate | 5 | |
personal-laser-defense-equipment | laser-turret | 5 | |
discharge-defense-equipment | processing-unit | 5 | |
discharge-defense-equipment | steel-plate | 20 | |
discharge-defense-equipment | laser-turret | 10 | |
exoskeleton-equipment | processing-unit | 10 | |
exoskeleton-equipment | electric-engine-unit | 30 | |
exoskeleton-equipment | steel-plate | 20 | |
personal-roboport-equipment | processing-unit | 10 | |
personal-roboport-equipment | iron-gear-wheel | 40 | |
personal-roboport-equipment | steel-plate | 20 | |
personal-roboport-equipment | battery | 45 | |
basic-oil-processing | crude-oil | 10 | |
advanced-oil-processing | water | 5 | |
advanced-oil-processing | crude-oil | 10 | |
heavy-oil-cracking | water | 3 | |
heavy-oil-cracking | heavy-oil | 4 | |
light-oil-cracking | water | 3 | |
light-oil-cracking | light-oil | 3 | |
sulfuric-acid | sulfur | 5 | |
sulfuric-acid | iron-plate | 1 | |
sulfuric-acid | water | 10 | |
plastic-bar | petroleum-gas | 3 | |
plastic-bar | coal | 1 | |
solid-fuel-from-light-oil | light-oil | 1 | |
solid-fuel-from-petroleum-gas | petroleum-gas | 2 | |
solid-fuel-from-heavy-oil | heavy-oil | 2 | |
sulfur | water | 3 | |
sulfur | petroleum-gas | 3 | |
lubricant | heavy-oil | 1 | |
empty-barrel | steel-plate | 1 | |
fill-crude-oil-barrel | crude-oil | 25 | |
fill-crude-oil-barrel | empty-barrel | 1 | |
empty-crude-oil-barrel | crude-oil-barrel | 1 | |
flame-thrower-ammo | iron-plate | 5 | |
flame-thrower-ammo | light-oil | 2.5 | |
flame-thrower-ammo | heavy-oil | 2.5 | |
steel-plate | iron-plate | 5 | |
long-handed-inserter | iron-gear-wheel | 1 | |
long-handed-inserter | iron-plate | 1 | |
long-handed-inserter | inserter | 1 | |
fast-inserter | electronic-circuit | 2 | |
fast-inserter | iron-plate | 2 | |
fast-inserter | inserter | 1 | |
filter-inserter | fast-inserter | 1 | |
filter-inserter | electronic-circuit | 4 | |
stack-inserter | iron-gear-wheel | 15 | |
stack-inserter | electronic-circuit | 15 | |
stack-inserter | advanced-circuit | 1 | |
stack-inserter | fast-inserter | 1 | |
stack-filter-inserter | stack-inserter | 1 | |
stack-filter-inserter | electronic-circuit | 5 | |
speed-module | advanced-circuit | 5 | |
speed-module | electronic-circuit | 5 | |
speed-module-2 | speed-module | 4 | |
speed-module-2 | processing-unit | 5 | |
speed-module-2 | advanced-circuit | 5 | |
speed-module-3 | speed-module-2 | 4 | |
speed-module-3 | advanced-circuit | 5 | |
speed-module-3 | processing-unit | 5 | |
speed-module-3 | alien-artifact | 1 | |
productivity-module | advanced-circuit | 5 | |
productivity-module | electronic-circuit | 5 | |
productivity-module-2 | productivity-module | 4 | |
productivity-module-2 | advanced-circuit | 5 | |
productivity-module-2 | processing-unit | 5 | |
productivity-module-3 | productivity-module-2 | 5 | |
productivity-module-3 | advanced-circuit | 5 | |
productivity-module-3 | processing-unit | 5 | |
productivity-module-3 | alien-artifact | 1 | |
effectivity-module | advanced-circuit | 5 | |
effectivity-module | electronic-circuit | 5 | |
effectivity-module-2 | effectivity-module | 4 | |
effectivity-module-2 | advanced-circuit | 5 | |
effectivity-module-2 | processing-unit | 5 | |
effectivity-module-3 | effectivity-module-2 | 5 | |
effectivity-module-3 | advanced-circuit | 5 | |
effectivity-module-3 | processing-unit | 5 | |
effectivity-module-3 | alien-artifact | 1 | |
player-port | electronic-circuit | 10 | |
player-port | iron-gear-wheel | 5 | |
player-port | iron-plate | 1 | |
fast-transport-belt | iron-gear-wheel | 5 | |
fast-transport-belt | transport-belt | 1 | |
express-transport-belt | iron-gear-wheel | 5 | |
express-transport-belt | fast-transport-belt | 1 | |
express-transport-belt | lubricant | 2 | |
solar-panel | steel-plate | 5 | |
solar-panel | electronic-circuit | 15 | |
solar-panel | copper-plate | 5 | |
assembling-machine-2 | iron-plate | 9 | |
assembling-machine-2 | electronic-circuit | 3 | |
assembling-machine-2 | iron-gear-wheel | 5 | |
assembling-machine-2 | assembling-machine-1 | 1 | |
assembling-machine-3 | speed-module | 4 | |
assembling-machine-3 | assembling-machine-2 | 2 | |
car | engine-unit | 8 | |
car | iron-plate | 20 | |
car | steel-plate | 5 | |
tank | engine-unit | 16 | |
tank | steel-plate | 50 | |
tank | iron-gear-wheel | 15 | |
tank | advanced-circuit | 5 | |
rail | stone | 1 | |
rail | iron-stick | 1 | |
rail | steel-plate | 1 | |
diesel-locomotive | engine-unit | 20 | |
diesel-locomotive | electronic-circuit | 10 | |
diesel-locomotive | steel-plate | 30 | |
cargo-wagon | iron-gear-wheel | 10 | |
cargo-wagon | iron-plate | 20 | |
cargo-wagon | steel-plate | 20 | |
train-stop | electronic-circuit | 5 | |
train-stop | iron-plate | 10 | |
train-stop | steel-plate | 3 | |
rail-signal | electronic-circuit | 1 | |
rail-signal | iron-plate | 5 | |
rail-chain-signal | electronic-circuit | 1 | |
rail-chain-signal | iron-plate | 5 | |
heavy-armor | copper-plate | 100 | |
heavy-armor | steel-plate | 50 | |
modular-armor | advanced-circuit | 30 | |
modular-armor | processing-unit | 5 | |
modular-armor | steel-plate | 50 | |
power-armor | processing-unit | 40 | |
power-armor | electric-engine-unit | 20 | |
power-armor | steel-plate | 40 | |
power-armor | alien-artifact | 10 | |
power-armor-mk2 | effectivity-module-3 | 5 | |
power-armor-mk2 | speed-module-3 | 5 | |
power-armor-mk2 | processing-unit | 40 | |
power-armor-mk2 | steel-plate | 40 | |
power-armor-mk2 | alien-artifact | 50 | |
iron-chest | iron-plate | 8 | |
steel-chest | steel-plate | 8 | |
stone-wall | stone-brick | 5 | |
gate | stone-wall | 1 | |
gate | steel-plate | 2 | |
gate | electronic-circuit | 2 | |
flame-thrower | steel-plate | 5 | |
flame-thrower | iron-gear-wheel | 10 | |
land-mine | steel-plate | 1 | |
land-mine | explosives | 2 | |
rocket-launcher | iron-plate | 5 | |
rocket-launcher | iron-gear-wheel | 5 | |
rocket-launcher | electronic-circuit | 5 | |
shotgun | iron-plate | 15 | |
shotgun | iron-gear-wheel | 5 | |
shotgun | copper-plate | 10 | |
shotgun | wood | 5 | |
combat-shotgun | steel-plate | 15 | |
combat-shotgun | iron-gear-wheel | 5 | |
combat-shotgun | copper-plate | 10 | |
combat-shotgun | wood | 10 | |
railgun | steel-plate | 15 | |
railgun | copper-plate | 15 | |
railgun | electronic-circuit | 10 | |
railgun | advanced-circuit | 5 | |
science-pack-1 | copper-plate | 1 | |
science-pack-1 | iron-gear-wheel | 1 | |
science-pack-2 | inserter | 1 | |
science-pack-2 | transport-belt | 1 | |
science-pack-3 | battery | 1 | |
science-pack-3 | advanced-circuit | 1 | |
science-pack-3 | filter-inserter | 1 | |
science-pack-3 | steel-plate | 1 | |
alien-science-pack | alien-artifact | 1 | |
lab | electronic-circuit | 10 | |
lab | iron-gear-wheel | 10 | |
lab | transport-belt | 4 | |
red-wire | electronic-circuit | 1 | |
red-wire | copper-cable | 1 | |
green-wire | electronic-circuit | 1 | |
green-wire | copper-cable | 1 | |
underground-belt | iron-plate | 10 | |
underground-belt | transport-belt | 5 | |
fast-underground-belt | iron-gear-wheel | 20 | |
fast-underground-belt | underground-belt | 2 | |
express-underground-belt | iron-gear-wheel | 40 | |
express-underground-belt | fast-underground-belt | 2 | |
express-underground-belt | lubricant | 4 | |
loader | inserter | 5 | |
loader | electronic-circuit | 5 | |
loader | iron-gear-wheel | 5 | |
loader | iron-plate | 5 | |
loader | transport-belt | 5 | |
fast-loader | fast-transport-belt | 5 | |
fast-loader | loader | 1 | |
express-loader | express-transport-belt | 5 | |
express-loader | fast-loader | 1 | |
splitter | electronic-circuit | 5 | |
splitter | iron-plate | 5 | |
splitter | transport-belt | 4 | |
fast-splitter | splitter | 1 | |
fast-splitter | iron-gear-wheel | 10 | |
fast-splitter | electronic-circuit | 10 | |
express-splitter | fast-splitter | 1 | |
express-splitter | iron-gear-wheel | 10 | |
express-splitter | advanced-circuit | 10 | |
express-splitter | lubricant | 8 | |
advanced-circuit | electronic-circuit | 2 | |
advanced-circuit | plastic-bar | 2 | |
advanced-circuit | copper-cable | 4 | |
processing-unit | electronic-circuit | 20 | |
processing-unit | advanced-circuit | 2 | |
processing-unit | sulfuric-acid | 0.5 | |
logistic-robot | flying-robot-frame | 1 | |
logistic-robot | advanced-circuit | 2 | |
construction-robot | flying-robot-frame | 1 | |
construction-robot | electronic-circuit | 2 | |
logistic-chest-passive-provider | steel-chest | 1 | |
logistic-chest-passive-provider | electronic-circuit | 3 | |
logistic-chest-passive-provider | advanced-circuit | 1 | |
logistic-chest-active-provider | steel-chest | 1 | |
logistic-chest-active-provider | electronic-circuit | 3 | |
logistic-chest-active-provider | advanced-circuit | 1 | |
logistic-chest-storage | steel-chest | 1 | |
logistic-chest-storage | electronic-circuit | 3 | |
logistic-chest-storage | advanced-circuit | 1 | |
logistic-chest-requester | steel-chest | 1 | |
logistic-chest-requester | electronic-circuit | 3 | |
logistic-chest-requester | advanced-circuit | 1 | |
rocket-silo | steel-plate | 1000 | |
rocket-silo | concrete | 1000 | |
rocket-silo | pipe | 100 | |
rocket-silo | processing-unit | 200 | |
rocket-silo | electric-engine-unit | 200 | |
roboport | steel-plate | 45 | |
roboport | iron-gear-wheel | 45 | |
roboport | advanced-circuit | 45 | |
steel-axe | steel-plate | 5 | |
steel-axe | iron-stick | 2 | |
big-electric-pole | steel-plate | 5 | |
big-electric-pole | copper-plate | 5 | |
substation | steel-plate | 10 | |
substation | advanced-circuit | 5 | |
substation | copper-plate | 5 | |
medium-electric-pole | steel-plate | 2 | |
medium-electric-pole | copper-plate | 2 | |
accumulator | iron-plate | 2 | |
accumulator | battery | 5 | |
steel-furnace | steel-plate | 8 | |
steel-furnace | stone-brick | 10 | |
electric-furnace | steel-plate | 15 | |
electric-furnace | advanced-circuit | 5 | |
electric-furnace | stone-brick | 10 | |
beacon | electronic-circuit | 20 | |
beacon | advanced-circuit | 20 | |
beacon | steel-plate | 10 | |
beacon | copper-cable | 10 | |
blueprint | advanced-circuit | 1 | |
blueprint-book | advanced-circuit | 15 | |
deconstruction-planner | advanced-circuit | 1 | |
pumpjack | steel-plate | 15 | |
pumpjack | iron-gear-wheel | 10 | |
pumpjack | electronic-circuit | 10 | |
pumpjack | pipe | 10 | |
oil-refinery | steel-plate | 15 | |
oil-refinery | iron-gear-wheel | 10 | |
oil-refinery | stone-brick | 10 | |
oil-refinery | electronic-circuit | 10 | |
oil-refinery | pipe | 10 | |
engine-unit | steel-plate | 1 | |
engine-unit | iron-gear-wheel | 1 | |
engine-unit | pipe | 2 | |
electric-engine-unit | engine-unit | 1 | |
electric-engine-unit | lubricant | 2 | |
electric-engine-unit | electronic-circuit | 2 | |
flying-robot-frame | electric-engine-unit | 1 | |
flying-robot-frame | battery | 2 | |
flying-robot-frame | steel-plate | 1 | |
flying-robot-frame | electronic-circuit | 3 | |
explosives | sulfur | 1 | |
explosives | coal | 1 | |
explosives | water | 1 | |
battery | sulfuric-acid | 2 | |
battery | iron-plate | 1 | |
battery | copper-plate | 1 | |
storage-tank | iron-plate | 20 | |
storage-tank | steel-plate | 5 | |
small-pump | electric-engine-unit | 1 | |
small-pump | steel-plate | 1 | |
small-pump | pipe | 1 | |
chemical-plant | steel-plate | 5 | |
chemical-plant | iron-gear-wheel | 5 | |
chemical-plant | electronic-circuit | 5 | |
chemical-plant | pipe | 5 | |
small-plane | plastic-bar | 100 | |
small-plane | advanced-circuit | 200 | |
small-plane | electric-engine-unit | 20 | |
small-plane | battery | 100 | |
arithmetic-combinator | copper-cable | 5 | |
arithmetic-combinator | electronic-circuit | 5 | |
decider-combinator | copper-cable | 5 | |
decider-combinator | electronic-circuit | 5 | |
constant-combinator | copper-cable | 5 | |
constant-combinator | electronic-circuit | 2 | |
power-switch | iron-plate | 5 | |
power-switch | copper-cable | 5 | |
power-switch | electronic-circuit | 2 | |
low-density-structure | steel-plate | 10 | |
low-density-structure | copper-plate | 5 | |
low-density-structure | plastic-bar | 5 | |
rocket-fuel | solid-fuel | 10 | |
rocket-control-unit | processing-unit | 1 | |
rocket-control-unit | speed-module | 1 | |
rocket-part | low-density-structure | 10 | |
rocket-part | rocket-fuel | 10 | |
rocket-part | rocket-control-unit | 10 | |
satellite | low-density-structure | 100 | |
satellite | solar-panel | 100 | |
satellite | accumulator | 100 | |
satellite | radar | 5 | |
satellite | processing-unit | 100 | |
satellite | rocket-fuel | 50 | |
concrete | stone-brick | 5 | |
concrete | iron-ore | 1 | |
concrete | water | 10 | |
hazard-concrete | concrete | 10 | |
landfill | stone | 20 | |
electric-energy-interface | iron-plate | 2 | |
electric-energy-interface | electronic-circuit | 5 | |
laser-turret | steel-plate | 20 | |
laser-turret | electronic-circuit | 20 | |
laser-turret | battery | 12 | |
flamethrower-turret | steel-plate | 30 | |
flamethrower-turret | iron-gear-wheel | 15 | |
flamethrower-turret | pipe | 10 | |
flamethrower-turret | engine-unit | 5 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment