Minor changes for BetterEnd

This commit is contained in:
Frank 2021-12-07 18:10:08 +01:00
parent b6875f2c11
commit 38800dd38b
2 changed files with 39 additions and 12 deletions

View file

@ -1,5 +1,10 @@
package ru.bclib.api.biomes;
import java.util.ArrayList;
import java.util.List;
import java.util.function.BiFunction;
import java.util.function.Consumer;
import net.fabricmc.fabric.api.biome.v1.BiomeModifications;
import net.minecraft.core.particles.ParticleOptions;
import net.minecraft.data.BuiltinRegistries;
@ -34,11 +39,6 @@ import ru.bclib.world.biomes.BCLBiome;
import ru.bclib.world.features.BCLFeature;
import ru.bclib.world.structures.BCLStructureFeature;
import java.util.ArrayList;
import java.util.List;
import java.util.function.BiFunction;
import java.util.function.Consumer;
public class BCLBiomeBuilder {
private static final BCLBiomeBuilder INSTANCE = new BCLBiomeBuilder();
private static final SurfaceRules.ConditionSource SURFACE_NOISE = SurfaceRules.noiseCondition(Noises.SOUL_SAND_LAYER, -0.012);
@ -53,6 +53,7 @@ public class BCLBiomeBuilder {
private BiomeCategory category;
private float temperature;
private float fogDensity;
private float genChance;
private float downfall;
/**
@ -71,6 +72,7 @@ public class BCLBiomeBuilder {
INSTANCE.temperature = 1.0F;
INSTANCE.fogDensity = 1.0F;
INSTANCE.downfall = 1.0F;
INSTANCE.genChance = 1.0F;
return INSTANCE;
}
@ -195,6 +197,16 @@ public class BCLBiomeBuilder {
this.fogDensity = density;
return this;
}
/**
* Sets generation chance for this biome.
* @param genChance
* @return same {@link BCLBiomeBuilder}.
*/
public BCLBiomeBuilder genChance(float genChance) {
this.genChance = genChance;
return this;
}
/**
* Sets water color for the biome. Color is in ARGB int format.
@ -510,6 +522,18 @@ public class BCLBiomeBuilder {
.subsurface(subterrainBlock.defaultBlockState(), depth)
.build());
}
public BCLBiomeBuilder chancedSurface(SurfaceRules.RuleSource surfaceBlockA, SurfaceRules.RuleSource surfaceBlockB, SurfaceRules.RuleSource underBlock){
return surface(SurfaceRules.sequence(
SurfaceRules.ifTrue(SurfaceRules.ON_FLOOR,
SurfaceRules.sequence(
SurfaceRules.ifTrue(SurfaceRules.noiseCondition(Noises.SURFACE, -0.1818, 0.1818), surfaceBlockA),
surfaceBlockB
)
),
underBlock
));
}
/**
* Adds surface rule to this biome.
@ -541,7 +565,7 @@ public class BCLBiomeBuilder {
.temperature(temperature)
.downfall(downfall);
if (spawnSettings != null) {
if (getSpawns() != null) {
builder.mobSpawnSettings(spawnSettings.build());
}
@ -557,6 +581,7 @@ public class BCLBiomeBuilder {
res.attachStructures(structures);
res.setSurface(surfaceRule);
res.setFogDensity(fogDensity);
res.setGenChance(genChance);
return res;
}

View file

@ -1,7 +1,15 @@
package ru.bclib.world.biomes;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.function.Consumer;
import org.jetbrains.annotations.Nullable;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import net.minecraft.core.Registry;
import net.minecraft.data.BuiltinRegistries;
import net.minecraft.resources.ResourceKey;
@ -10,15 +18,9 @@ import net.minecraft.world.level.biome.Biome;
import net.minecraft.world.level.levelgen.SurfaceRules;
import net.minecraft.world.level.levelgen.SurfaceRules.RuleSource;
import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeature;
import org.jetbrains.annotations.Nullable;
import ru.bclib.api.biomes.BiomeAPI;
import ru.bclib.util.WeightedList;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.function.Consumer;
public class BCLBiome {
private final List<ConfiguredStructureFeature> structures = Lists.newArrayList();
private final WeightedList<BCLBiome> subbiomes = new WeightedList<>();