Merge branch 'main' of github.com-quiqueck:paulevsGitch/BCLib
This commit is contained in:
commit
b6875f2c11
5 changed files with 107 additions and 1 deletions
|
@ -12,6 +12,7 @@ import net.fabricmc.api.Environment;
|
|||
import net.fabricmc.fabric.impl.biome.NetherBiomeData;
|
||||
import net.fabricmc.fabric.impl.biome.TheEndBiomeData;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.data.BuiltinRegistries;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
|
@ -27,8 +28,12 @@ import net.minecraft.world.level.biome.BiomeSource;
|
|||
import net.minecraft.world.level.biome.Biomes;
|
||||
import net.minecraft.world.level.biome.Climate;
|
||||
import net.minecraft.world.level.biome.MobSpawnSettings.SpawnerData;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.chunk.ChunkGenerator;
|
||||
import net.minecraft.world.level.levelgen.GenerationStep.Carving;
|
||||
import net.minecraft.world.level.levelgen.GenerationStep.Decoration;
|
||||
import net.minecraft.world.level.levelgen.NoiseBasedChunkGenerator;
|
||||
import net.minecraft.world.level.levelgen.NoiseGeneratorSettings;
|
||||
import net.minecraft.world.level.levelgen.SurfaceRules;
|
||||
import net.minecraft.world.level.levelgen.carver.ConfiguredWorldCarver;
|
||||
|
@ -39,6 +44,7 @@ import net.minecraft.world.level.levelgen.placement.PlacedFeature;
|
|||
import org.jetbrains.annotations.Nullable;
|
||||
import ru.bclib.BCLib;
|
||||
import ru.bclib.config.Configs;
|
||||
import ru.bclib.interfaces.SurfaceProvider;
|
||||
import ru.bclib.interfaces.SurfaceRuleProvider;
|
||||
import ru.bclib.mixin.common.BiomeGenerationSettingsAccessor;
|
||||
import ru.bclib.mixin.common.MobSpawnSettingsAccessor;
|
||||
|
@ -666,6 +672,22 @@ public class BiomeAPI {
|
|||
accessor.bcl_setSpawners(spawners);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get biome surface block. Can be used to get terrain material for features or other things.
|
||||
* @param pos {@link BlockPos} position to get block.
|
||||
* @param biome {@link Biome} to get block from.
|
||||
* @param level {@link ServerLevel} current server level.
|
||||
* @return {@link BlockState} with the biome surface or AIR if it fails.
|
||||
*/
|
||||
public static BlockState getBiomeSurfaceBlock(BlockPos pos, Biome biome, ServerLevel level) {
|
||||
ChunkGenerator generator = level.getChunkSource().getGenerator();
|
||||
if (generator instanceof NoiseBasedChunkGenerator) {
|
||||
SurfaceProvider provider = SurfaceProvider.class.cast(generator);
|
||||
return provider.getSurface(pos, biome, level);
|
||||
}
|
||||
return Blocks.AIR.defaultBlockState();
|
||||
}
|
||||
|
||||
private static void configureBiome(BCLBiome biome, float chance, float fog) {
|
||||
String group = biome.getID().getNamespace() + "." + biome.getID().getPath();
|
||||
chance = Configs.BIOMES_CONFIG.getFloat(group, "generation_chance", chance);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue