Skip to content

feat(worldgen): growing cycle — longer Nether, alternating OW gaps, per-period doubling - #561

Open
bh679 wants to merge 3 commits into
mainfrom
dev/growing-worldgen-cycle
Open

feat(worldgen): growing cycle — longer Nether, alternating OW gaps, per-period doubling#561
bh679 wants to merge 3 commits into
mainfrom
dev/growing-worldgen-cycle

Conversation

@bh679

@bh679 bh679 commented Jun 23, 2026

Copy link
Copy Markdown
Owner

What

Reworks the repeating worldgen cycle (OW → Nether → OW → Void → End islands → Void → repeat) so the journey escalates with distance:

  1. Nether core 400 → 5000 — the real-Nether stretch is now a real destination, matching the End-islands core.
  2. Asymmetric overworld gaps — 10000 before each Nether band (Void→Nether) and 5000 before each End band (Nether→Void), instead of one shared 10000.
  3. Per-period doubling — new disintegrationPeriodGrowthFactor (default 2). Each successive period multiplies the scaled segments (Nether core, void hold, End-islands core, both OW gaps) by the factor; the transition fades stay fixed. 1 = classic uniform cycle.

How

  • WorldGenCycle gains a period-aware locate() that walks the geometrically-growing periods (O(1) floorMod fast-path when growthFactor=1), with an int-safe clamp so scaled spans never overflow (growth is bounded by the world border anyway). All ramp methods evaluate against the per-period scaled spans; the pure NetherTransition/Disintegration ramp helpers are unchanged.
  • Config: split the OW-gap key into before-Nether / before-End, raised the Nether-core default, added the growth-factor knob (all with dev-test presets where applicable). Every consumer routes through WorldGenCycle.fromConfig(), so no caller signatures change.

Mod-impact

Worldgen change. 2 new COMMON config keys + 1 raised default. No new deps, mixins, registries, or packets.

Testing

  • ./gradlew build + full test suite — green (incl. merge with main fix(nether): collision-check ghast spawns so they don't suffocate in blocks #556–558).
  • WorldGenCycleTest extended: new asymmetric-gap and per-period-doubling tests (assert period-1 segments are 2× period-0 at the accumulated offsets); existing tests migrated to the 14-arg ctor with growthFactor=1 (identical behaviour) and still pass.
  • Manual (Gate 2): dev client launched clean; cycle layout confirmed in dev-test compact scale. Release 5k/10k figures verified via unit tests (dev builds auto-shrink by design).

🤖 Generated with Claude Code

bh679 and others added 3 commits June 23, 2026 21:37
…er-period doubling

- Nether core hold default 400 → 5000 (matches the End-islands core)
- Split the single overworld gap into asymmetric gaps: 10000 before the Nether
  band (Void→Nether) and 5000 before the End band (Nether→Void)
- New disintegrationPeriodGrowthFactor (default 2): each period multiplies the
  scaled segments (Nether core, void hold, End core, both OW gaps) by the factor,
  so the journey escalates with distance; fades stay fixed; 1 = classic uniform
- WorldGenCycle rewritten with a period-aware locate() (geometric growth, int-safe
  clamp); all ramp methods evaluate against the scaled per-period spans
- Tests migrated to the 14-arg ctor + new asymmetric-gap and doubling coverage

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant