Files
factorio-calc/data/recipes.json
T
mikhail eae7c066d1 feat: Factorio Space Age Production Calculator
- Domain: immutable entities (Resource, Recipe, Machine, Module, etc.)
- Data: JSON recipe repository (34 resources, 26 recipes, Space Age)
- Solver: DFS-based production planner with module support
- Reporting: Console, JSON, Excel exporters
- CLI: solve/list commands with Spectre.Console
- Tests: 20 unit tests (xUnit) all passing
- Tech: C# .NET 10, MathNet.Numerics, ClosedXML

Model: GPT-4.1 (OpenAI) — executed by pi coding agent
2026-07-02 13:08:25 +03:00

193 lines
11 KiB
JSON

{
"resources": [
{ "id": 1, "name": "Iron Ore" },
{ "id": 2, "name": "Copper Ore" },
{ "id": 3, "name": "Stone" },
{ "id": 4, "name": "Water" },
{ "id": 5, "name": "Coal" },
{ "id": 6, "name": "Wood" },
{ "id": 7, "name": "Iron Plate" },
{ "id": 8, "name": "Copper Plate" },
{ "id": 9, "name": "Steel Plate" },
{ "id": 10, "name": "Copper Cable" },
{ "id": 11, "name": "Electronic Circuit" },
{ "id": 12, "name": "Electronic Circuit (Productivity)" },
{ "id": 13, "name": "Advanced Circuit" },
{ "id": 14, "name": "Processing Unit" },
{ "id": 15, "name": "Low Grade Alloy" },
{ "id": 16, "name": "Gear Wheel" },
{ "id": 17, "name": "Belt" },
{ "id": 18, "name": "Express Belt" },
{ "id": 19, "name": "Turbo Belt" },
{ "id": 20, "name": "Flared Copper Pipe" },
{ "id": 21, "name": "Sulfuric Acid" },
{ "id": 22, "name": "Sulfur" },
{ "id": 23, "name": "Crude Oil" },
{ "id": 24, "name": "Heavy Oil Residue" },
{ "id": 25, "name": "Light Oil" },
{ "id": 26, "name": "Petroleum Gas" },
{ "id": 27, "name": "Solid Fuel" },
{ "id": 28, "name": "Lubricant" },
{ "id": 29, "name": "Plastic Bar" },
{ "id": 30, "name": "Red Science Pack" },
{ "id": 31, "name": "Green Science Pack" },
{ "id": 32, "name": "Blue Science Pack" },
{ "id": 33, "name": "Yellow Science Pack" },
{ "id": 34, "name": "Space Science Pack" }
],
"machines": [
{ "id": 1, "name": "Mining Drill", "craftingSpeed": 0.5, "energy": 4.0, "moduleSlots": 0, "allowedCategories": ["extracting"] },
{ "id": 2, "name": "Pumpjack", "craftingSpeed": 0.5, "energy": 2.0, "moduleSlots": 0, "allowedCategories": ["extracting"] },
{ "id": 3, "name": "Smelter", "craftingSpeed": 0.5, "energy": 3.0, "moduleSlots": 2, "allowedCategories": ["smelting"] },
{ "id": 4, "name": "Steel Furnace", "craftingSpeed": 0.5, "energy": 6.0, "moduleSlots": 2, "allowedCategories": ["smelting"] },
{ "id": 5, "name": "Assembler 1", "craftingSpeed": 0.5, "energy": 3.0, "moduleSlots": 2, "allowedCategories": ["basic-crafting"] },
{ "id": 6, "name": "Assembler 2", "craftingSpeed": 0.5, "energy": 4.0, "moduleSlots": 2, "allowedCategories": ["basic-crafting"] },
{ "id": 7, "name": "Assembler 3", "craftingSpeed": 0.5, "energy": 6.0, "moduleSlots": 4, "allowedCategories": ["basic-crafting"] },
{ "id": 8, "name": "Chemical Plant", "craftingSpeed": 0.5, "energy": 6.0, "moduleSlots": 4, "allowedCategories": ["advanced-crafting", "basic-crafting"] },
{ "id": 9, "name": "Oil Extractor", "craftingSpeed": 0.5, "energy": 4.0, "moduleSlots": 0, "allowedCategories": ["extracting"] }
],
"modules": [
{ "id": 1, "name": "Speed Module 1", "type": "Speed", "speedBonus": 0.10, "productivityBonus": 0, "efficiencyBonus": -0.05 },
{ "id": 2, "name": "Speed Module 2", "type": "Speed", "speedBonus": 0.20, "productivityBonus": 0, "efficiencyBonus": -0.10 },
{ "id": 3, "name": "Speed Module 3", "type": "Speed", "speedBonus": 0.30, "productivityBonus": 0, "efficiencyBonus": -0.15 },
{ "id": 4, "name": "Productivity Module 1", "type": "Productivity", "speedBonus": -0.10, "productivityBonus": 0.10, "efficiencyBonus": -0.05 },
{ "id": 5, "name": "Productivity Module 2", "type": "Productivity", "speedBonus": -0.15, "productivityBonus": 0.20, "efficiencyBonus": -0.10 },
{ "id": 6, "name": "Productivity Module 3", "type": "Productivity", "speedBonus": -0.20, "productivityBonus": 0.30, "efficiencyBonus": -0.15 },
{ "id": 7, "name": "Efficiency Module 1", "type": "Efficiency", "speedBonus": -0.05, "productivityBonus": 0, "efficiencyBonus": 0.10 },
{ "id": 8, "name": "Efficiency Module 2", "type": "Efficiency", "speedBonus": -0.10, "productivityBonus": 0, "efficiencyBonus": 0.20 },
{ "id": 9, "name": "Efficiency Module 3", "type": "Efficiency", "speedBonus": -0.15, "productivityBonus": 0, "efficiencyBonus": 0.30 }
],
"recipes": [
{
"id": 1, "name": "Iron Plate", "category": "smelting", "craftTime": 3.0, "machineCategory": "smelting",
"ingredients": [ { "resourceId": 1, "amount": 1 } ],
"products": [ { "resourceId": 7, "amount": 1 } ]
},
{
"id": 2, "name": "Copper Plate", "category": "smelting", "craftTime": 3.0, "machineCategory": "smelting",
"ingredients": [ { "resourceId": 2, "amount": 1 } ],
"products": [ { "resourceId": 8, "amount": 1 } ]
},
{
"id": 3, "name": "Steel Plate", "category": "smelting", "craftTime": 5.0, "machineCategory": "smelting",
"ingredients": [ { "resourceId": 7, "amount": 2 }, { "resourceId": 5, "amount": 1 } ],
"products": [ { "resourceId": 9, "amount": 1 } ]
},
{
"id": 4, "name": "Copper Cable", "category": "basic-crafting", "craftTime": 0.5, "machineCategory": "basic-crafting",
"ingredients": [ { "resourceId": 8, "amount": 1 } ],
"products": [ { "resourceId": 10, "amount": 5 } ]
},
{
"id": 5, "name": "Electronic Circuit", "category": "basic-crafting", "craftTime": 3.0, "machineCategory": "basic-crafting",
"ingredients": [ { "resourceId": 10, "amount": 2 }, { "resourceId": 7, "amount": 1 } ],
"products": [ { "resourceId": 11, "amount": 1 } ]
},
{
"id": 6, "name": "Electronic Circuit (Productivity)", "category": "basic-crafting", "craftTime": 4.0, "machineCategory": "basic-crafting",
"ingredients": [ { "resourceId": 10, "amount": 5 }, { "resourceId": 7, "amount": 1 } ],
"products": [ { "resourceId": 11, "amount": 3 } ]
},
{
"id": 7, "name": "Advanced Circuit", "category": "advanced-crafting", "craftTime": 5.0, "machineCategory": "advanced-crafting",
"ingredients": [ { "resourceId": 11, "amount": 3 }, { "resourceId": 9, "amount": 1 } ],
"products": [ { "resourceId": 13, "amount": 1 } ]
},
{
"id": 8, "name": "Processing Unit", "category": "advanced-crafting", "craftTime": 8.0, "machineCategory": "advanced-crafting",
"ingredients": [ { "resourceId": 13, "amount": 1 }, { "resourceId": 21, "amount": 1 } ],
"products": [ { "resourceId": 14, "amount": 1 } ]
},
{
"id": 9, "name": "Low Grade Alloy", "category": "smelting", "craftTime": 3.0, "machineCategory": "smelting",
"ingredients": [ { "resourceId": 7, "amount": 15 }, { "resourceId": 8, "amount": 5 } ],
"products": [ { "resourceId": 15, "amount": 1 } ]
},
{
"id": 10, "name": "Gear Wheel", "category": "basic-crafting", "craftTime": 1.0, "machineCategory": "basic-crafting",
"ingredients": [ { "resourceId": 7, "amount": 2 } ],
"products": [ { "resourceId": 16, "amount": 1 } ]
},
{
"id": 11, "name": "Gear Wheel (Productivity)", "category": "basic-crafting", "craftTime": 2.0, "machineCategory": "basic-crafting",
"ingredients": [ { "resourceId": 7, "amount": 5 } ],
"products": [ { "resourceId": 16, "amount": 3 } ]
},
{
"id": 12, "name": "Belt", "category": "basic-crafting", "craftTime": 1.0, "machineCategory": "basic-crafting",
"ingredients": [ { "resourceId": 7, "amount": 2 }, { "resourceId": 10, "amount": 1 } ],
"products": [ { "resourceId": 17, "amount": 1 } ]
},
{
"id": 13, "name": "Express Belt", "category": "basic-crafting", "craftTime": 4.0, "machineCategory": "basic-crafting",
"ingredients": [ { "resourceId": 9, "amount": 2 }, { "resourceId": 11, "amount": 1 }, { "resourceId": 16, "amount": 1 } ],
"products": [ { "resourceId": 18, "amount": 1 } ]
},
{
"id": 14, "name": "Turbo Belt", "category": "basic-crafting", "craftTime": 10.0, "machineCategory": "basic-crafting",
"ingredients": [ { "resourceId": 18, "amount": 2 }, { "resourceId": 13, "amount": 1 }, { "resourceId": 29, "amount": 1 } ],
"products": [ { "resourceId": 19, "amount": 1 } ]
},
{
"id": 15, "name": "Flared Copper Pipe", "category": "basic-crafting", "craftTime": 2.0, "machineCategory": "basic-crafting",
"ingredients": [ { "resourceId": 8, "amount": 5 }, { "resourceId": 9, "amount": 1 } ],
"products": [ { "resourceId": 20, "amount": 1 } ]
},
{
"id": 16, "name": "Sulfuric Acid", "category": "advanced-crafting", "craftTime": 4.0, "machineCategory": "advanced-crafting",
"ingredients": [ { "resourceId": 22, "amount": 1 }, { "resourceId": 4, "amount": 1 } ],
"products": [ { "resourceId": 21, "amount": 2 } ]
},
{
"id": 17, "name": "Solid Fuel", "category": "advanced-crafting", "craftTime": 4.0, "machineCategory": "advanced-crafting",
"ingredients": [ { "resourceId": 25, "amount": 1 } ],
"products": [ { "resourceId": 27, "amount": 1 } ]
},
{
"id": 18, "name": "Lubricant", "category": "advanced-crafting", "craftTime": 2.0, "machineCategory": "advanced-crafting",
"ingredients": [ { "resourceId": 25, "amount": 1 }, { "resourceId": 4, "amount": 1 } ],
"products": [ { "resourceId": 28, "amount": 1 } ]
},
{
"id": 19, "name": "Lubricant (Productivity)", "category": "advanced-crafting", "craftTime": 4.0, "moduleCategory": "advanced-crafting",
"ingredients": [ { "resourceId": 25, "amount": 2 }, { "resourceId": 4, "amount": 2 } ],
"products": [ { "resourceId": 28, "amount": 3 } ]
},
{
"id": 20, "name": "Plastic Bar", "category": "advanced-crafting", "craftTime": 4.0, "machineCategory": "advanced-crafting",
"ingredients": [ { "resourceId": 26, "amount": 1 }, { "resourceId": 21, "amount": 1 } ],
"products": [ { "resourceId": 29, "amount": 1 } ]
},
{
"id": 21, "name": "Plastic Bar (Productivity)", "category": "advanced-crafting", "craftTime": 8.0, "machineCategory": "advanced-crafting",
"ingredients": [ { "resourceId": 26, "amount": 3 }, { "resourceId": 21, "amount": 3 } ],
"products": [ { "resourceId": 29, "amount": 5 } ]
},
{
"id": 22, "name": "Red Science Pack", "category": "advanced-crafting", "craftTime": 6.0, "machineCategory": "advanced-crafting",
"ingredients": [ { "resourceId": 22, "amount": 1 }, { "resourceId": 4, "amount": 1 } ],
"products": [ { "resourceId": 30, "amount": 1 } ]
},
{
"id": 23, "name": "Green Science Pack", "category": "advanced-crafting", "craftTime": 6.0, "machineCategory": "advanced-crafting",
"ingredients": [ { "resourceId": 11, "amount": 1 }, { "resourceId": 10, "amount": 1 } ],
"products": [ { "resourceId": 31, "amount": 1 } ]
},
{
"id": 24, "name": "Blue Science Pack", "category": "advanced-crafting", "craftTime": 6.0, "machineCategory": "advanced-crafting",
"ingredients": [ { "resourceId": 11, "amount": 2 }, { "resourceId": 13, "amount": 1 } ],
"products": [ { "resourceId": 32, "amount": 1 } ]
},
{
"id": 25, "name": "Yellow Science Pack", "category": "advanced-crafting", "craftTime": 6.0, "machineCategory": "advanced-crafting",
"ingredients": [ { "resourceId": 14, "amount": 1 }, { "resourceId": 21, "amount": 1 } ],
"products": [ { "resourceId": 33, "amount": 1 } ]
},
{
"id": 26, "name": "Space Science Pack", "category": "advanced-crafting", "craftTime": 10.0, "machineCategory": "advanced-crafting",
"ingredients": [ { "resourceId": 30, "amount": 1 }, { "resourceId": 31, "amount": 1 }, { "resourceId": 32, "amount": 1 }, { "resourceId": 33, "amount": 1 } ],
"products": [ { "resourceId": 34, "amount": 1 } ]
}
]
}