Skip to content

Port OreSpawn 4.0.16 to Forge 1.16.5 - #291

Merged
SkyBlade1978 merged 9 commits into
MinecraftModDevelopmentMods:master-1.16.5from
SkyBlade1978:master-1.16.5
Sep 7, 2026
Merged

Port OreSpawn 4.0.16 to Forge 1.16.5#291
SkyBlade1978 merged 9 commits into
MinecraftModDevelopmentMods:master-1.16.5from
SkyBlade1978:master-1.16.5

Conversation

@SkyBlade1978

Copy link
Copy Markdown
Contributor

Summary

Ports the accepted OreSpawn 4.0.10–4.0.16 campaign to Forge 1.16.5 and
finishes at 4.0.16.116051.

This retains the existing 4.0.8 field-persistence work and the 4.0.9 natural
terrain-host repair, then adds:

  • actual-world-Y rock eligibility while preserving shifted Stable Layers
    formation identity;
  • dynamic biome matching through the active Forge 1.16 registry and
    BiomeDictionary, with stable RegistryKey<Biome> ore filters;
  • public sampler first-free/highest-occupied height alignment;
  • Ore-dimension exact and dictionary biome include/exclude builder/getter
    contracts using the existing provider JSON fields;
  • canonical namespaced and legacy unnamespaced geome editor support;
  • exposed one-layer Snow handling at top + 1, while preserving buried or
    authored Snow/Ice and unsafe source states;
  • direct quart-biome attribution shared by generated geology and public
    sampling, using BiomeContainer.getNoiseBiome and
    BiomeManager.getNoiseBiomeAtQuart with correct negative-coordinate floor
    semantics.

Forge 1.16 has no server-side GameTest harness class, so the 4.0.16
GameTest-ownership repair is recorded as target-inapplicable. The existing
ordinary dedicated-server benchmark auto-stop remains in place and is covered
by a real packaged benchmark.

Target-specific build and compatibility work

  • Preserves Minecraft 1.16.5, Forge 36.2.34, ForgeGradle 7.0.34, Gradle 9.6.1,
    Java 8 bytecode, pack format 6, API 1 and schemas 4/6/5.
  • Preserves reobfuscation and all six packaged access-transformer rules.
  • Keeps Forge 36's required duplicated merged bin/main MOD_CLASSES
    entries and production-only Eclipse launches.
  • Adds a cache-disabled Forge 36 bootstrap with Temurin 8.0.502+7 compilation
    and Java 17 Gradle execution. Empty-cache qualification confirmed that Forge
    36 needs no Mavenizer compatibility patch.
  • Updates version/report/Maven/workflow identities and all release
    documentation to 4.0.16.116051.

No API major, schema, registry ID, provider-field meaning, profile filename,
migration behavior or existing chunk is changed. Compatibility remains
[4.0.6,5.0.0).

Validation

  • Manually accepted exact candidate:
    a6bc7ee3f621b71b46025ee91b976d4d51e9b07a.
  • 127 tests across 33 suites; zero failures, errors or skips.
  • 28 JSON/mcmeta files parse; all 16 locales contain the same 357 keys.
  • All 21 documentation exports are byte-identical; Javadocs are warning-free.
  • Full offline release/audit lifecycle and ForgeGradle Eclipse isolation pass
    in both the primary checkout and a cold exact-commit worktree.
  • Empty Gradle-home online bootstrap and same-cache offline replay pass.
  • Exact reobfuscated Forge 36 packaged client and fresh/reload server pass,
    including world creation, rendering, editors, save/reopen and clean stop.
  • Surface, natural-host, height, dynamic-biome, exact/family ore, Snow/Ice,
    flowing-fluid and sampler-attribution regressions pass fresh and reload.
  • Strict runtime/crash scans found no rejected errors or fixture leakage.
  • Three matched 81-chunk medians: vanilla 17.575, Cyano 19.051 and Sky 16.599
    ms/chunk. Sky is +7.849% direct and -5.339% control-normalized versus the
    accepted 4.0.9 evidence, below the 10% investigation threshold.
  • Main jar SHA-256:
    B3D61A15F44845A5AB3A3869338BBA7E867F24F32275A03FAE28BC3B4029DE22.

This PR updates MMD source only. It does not create a tag, publish artifacts,
update issues or directly modify the MMD target branch.

@SkyBlade1978

Copy link
Copy Markdown
Contributor Author

CI follow-up is fixed in e5e75b032158bafe1695ff2b4c618a650f0fb9a4.

The failure was confined to hosted build setup: ForgeGradle 7 requested a Java 25 toolchain for Minecraft Mavenizer during configuration, while the 1.16 workflows installed and exposed only Java 8 and Java 17. The repair installs pinned Temurin 25 first, retains Temurin 8 for compilation/fixtures, installs Temurin 17 last so it remains JAVA_HOME, and passes all three paths with auto-detection/provisioning disabled. The workflow regression now checks every CI job independently for the complete JDK order and path list.

Verification:

  • local full offline lifecycle: 127 tests across 33 suites, fresh/reload surface gate, Javadocs, release-artifact audit and checksums passed;
  • disposable exact-commit empty-cache bootstrap rebuilt Forge 36 successfully, followed by a successful same-cache offline replay;
  • main, sources and Javadoc SHA-256 values remain byte-identical to the manually accepted candidate;
  • hosted Cold Forge bootstrap, Build, test, and audit, wrapper validation and CodeQL are all green.

This is build/CI documentation only: OreSpawn runtime code and version 4.0.16.116051 are unchanged.

@SkyBlade1978
SkyBlade1978 merged commit 203794d into MinecraftModDevelopmentMods:master-1.16.5 Sep 7, 2026
5 checks passed
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