Feature generation/1.19-0.3: Difference between revisions

From Voluminous Energy
 
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_beach
forge:is_water
Yes 1 55 77 10
saltpeter_ore_hot_sandy forge:is_hot
forge:is_sandy
minecraft:is_beach
forge:is_water
No 4 55 320 0


Feature configurations

Ore blob configuration data
Ore Targets Size Discard
Saltpeter forge:ore_bearing_ground/sand/colorless_sand
forge:ore_bearing_ground/sand/red_sand
33 0
Bauxite minecraft:stone_ore_replaceables
minecraft: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