Adapted StructureAPI for 1.19

This commit is contained in:
Frank 2022-05-13 19:58:15 +02:00
parent c7117fa180
commit b7a74e971b
8 changed files with 102 additions and 42 deletions

View file

@ -14,15 +14,9 @@ import net.minecraft.tags.TagKey;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.Mob;
import net.minecraft.world.level.biome.AmbientAdditionsSettings;
import net.minecraft.world.level.biome.AmbientMoodSettings;
import net.minecraft.world.level.biome.AmbientParticleSettings;
import net.minecraft.world.level.biome.Biome;
import net.minecraft.world.level.biome.*;
import net.minecraft.world.level.biome.Biome.BiomeBuilder;
import net.minecraft.world.level.biome.Biome.Precipitation;
import net.minecraft.world.level.biome.BiomeGenerationSettings;
import net.minecraft.world.level.biome.BiomeSpecialEffects;
import net.minecraft.world.level.biome.MobSpawnSettings;
import net.minecraft.world.level.biome.MobSpawnSettings.SpawnerData;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.state.BlockState;
@ -67,6 +61,8 @@ public class BCLBiomeBuilder {
private Precipitation precipitation;
private ResourceLocation biomeID;
private List<Climate.ParameterPoint> parameters = Lists.newArrayList();
//BiomeTags.IS_NETHER
private float temperature;
private float fogDensity;
@ -99,8 +95,14 @@ public class BCLBiomeBuilder {
INSTANCE.vertical = false;
INSTANCE.edge = null;
INSTANCE.carvers.clear();
INSTANCE.parameters.clear();
return INSTANCE;
}
public BCLBiomeBuilder addNetherClimateParamater(float temperature, float humidity){
parameters.add(Climate.parameters(temperature, humidity, 0,0,0,0,0));
return this;
}
/**
* Set biome {@link Precipitation}. Affect biome visual effects (rain, snow, none).
@ -695,6 +697,7 @@ public class BCLBiomeBuilder {
final T res = biomeConstructor.apply(biomeID, biome, settings);
res.attachStructures(structureTags);
res.setSurface(surfaceRule);
res.addClimateParameters(parameters);
//carvers.forEach(cfg -> BiomeAPI.addBiomeCarver(biome, cfg.second, cfg.first));
return res;

View file

@ -192,20 +192,9 @@ public class BiomeAPI {
public static BCLBiome registerNetherBiome(BCLBiome biome) {
registerBiome(biome);
NETHER_BIOME_PICKER.addBiome(biome);
Random random = new Random(biome.getID().hashCode());
//temperature, humidity, continentalness, erosion, depth, weirdness, offset
Climate.ParameterPoint parameters = Climate.parameters(
MHelper.randRange(-1.5F, 1.5F, random),
MHelper.randRange(-1.5F, 1.5F, random),
MHelper.randRange(-1.5F, 1.5F, random), //new in 1.18
MHelper.randRange(-1.5F, 1.5F, random), //new in 1.18
MHelper.randRange(-1.5F, 1.5F, random),
MHelper.randRange(-1.5F, 1.5F, random),
random.nextFloat()
);
ResourceKey<Biome> key = BiomeAPI.getBiomeKeyOrThrow(biome.getBiomeHolder());
NetherBiomeData.addNetherBiome(key, parameters);
biome.forEachClimateParameter(p -> NetherBiomeData.addNetherBiome(key, p));
return biome;
}