Add Danger Ores - City Blocks map#1572
Conversation
A grid of isolated 4x4-chunk one-ore rooms (stone rooms rare) separated by paved rail corridors carrying a ready-made double-track network: continuous lines ring every room and cross at every corner. The rails are ordinary and minable -- a head start, not a constraint. Only rail infrastructure (rails, signals, train stops, power poles) and trains can be built on the corridors, and belts cannot span them: trains are the only inter-room logistics. The spawn room carries all four ores, one per quadrant, and rail techs come pre-researched with a starter train kit. Includes map preview. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
RedRafe
left a comment
There was a problem hiding this comment.
I've left a few suggestions. Additionally, have you tested this map by saving, closing, & reloading the savefile?
…eric ore count - Drop city_blocks_ores.lua in favor of the shared vanilla_ores config (rooms now iron/copper/coal; stone stays in the mixed ratios) - register(config) derives ore count from the passed config; optional room_ore_weights; spawn quadrants split whatever ores exist - Corridor rule now runs through the shared entity_placement_restriction module (type-based whitelist, ghosts/refunds handled there) - Drop redundant data.generated flag; Event.on_init(assign_ores) directly Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Thanks for the review! All four points addressed in the new commit:
Save/close/reload tested on the local scenario (both before and after these changes) — layout, room ores and corridor rules all persist correctly; the layout lives in Global so nothing regenerates. Also refreshed the preview image to match the current map. |
|
Thanks for applying the changes! Looks good
Happy to accept follow-up PRs if you want to. I see two issues hanging:
|
|
The follow-up is up as #1573 — it went a bit further than the two duplicates: a shared main-ores factory now holds the canonical tile sets and ratio mixes once, with nine configs derived from it (all byte-identical to before, one commit per config), plus the 4-ore minimum asserted at map creation in the Tetrominoes/Voronoi layouts and a test suite over all the ore configs. |
|
Good for me, I havent tested the map but seems to be working. Passing the PR into @grilledham 's hands for an accurate revision/approval after the last comment is addressed. Thanks @lex :D |
|
Note: once #1573 (the ore-config factory) merges, this branch will be refreshed against develop and CI re-run. No changes expected here — City Blocks consumes |
Per review: the corner roundabout is rebuilt from the user's Factorio 2.0 blueprint -- curved-rail-a/b and half-diagonal-rail, no legacy pieces. The 2.0 ring is 40x40 (vs the old 31x31) and overhangs a few tiles into each adjacent corridor chunk, so stamping is partitioned: every chunk stamps only the pieces inside itself (chunk-local writes, generation order can never matter), and corner-adjacent corridor chunks shorten their trunk to meet the ring's lane-end curves at +-23. The approach lanes still sit at center +-3, so the 13/19 trunk offsets are unchanged. Rails are listed before signals and every signal has a rail in its own chunk, so signals always attach no matter which chunk generates first. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
grilledham
left a comment
There was a problem hiding this comment.
LGTM. Thanks for the contribution.
Danger Ores – City Blocks
It's always been a little sad how little use trains get on danger ores maps — belts rule everything. Maybe this map changes that.
A grid of isolated one-ore rooms (4×4 chunks; stone rooms rare) separated by paved rail corridors carrying a ready-made double-track network: continuous lines ring every room and meet at a signalled roundabout on every corner. The rails are ordinary and minable — a head start, not a constraint. Only rail infrastructure (rails, signals, train stops, power poles) and trains can be built on the corridors, and belts cannot span them: trains are the only inter-room logistics.
Details
modules/city_blocks.luagenerates everything chunk-locally (no cross-chunk writes, generation-order independent); room ores assigned once on init (weighted, BFS-guaranteed all four ores adjacent to spawn).map_poll.lua(danger_ore_normal) and the danger ores changelog.Play it
return require 'map_gen.maps.danger_ores.presets.danger_ore_city_blocks'Testing
Layout harness (ore coverage/weighting/spawn guarantee) + playtested in-game through several iterations: corridors, roundabouts, signals, train routing, build restrictions.
🤖 Generated with Claude Code