Biomes O' Plenty

Biomes O' Plenty

151M Downloads

A suggestion for BOPOverworldBiomeBuilder class

Viola-Siemens opened this issue ยท 3 comments

commented

Overview

I noticed that the constants in BOPOverworldBiomeBuilder you defined are custom numbers (although they equal to what TerraBlender defines). Could you please change them into ParameterUtils$xxxx.xxx instead of using Parameter.span directly?
For example, change BOPOverworldBiomeBuilder.mushroomFieldsContinentalness = Parameter.span(-1.2F, -1.05F); into BOPOverworldBiomeBuilder.mushroomFieldsContinentalness = ParameterUtils.Continentalness.MUSHROOM_FIELDS;, use this.addMidSlice(biomeRegistry, mapper, ParameterUtils.Weirdness.MID_SLICE_NORMAL_ASCENDING); instead of this.addMidSlice(biomeRegistry, mapper, Parameter.span(-1.0F, -0.93333334F)); in addInlandBiomes, change DEFAULT_DEPTH_RANGE = Parameter.span(0.2F, 0.9F); into DEFAULT_DEPTH_RANGE = ParameterUtils.Depth.UNDERGROUND;, etc.
Some other mods based on TerraBlender may use mixin to modify worldgen constants. The biome generation of BOP will cause problems currently, such as generating villages on the surface of deep ocean or trees under water.

Why would this feature be useful?

Some other mods based on TerraBlender may use mixin to modify worldgen constants. The current biome generation of BOP will cause problems such as generating villages on the surface of deep ocean or trees under water.

commented

ParameterUtils in TerraBlender is only provided as a convenient reference for the values used by Mojang and is not designed for modification in the way you describe. Mods using TerraBlender are not constrained to using the parameters provided in ParameterUtils and I've seen many mods using their own custom parameters. BOPOverworldBiomeBuilder is structurally the same asOverworldBiomeBuilder which is why it is laid out in the way it is. If villages are generating on the surface of the deep ocean with BOP's own parameters that is a separate issue (though to my knowledge that isn't the case).

commented

Well, maybe I didn't make it clear. Some mods modified the parameters range of the biome builder, for example, make continentalness in range (-1.05, -0.8) for mushroom fields, (-0.8, 0.3) for deep ocean, (0.3, 0.6) for ocean and (0.6, 1.0) for landmasses, to generate broader ocean and less landmasses. These mods can modify constants defined in OverworldBiomeBuilder class, and maybe modify those defined in ParameterUtils class. But if a mod defines its own constants, it can hardly be compatible with those mods. So it's just a way to improve compatibility with lower costs. Otherwise, another mod is needed to mixin the mods that defines its own constants to make sure all mods can work together without crashes or unexpected problems.
Just a suggestion, thanks for answering.

commented

There's no guarantee that other biome mods are going to use the constants that TerraBlender provides, and another mod changing those constants could easily lead to issues being reported under TerraBlender (Since the average person likely isn't going to realize it's being done by your mod, should any issues arise). So, an external compatibility mod that uses the specific parameters you're changing sounds like your best bet.