Worldgen versus documentation
keybounce opened this issue ยท 7 comments
The documentation states the following:
"height" - This determines the base height for the biomes land generation. This is multiplied by 32 and added to 64. It takes a float argument, can be negative. The second argument is a float.
"heightVariation" - This determines how far the land generation will stray from the root height on average. Multiplied by 32 when generating. The second argument is a float.
For normal 1.7.10 worldgen, the "base height" value is multiplied by 16, not by 32; height variation seems to vary significantly more than 32 upwards (over 100 has been seen; rounding issues and lack of sightings makes the exact number uncertain), and less than 32 downwards (it definitely seems non-symmetrical). Does BiomeTweaker modify the worldgen/stonemap, or is this just an error of documentation?
Also, does Biome Tweaker actually do anything to the stone map, or does it just alter the biome data table? If another mod, such as mystcraft, contained a duplicate of the 1.7.10 stonemap generation and biome top alteration, would the biome tweaker data changes show up properly in such a world (NB: the stone block replacement would not be expected to show up in such an environment).
Thanks for bringing this to my attention. BiomeTweaker does not alter worldgen or the stonemap, besides height changes and ASM edits to filler block replacements.
For "height", where are you pulling that information from? The documentation inside BiomeGenBase states, "The median height from which this biome will be generated. Values between -2 and 2 loosely represent y=0 and y=128 respectively". That leads to a value of 32 blocks per integer step in rootHeight value.
For "heightVariation", I pulled that from a gut feeling after reading the generation code and experimenting with it. If it's incorrect, I'm not surprised. All that's documented is, "Determines the maximum degree of departure from the rootHeight of the biome, positive or negative. Low values result in flatter terrain, where high values create steep peaks and trenches".
To perform fillerBlock replacement, BiomeTweaker responds to the ReplaceBiomeBlocks event, called in ChunkProviderGenerate.replaceBlocksForBiome(), replacing occurrences of stone with the actualFillerBlock, and occurrences of water with the liquidFillerBlock. If Mystcraft calls that function or fires the event, BiomeTweaker's tweaks will take effect.
https://github.com/superckl/BiomeTweaker/blob/master/src/main/java/me/superckl/biometweaker/common/handler/BiomeEventHandler.java#L30
Odd.
First, you can look at the biomes known to have low variation: rivers, oceans, deep oceans. In a large biome world, rivers are wider, and you can see the "flat" bottom. Deep oceans, despite a -1.8, are only around 35 bottom. Etc.
You can also look at things like mesa plateau, which are high and "plains-ish". Again, the mapping is 16 per unit of base height.
The kicker is probably playing with COG. I put glass disks at the "scaleTo biome" level, and they were either way above the mountains, or way below the oceans/rivers. Changing the scale from 32 per to 16 per makes them a near perfect match (possibly off by one or so ... I need more flat biomes to test with, which is why I'm happy to see a mod like this one that lets me assign heights and variations).
The "off by one" might be related to sea level being 62 (or 63, depending on how you count), not 64 (as much of the older documentation seems to say)
As for variation, so far I'm going by extremes seen in the high (around 100-140, but both rounding and low sample sizes affect that) and low (around 40, but again, rounding and low sample size) offsets (those are per-unit of variation against observed block levels); if the ground offset is slightly off, then those numbers change significantly.
Note I said extremes; sample sizes are now where near good enough to even guess at averages, typicals, or 50th percentile.
EDIT: Yea, I think that would work with mystcraft, newest version supports strange vanilla/forge generations like mesa replacements, bryce toppers, etc.
I guess when they say "loosely", they are serious. I'll update the documentation to reflect that it's not a strict relationship, and that heightVariation is somewhat strange.
Thanks again. I'm going to close the issue. If you still have questions, you can continue commenting here.
Haha, that amount of non-standardization with biomes amuses me. I'm just going to link to this issue in the documentation.
And ...
Twilight forest generates at a rate of 8 blocks per base height unit, not the 16 of the overworld. It's not just lower sea level; all biomes are "flatter".
Haven't played with the height variation factor there yet.