Repository navigation
Port Yuoki Engines 1.3.0 to Factorio 2.1 - #3
Conversation
|
@pullfrog review |
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes: Reviewed all 10 changed files across both commits in the Engines 1.3.0 port to Factorio 2.1.20.
- Assembler APIs: Replaces the removed picture helper with deep copies of the official picture-table export and updates all three factory module inventory constants.
- Recipe and fuel categories: Converts active definitions to category arrays without changing their category values, including the Space Age green tubes' metallurgy-only restriction.
- Factory eligibility: Removes obsolete Space Age category names in favor of the shared standard categories, while retaining C1's base-only distinction and excluding specialist-only categories.
- Steam support: Raises the steam temperature ceiling to at least 1000 while preserving existing higher limits, recipe quantities, temperatures, and energy settings.
- Generator graphics and metadata: Moves the two generators' existing animations into the official north/east picture structure with two-direction behavior, and updates release metadata and the changelog.
Independent validation used official Factorio 2.1.20, build 87512, linux64 headless, with the actual merged Yuoki 1.3.0 parent at 18391b1. Base, Recycler + Quality, full Space Age, and Space Age with Quality disabled each passed --dump-data, fresh-map creation, and a 600-tick benchmark, all with --check-unused-prototype-data. Generated-data assertions checked factory categories and inventory indices, tube restrictions, steam settings, generator picture definitions, and both chemical fuels; git diff --check also passed. Validation script, configurations, and engine logs are attached.
Legacy unused-field warnings remain outside the changed behavior. This review does not establish graphical appearance, old-save migration, full production-chain balance, or unrelated third-party integration compatibility; the fresh-map benchmarks are startup and simulation smoke tests, not production-chain tests.
gpt-6.1-sol | 𝕏

Summary
Yuoki Engines 1.2.9 fails to start on Factorio 2.1 because it calls a removed assembler-picture helper, uses the removed module inventory constant and singular category fields, references obsolete Space Age recipe categories, and produces steam above the new vanilla maximum. This ports Engines 1.3.0 to Factorio 2.1.20 with source-level compatibility changes, including the two generator animation definitions.
defines.inventory.crafter_modulesfor all three factories.pictures.north/east.animationwithtwo_direction_only = true, preserving every sprite/frame/speed/offset and all power/fluid settings.Yuoki >= 1.3.0; add a concise changelog entry.This PR targets release/1.3.0 in jatmn/Yuoki-Engines-Factorio-2.0. Parent Yuoki changes remain separate in parent port PR #11.
Validation
The official latest-release endpoint reported experimental 2.1.20. Tested with a fresh official Factorio 2.1.20 (build 87512, linux64, headless) download, its versioned API schemas/changelog, isolated mod/write/save directories, and the actual Yuoki 1.3.0 port at ce7918f2b252f2d79ba86b9ae05d991e7af1f261. No temporary parent adapter was used.
Both Yuoki 1.3.0 and yi_engines 1.3.0 were confirmed loaded in every configuration:
Generated-data checks cover all three factory inventories/categories, representative ordinary and Space Age recipes, specialist-only exclusions, green tube restrictions, steam temperatures and quantities, and chemical fuel values (80 MJ and 2 MJ). Category substitutions were independently reversed against the baseline to prove no unrelated recipe or fuel changes. Independent sub-agent review and controller review covered the changed hunks;
git diff --checkpassed. The baseline with only version metadata updated reproduced the removedassembler2pipepicturesstartup failure.All configurations used
--check-unused-prototype-data. Startup succeeds despite remaining legacy unused-field warnings. The exact test commands, logs, generated dumps, and review evidence are retained in the local task workspace; no new test framework is added to the mod.Deferred work and limits
The two generator animation definitions have been migrated and no longer produce ignored-animation warnings. Other legacy unused fields remain deferred. The 50 MW generator retains its original single-frame east-facing image; new artwork is outside scope. Recipes, production amounts, energy settings, and quality effects/balance remain unchanged. No explicit product-probability conversion was needed.
Headless validation does not prove graphical correctness, old-save migration, full production-chain balance, or unrelated third-party integrations. Integration was tested against the actual parent implementation commit above; the parent release branch has not yet incorporated that port. Do not merge or publish this PR as part of this task.
Reviewed, tested, and pushed implementation commit: dd13f42.
Complete factory coverage comparison
Following review of the category-list reduction, compared every recipe in actual Factorio 2.0.77 data-stage dumps (Engines 1.2.9 at 7735c9 and parent Yuoki 1.2.23 at ccbd5bb) against the validated 2.1.20 dumps. No previously supported recipe loses category eligibility:
wood-processingtotree-seedrename, and supports the newlanding-pad-unloading-bayrecipe (508 total).The shorter lists preserve coverage because 2.1 recipes now carry multiple categories; for example electronic circuits retain
craftingalongsideelectromagnetics. This exhaustive comparison strengthens the original representative checks; no implementation amendment was needed.Generator animation validation
Repeated all four fresh-map + 600-tick + data-dump configurations on dd13f42 using the same actual parent port ce7918f2. Every check passed. Complete before/after
data.rawcomparison confirms the only differences from the prior tested commit are the two generators original animation tables moving into the new picture structure andtwo_direction_only = true; all other prototype data is identical. Independent review verified the official orientation mapping and all sprite-sheet frame dimensions.Graphical validation was attempted with the installed official Factorio 2.1.20 (build 87512, win64, Steam) using an isolated idle/running fixture. Fixture map creation passed, but the graphical invocation exited before rendering with
Steam requires game restart, restarting..., including on retry outside sandbox isolation. No screenshots were produced; an in-game visual check remains unperformed. All test process groups/jobs were stopped.Summary by Sourcery
Port Yuoki Engines to Factorio 2.1 while preserving its recipes, factory behavior, energy settings, and Space Age integration.
Bug Fixes:
Enhancements:
Documentation:
Tests: