Skip to content

Port OreSpawn 4.0.16 to Forge 1.15.2 - #293

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

Port OreSpawn 4.0.16 to Forge 1.15.2#293
SkyBlade1978 merged 7 commits into
MinecraftModDevelopmentMods:master-1.15.2from
SkyBlade1978:master-1.15.2

Conversation

@SkyBlade1978

Copy link
Copy Markdown
Contributor

Summary

Ports the accepted OreSpawn 4.0.16 campaign to Forge 1.15.2, finishing at 4.0.16.115021 while preserving Forge 31.2.57, MCP snapshot 20200514-1.15.1, Java 8 bytecode, pack format 5, API major 1, and schemas 4/6/5.

This retains the already accepted 4.0.8 field-persistence/build work and 4.0.9 natural-host ordering, then adds the applicable 4.0.10-4.0.16 fixes:

  • evaluates Stable Layers rock bounds against actual world Y while retaining shifted formation identity;
  • aligns public surface sampling with highest-occupied terrain;
  • adds immutable Ore-dimension biome ID and dictionary filter builder/getter contracts through the existing provider fields;
  • accepts canonical namespaced and legacy unnamespaced geome IDs;
  • converts exposed one-layer Snow at top + 1 while preserving buried/authored Snow and Ice;
  • shares Forge 1.15's direct 3D noise-biome lookup across generation and public sampling, including vertical biome boundaries;
  • gives explicit stable biome IDs precedence over object aliases and keeps hot generation paths allocation-free;
  • makes family-restricted ores use the selected dimension's geome configuration rather than the global Overworld configuration.

Forge 1.15 has a static biome registry, so the 4.0.11 dynamic-registry lifecycle change is intentionally inapplicable. It also has no server GameTest harness, so 4.0.16 records the shared release identity while retaining ordinary dedicated benchmark auto-stop.

Target-specific build and compatibility work

  • preserves ForgeGradle 7.0.34, Gradle 9.6.1 and Forge 31 reobfuscation;
  • runs Gradle with Java 17 and compiles all production/test/fixture code with the exact Java 8 toolchain;
  • qualifies the Forge 31 cold bootstrap with Java 25 available to Mavenizer, with no source-compatibility patch required;
  • retains the five target access-transformer rules, native matrix-free screens, direct screen navigation, translated captions and duplicated Eclipse bin/main discovery contract;
  • keeps API/schema/provider/profile/migration semantics and existing chunks unchanged;
  • keeps dependency compatibility at [4.0.6,5.0.0).

Validation

The exact manually accepted head is 6a6276f786e7b005a1f59d314724a7e97127e857.

  • 130 tests across 35 suites; zero failures, errors or skips;
  • 26 JSON/mcmeta files independently parsed;
  • exact parity across 16 locales with 357 keys each;
  • byte parity across all 21 exported documents;
  • full offline build, Javadocs, release audit/checksums and Eclipse launch/classpath verification;
  • repeated cold exact-commit lifecycle plus genuine empty-cache online bootstrap and same-cache offline replay;
  • exact reobfuscated Forge 31 packaged client/server fresh and reload tests;
  • long editor-field round trip, surface/natural-host/weather/biome-family/ore/fluid/migration qualification and clean runtime-log scans;
  • preferred-seed fresh/reload verification with stable profile hash and unchanged earlier chunks;
  • three matched Sky/Average benchmark repetitions with Cyano and vanilla controls; control-normalized overhead was 8.832%, below the 10% investigation threshold;
  • all three release jars audited for Java class major 52, metadata, reobfuscation, access transformers, docs/locales and zero fixture/oracle/test/world leakage.

This PR does not tag or publish a release and does not directly modify the MMD target branch.

@SkyBlade1978
SkyBlade1978 merged commit 552c636 into MinecraftModDevelopmentMods:master-1.15.2 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