Repository navigation
Steel: pig iron + blast furnace (fixes #249) - #258
Conversation
…etallurgy.rsi/pig_iron_full
…ects /metallurgy.rsi /pig_iron_half
…cts /metallurgy.rsi /pig_iron_one
- Fix broken YAML indentation in armor.yml, metallurgy.yml and the construction graph (blast furnace block had been pasted inside the StoneKiln graph and duplicated). - Add the PigIron material prototype so lathes can consume it, and give pig iron ingots PigIron composition instead of Iron. - Add the missing IngotPigIron lathe recipe (RawIron -> pig iron) used by the blast furnace pack; parent BlastFurnace on OreProcessor like the bloomery and stone kiln. - Rename SheetSheetCiv14 to SheetSteelCiv14 and give it an icon. - Register pig_iron_* states in ingots.rsi/meta.json. - Add materials-pig-iron locale string. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Progress — 2026-10-28 (step 1–2: diagnose + fix) Done:
Commands: Unverified: nothing compiled/linted yet; not tested in-game. |
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Pig iron material and ingot Resources/Prototypes/Civ14/Entities/Objects/Materials/materials_metals.yml, Resources/Locale/en-US/materials/materials.ftl |
The prototypes define pig iron material, ingot variants, and a stack with a maximum count of 30. The locale adds the “pig iron” label. |
Blast furnace construction and production Resources/Prototypes/Civ14/Recipes/Construction/metallurgy.yml, Resources/Prototypes/Civ14/Entities/Structures/Craft/metallurgy.yml |
The construction recipe builds a BlastFurnace using 25 Iron over 15 seconds. The furnace recipe produces one pig iron ingot from 100 RawIron in two seconds. |
Steel-sheet crafting Resources/Prototypes/Civ14/Entities/Structures/Craft/armor.yml |
The AnvilArmorMedieval recipe pack gains a recipe that uses 100 PigIron to produce SheetSteel1 in four seconds. |
Priority:
Estimated code review effort: 2 (Simple) | ~10 minutes
Change: Feature
Sequence Diagram(s)
sequenceDiagram
participant Player
participant BlastFurnace
participant RawIron
participant IngotPigIron1
participant SheetSteelCiv14
participant SheetSteel1
Player->>BlastFurnace: Build using the BlastFurnace construction recipe
Player->>BlastFurnace: Provide 100 RawIron
BlastFurnace->>IngotPigIron1: Produce one pig iron ingot
Player->>SheetSteelCiv14: Provide 100 PigIron
SheetSteelCiv14->>SheetSteel1: Produce one steel sheet
Merge Risk: 
Minimal · up to cf1c3
-
The pig-iron production chain is connected across materials, construction, furnace processing, and steel-sheet crafting, with no identified merge-blocking risk.
Pre-merge checks: 
4
-
Full details: Description check
-
Explanation
The pull request description directly matches the changeset. It describes the pig iron material, blast furnace, steel-sheet recipe, YAML fixes, missing prototypes, locale entry, and validation results.
-
Finishing Touches
-
🧪 Generate unit tests (beta)
-
- Commit to this branch
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
Raw iron enters the furnace bright,
Pig iron forms in two seconds right.
Stack the ingots, thirty to a pile,
Then craft a steel sheet with a medieval smile.
The anvil gets a new recipe—no need to fan the fire.
Comment @coderabbitai help to get the list of available commands.
|
Final handoff — 2026-10-28 (steps 3–4: build, lint, tests) Local (Windows, worktree, branch
GitHub CI on this PR: everything green except YAML Linter. It crashes with Unverified: not tested in-game (build blast furnace → smelt ore → pig iron → anvil → steel sheet). Balance is unchanged from #249's intent (100 RawIron → 1 pig iron; 100 PigIron → 1 steel sheet; furnace costs 25 iron, age 2+). Blockers: none for this PR's content. A green linter needs a separate master fix for Railing.rsi casing and the Gulag prototypes. |



Builds on and supersedes #249 (by @fruitnoodle) — keeps that PR's commits and sprites, then fixes what was broken. #249 is left open for the maintainer to close.
Changelog
Fixes on top of #249
armor.yml,Craft/metallurgy.ymlandRecipes/Construction/metallurgy.yml(bad indentation; the blast furnace graph was pasted inside the StoneKiln graph and duplicated with twoBlastFurnaceconstruction ids). This is what failed the YAML Linter.PigIronmaterial prototype (lathes consume materials, not stacks) and changed the ingot composition fromIrontoPigIron.IngotPigIronlathe recipe (RawIron 100 → 1 pig iron) referenced by the blast furnace pack; the furnace now parentsOreProcessorlike the bloomery/stone kiln.SheetSheetCiv14→SheetSteelCiv14and gave it an icon.pig_iron_one/half/fulliningots.rsi/meta.json.materials-pig-ironlocale string.Status
Railing.rsicasing (from Gulag map/gamemode #251); locally the linter also reports Gulag prototype/locale errors from master.dogbed), so it never checked these recipes.🤖 Generated with Claude Code
Current CI blocker - 2026-10-28
At head
cf1c3fd3bc56eb561ac373d064da4f7bb5298ddf, the YAML Linter failed. The log aborts on the case-sensitive/Textures/Civ14/Objects/Railing.rsireference. The shared repair is available for maintainer review in #259; the independently reviewed stacked repair in #256 and combined verification in #257 retain their own scope. Those passing trees do not turn this head's failed check into a pass. Existing source owners should coordinate the chosen integration route. In-game testing remains unverified; it is not an additional source-fix hold.Merged baseline reconciliation
Head
7ff96b8693f6e682084af7d60e2cca95bfea7991merges master8be6f015dc77dc3f57c5686ad2843e2f7001a97b(#259), preserving all steel feature files unchanged. Seven baseline Gulag contracts andgit diff --checkpassed locally. At this head YAML Linter, packaging, both schemas and CRLF passed. The legacy renderer workflow reported success but logged a swallowed exception for the obsolete Dev map; it does not establish successful rendering. #253 fixes that workflow. No in-game testing was performed in this reconciliation.Reconciled renderer pipeline
Head
9d22c2f069286bb8906c6ea5caa88c881fde862amerges masterba831b6f8addb16faaaa0b28c2a2467083b07911(#253) with no changes to the nine steel feature files. Seventeen inherited offline Gulag and renderer contracts andgit diff --checkpassed locally; they do not exercise steel recipes. On this head full YAML Linter, renderer and aggregate, packaging, both schemas and CRLF passed. The renderer verified missing-RSI failure exit 134, then normal exit 0 and an 8064×8064 PNG. These checks do not exercise the steel recipes. Previous CI results above apply to the earlier head.