Feature generation/1.19-0.3: Difference between revisions
| Line 160: | Line 160: | ||
! Discard | ! Discard | ||
|- | |- | ||
| Saltpeter | | [[Saltpeter]] | ||
| <code>forge:ore_bearing_ground/sand/colorless_sand</code><br><code>forge:ore_bearing_ground/sand/red_sand</code> | | <code>forge:ore_bearing_ground/sand/colorless_sand</code><br><code>forge:ore_bearing_ground/sand/red_sand</code> | ||
| 33 | | 33 | ||
| rowspan="4" | 0 | | rowspan="4" | 0 | ||
|- | |- | ||
| Bauxite | | [[Bauxite]] | ||
| rowspan="4" | <code>minecraft:stone_ore_replaceables</code><br><code>minecraft:deepslate_ore_replaceables</code> | | rowspan="4" | <code>minecraft:stone_ore_replaceables</code><br><code>minecraft:deepslate_ore_replaceables</code> | ||
| 8 | | 8 | ||
|- | |- | ||
| Cinnabar | | [[Cinnabar]] | ||
| rowspan="2" | 6 | | rowspan="2" | 6 | ||
|- | |- | ||
| Galena | | [[Galena]] | ||
|- | |- | ||
| Rutile | | [[Rutile]] | ||
| rowspan="2" | 4 | | rowspan="2" | 4 | ||
| 0.75 | | 0.75 | ||
|- | |- | ||
| Eighzo | | [[Eighzo]] | ||
| <code>forge:ore_bearing_ground/end_stone</code> | | <code>forge:ore_bearing_ground/end_stone</code> | ||
| 0.5 | | 0.5 | ||
Latest revision as of 22:37, 30 January 2023
In 1.19, due to the complete replacement of the BiomeLoadingEvent with Biome Modifiers, ore generation in particular has been reworked. There are also balancing changes compared to 1.18.2. For example, in 1.19-0.3 versions, Bauxite is typically more common than Cinnabar.
Technical background
1.19 continued to revamp how features work, increasingly making the system more dynamic and data-driven.
Biome modifiers
Biome Modifiers are a Forge-specific technology that is data-driven and can be used to circumvent registering PlacedFeatures. Because these are data-driven, they cannot be defined programmatically (aside from data generation, "datagen") as they are built into the JAR file as JSON files. Therefore, they are not configurable from the configuration toml file. To modify these, you must use a mod that can modify Biome Modifiers or datapack-style JSONs.
For 1.19 you can see the specific biome modifiers that add features here.
Biome data changes
The BiomeCategory enum has been removed in 1.19. While not surprising, it did mean that a lot of the biome filtering/selection code would have to be reworked when porting from 1.18. Tags are now used heavily to determine the type of biome that a feature should appear in. This should also improve the integration of features into modded biomes, assuming that the modded biomes are tagged correctly.
Voluminous Energy uses the aforementioned Biome Modifiers with a custom one called VEAndedMultiBiomeModifier, which has its own system for reading provided biome tags (whitelisted and blacklisted) and comparing those to a biome when it's loaded to determine whether or not a feature should be added to the biome.
Ore blob features
As per vanilla/Mojmaps terminology, an ore "blob" is a clustering of an ore block combined into a feature for world generation. Veins are not features and are part of the chunk generator and were introduced in 1.17.1.
Like vanilla, Voluminous Energy starting with 1.19 releases use multiple features for ores to spawn in ore blobs into the world. This allows the ore blobs to be more common in certain areas and provides the mod developers with finer grain control compared to broad single entries. For example, the same chance level for a smaller anchored range will appear to the player as more common as it's spread out across fewer Y-levels regardless of being spawned uniformly or triangularly.
Below is a table summary of Biome Modifier entries to add Voluminous Energy ore blob features into the world.
Biome modifiers
| JSON entry name | Whitelisted Biome tag | Blacklisted Biome tag | Triangular placement | Count | Bottom Anchor | Top Anchor | Rarity |
|---|---|---|---|---|---|---|---|
bauxite_ore_beach
|
minecraft:is_beach
|
None | Yes | 8 | 62 | 92 | 0 |
bauxite_ore_mountain_high
|
minecraft:is_mountain
|
forge:is_snowy
|
Yes | 9 | 208 | 256 | 0 |
bauxite_ore_mountain_medium
|
minecraft:is_mountain
|
forge:is_snowy
|
Yes | 6 | 144 | 196 | 0 |
bauxite_ore_mountain_low
|
minecraft:is_mountain
|
forge:is_snowy
|
Yes | 10 | 96 | 140 | 0 |
bauxite_ore_overworld
|
minecraft:is_overworld
|
None | No | 10 | 10 | 60 | 0 |
cinnabar_ore_beach
|
minecraft:is_beach
|
None | Yes | 2 | 62 | 92 | 1 |
cinnabar_ore_mountains
|
minecraft:is_mountain
|
None | Yes | 7 | 102 | 292 | 0 |
cinnabar_ore_overworld
|
minecraft:is_overworld
|
None | No | 9 | -64 | 320 | 0 |
eighzo_ore_end
|
minecraft:is_end
|
None | No | 3 | 10 | 36 | 0 |
galena_ore_overworld
|
minecraft:is_overworld
|
None | No | 3 | -48 | 12 | 0 |
rutile_ore_overworld
|
minecraft:is_overworld
|
None | No | 3 | -64 | -32 | 0 |
saltpeter_ore_badlands
|
minecraft:is_badlands
|
minecraft:is_beachforge:is_water
|
Yes | 1 | 55 | 77 | 10 |
saltpeter_ore_hot_sandy
|
forge:is_hotforge:is_sandy
|
minecraft:is_beachforge:is_water
|
No | 4 | 55 | 320 | 0 |
Feature configurations
| Ore | Targets | Size | Discard |
|---|---|---|---|
| Saltpeter | forge:ore_bearing_ground/sand/colorless_sandforge:ore_bearing_ground/sand/red_sand
|
33 | 0 |
| Bauxite | minecraft:stone_ore_replaceablesminecraft:deepslate_ore_replaceables
|
8 | |
| Cinnabar | 6 | ||
| Galena | |||
| Rutile | 4 | 0.75 | |
| Eighzo | forge:ore_bearing_ground/end_stone
|
0.5 |
Ore deposit features
Ore deposits are substantial groupings of a resource. The centre of an ore deposit will contain no stone and contain the raw block of the resource. The outside of the deposit usually contains the regular ore block as the world transitions to stone. If exposed to air, the ore blocks may not spawn but the raw blocks will.
Biome modifiers
| JSON entry name | Whitelisted Biome tag | Blacklisted Biome tag | Triangular placement | Count | Bottom Anchor | Top Anchor | Rarity |
|---|---|---|---|---|---|---|---|
bauxite_deposit_overworld
|
minecraft:is_overworld
|
None | Yes | 1 | 10 | 60 | 64 |
cinnabar_deposit_overworld
|
minecraft:is_overworld
|
None | Yes | 1 | -64 | 320 | 56 |
copper_deposit_overworld
|
minecraft:is_overworld
|
None | Yes | 1 | -16 | 112 | 26 |
eighzo_deposit_end
|
minecraft:is_end
|
None | Yes | 1 | 10 | 36 | 192 |
galena_deposit_overworld
|
minecraft:is_overworld
|
None | Yes | 1 | -48 | 12 | 78 |
gold_deposit_overworld
|
minecraft:is_overworld
|
None | Yes | 1 | -64 | -48 | 112 |
iron_deposit_overworld
|
minecraft:is_overworld
|
None | Yes | 1 | -64 | 74 | 56 |
Crude Oil features
| JSON entry name | Configured Feature | Whitelisted Biome tag | Blacklisted Biome tag | Triangular placement | Count | Bottom Anchor | Top Anchor | Rarity | Stepping |
|---|---|---|---|---|---|---|---|---|---|
oil_geyser_overworld
|
voluminousenergy:oil_geyser
|
minecraft:is_overworld
|
None | No | 1 | -64 | 320 | 144 | Fluid Springs |
surface_oil_lake_overworld
|
voluminousenergy:surface_oil_lake
|
minecraft:is_overworld
|
None | No | 1 | -64 | 320 | 208 | Lakes |
underground_oil_lakes_overworld
|
voluminousenergy:underground_oil_lake
|
minecraft:is_overworld
|
None | No | 1 | -64 | 320 | 5 | Lakes |
Miscellaneous features
| JSON entry name | Configured Feature | Whitelisted Biome tag | Blacklisted Biome tag | Triangular placement | Count | Bottom Anchor | Top Anchor | Rarity | Stepping |
|---|---|---|---|---|---|---|---|---|---|
rice_crop_overworld
|
voluminousenergy:rice_crop
|
minecraft:is_overworld
|
minecraft:is_ocean
|
No | 4 | 55 | 320 | 0 | Vegetal Decoration |