Skip to content

Commit 7202b00

Browse files
authored
Fix ore generation and upgrades on 1.12.2
Bring the 4.1.6 ore and upgrade fixes to Forge 1.12.2.
2 parents 72205b9 + f4bd19b commit 7202b00

32 files changed

Lines changed: 923 additions & 713 deletions

‎.github/workflows/ci.yml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,9 @@ jobs:
126126
if-no-files-found: error
127127
retention-days: 30
128128
path: |
129-
build/libs/OreSpawn-4.1.3.112021.jar
130-
build/libs/OreSpawn-4.1.3.112021-sources.jar
131-
build/libs/OreSpawn-4.1.3.112021-javadoc.jar
129+
build/libs/OreSpawn-4.1.6.112021.jar
130+
build/libs/OreSpawn-4.1.6.112021-sources.jar
131+
build/libs/OreSpawn-4.1.6.112021-javadoc.jar
132132
build/release/SHA256SUMS
133133
CHANGELOG.txt
134134

‎CHANGELOG.txt‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
Version 4.1.6.112021
2+
3+
* Let Java providers select an exact ore host, such as plain stone without
4+
granite. Whole-block selectors still work as before.
5+
* Keep imported ore rules and saved choices when moving a world from 1.10.2
6+
or 1.11.2. Back up the profile before removing an untouched duplicate and
7+
leave edited rules for review.
8+
* Choose sulfur and lithium defaults after all mods have loaded so Base
9+
Electric can share the same veins. Existing worlds keep their choices.
10+
* Use the correct Austrian German locale and give Pirate Speak its own menu
11+
and guide text.
12+
113
Version 4.1.3.112021
214

315
* Apply hybrid and replacement background limits to imported built-in ore

‎README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ It gives mods and modpacks one place to configure ores, deposit shapes, optional
1010
rock strata and geomes, provider-owned underground fluid deposits, biome
1111
palettes and world materials, flat bedrock, and bounded ore retrogen.
1212

13-
This branch builds target-qualified version `4.1.3.112021`: the OreSpawn 4.1.3
13+
This branch builds target-qualified version `4.1.6.112021`: the OreSpawn 4.1.6
1414
feature set for Minecraft 1.12.2 and Forge. It adds stable generation identity,
1515
non-loading geology sampling, per-resource background control, existing-world
1616
provider merge policy, an Ore Sources arbiter for equivalent provider ores, a

‎docs/API.md‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,12 @@ exclusions. These methods work on both explicit `.dimension(...)` rules and
9898
`.dimensionSelector(...)` fallbacks; built definitions and their returned
9999
filter sets are immutable.
100100

101+
Use `.hostState(block, metadata)` to select one legacy ore host variant, or
102+
`.hostState(block, metadata, weight)` to give it a replacement weight.
103+
For example, `.hostState(new ResourceLocation("minecraft", "stone"), 0)`
104+
accepts plain stone without accepting granite or diorite. The existing
105+
`.hostBlock(...)` method still accepts every variant of a block.
106+
101107
Create one `BiomeRegistrar` during normal mod construction. It attaches to the
102108
calling mod's event bus and defers biome factories until Forge's biome registry
103109
event. `OreSpawnBiomes.copyAndRegister` clones a known biome without adding a

‎docs/CONFIGURATION.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ world. Restart after editing JSON by hand.
4444
| `flat_bedrock` | object | Opt-in flat bedrock controls |
4545
| `worldgen_aliases` | ID-to-ID object | Replacement output aliases resolved while baking |
4646

47+
Forge 1.12.2 applies the same gold settings to the normal and extra Mesa
48+
gold passes. With vanilla ore management off and suppression disabled, both
49+
passes keep their normal generation.
50+
4751
## Enumerated Values
4852

4953
| Setting | Accepted values |

‎docs/MIGRATION.md‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,16 @@ deterministic machine-readable detail.
6969

7070
## Provider-Aware OS3 Imports
7171

72+
If you move a world with an OreSpawn 1 import already saved by OreSpawn 4
73+
on 1.10.2 or 1.11.2, its rule ID and settings are kept even without the
74+
converted provider file. If an older build added a
75+
second rule, OreSpawn removes it only when the saved rule still matches the
76+
provider default and no custom ore-source selection depends on it. The
77+
original profile is backed up before that repair. Edited or ambiguous
78+
overlaps are left in place and listed under `legacy_ore_review` in the
79+
provider's saved manifest and reported in the log. This does not change
80+
ore blocks in chunks already generated.
81+
7282
When an OreSpawn 2/3 file is named for an installed provider, the migrator now
7383
compares each converted primary output with that provider's ore declarations.
7484
A unique output match is written under the provider's stable rule ID, allowing

‎docs/PROVIDERS.md‎

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -120,11 +120,12 @@ unambiguous. NetherMetals and EndMetals stay in their respective dimension
120120
domains. DenseMetals is enrichment, not an interchangeable output, and
121121
BaseSciences has no ordinary ore-source role.
122122

123-
Reviewed fresh-world conflicts start Balanced with all eligible output blocks.
124-
Mineralogy, then BaseMinerals, then ElectricAdvantage is the initial placement
125-
and Single-mode priority for sulfur; BaseMinerals, then ElectricAdvantage is the
126-
corresponding lithium priority. No other conflict is automatically consolidated
127-
without an explicit catalog row. Exact Ore Dictionary `oreX` inference recognizes the curated
123+
Once mods have finished registering their ores, reviewed fresh-world conflicts
124+
start Balanced with all eligible output blocks. Sulfur prefers Mineralogy,
125+
then Base Minerals, then Base Electric (`baseelectric` or the older
126+
`electricadvantage` ID) for placement. Lithium prefers Base Minerals, then
127+
Base Electric. Existing choices are kept. Other conflicts need an explicit
128+
catalog entry for automatic consolidation. Exact Ore Dictionary `oreX` inference recognizes the curated
128129
sulfur/sulphur and aluminum/aluminium aliases but deliberately keeps Niter and
129130
Saltpeter distinct. Multiple unrelated entries are marked for review rather
130131
than fuzzy-matched from block names.

‎docs/VERSIONS.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ Examples:
5252
| Minecraft | Loader | Target | Example full OreSpawn version |
5353
| --- | --- | ---: | --- |
5454
| 1.10.2 | Forge | `110021` | `4.0.6.110021` |
55-
| 1.12.2 | Forge | `112021` | `4.1.3.112021` |
55+
| 1.12.2 | Forge | `112021` | `4.1.6.112021` |
5656
| 1.13.2 | Forge | `113021` | `4.0.6.113021` |
5757
| 1.20.6 | Forge | `120061` | `4.0.6.120061` |
5858
| 1.21.11 | Forge | `121111` | `4.0.6.121111` |

‎gradle.properties‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ mod_vendor=Minecraft Mod Development
3030
mod_license=LGPL-2.1
3131
mod_license_name=GNU Lesser General Public License, Version 2.1
3232
mod_license_url=https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt
33-
mod_version=4.1.3.112021
33+
mod_version=4.1.6.112021
3434
mod_group=zone.moddev.mc.orespawn
3535
mod_authors=SkyBlade1978, dshadowwolf, the MMD Team
3636
mod_description=Configurable, provider-driven terrain, ore, and deposit generation.

‎gradle/release/artifacts.gradle‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ tasks.register('verifyReleaseConfiguration') {
8181
description = 'Validates the target-qualified release, API, schemas, reports, and publishing identity.'
8282

8383
doLast {
84-
if (project.mod_version != '4.1.3.112021'
84+
if (project.mod_version != '4.1.6.112021'
8585
|| project.mod_group != expectedMavenGroup) {
8686
throw new GradleException("Unexpected OreSpawn release version: ${project.mod_version}")
8787
}
@@ -108,8 +108,8 @@ tasks.register('verifyReleaseConfiguration') {
108108
'src/main/java/zone/moddev/mc/orespawn/worldgen/LegacyOs3ProfileMigration.java',
109109
'README.md', 'CHANGELOG.txt'
110110
].each { path ->
111-
if (!file(path).getText('UTF-8').contains('4.1.3.112021')) {
112-
throw new GradleException("Authoritative release location does not contain 4.1.3.112021: ${path}")
111+
if (!file(path).getText('UTF-8').contains('4.1.6.112021')) {
112+
throw new GradleException("Authoritative release location does not contain 4.1.6.112021: ${path}")
113113
}
114114
}
115115
if (!file('docs/API.md').getText('UTF-8').contains('orespawn@[4.0.6,5.0.0)')) {

0 commit comments

Comments
 (0)