59 lines
3.1 KiB
Java
59 lines
3.1 KiB
Java
package net.minecraft.world.level.levelgen.feature.configurations;
|
|
|
|
import com.mojang.serialization.Codec;
|
|
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
|
import net.minecraft.util.valueproviders.FloatProvider;
|
|
import net.minecraft.util.valueproviders.IntProvider;
|
|
|
|
public class LargeDripstoneConfiguration implements FeatureConfiguration {
|
|
public static final Codec<LargeDripstoneConfiguration> CODEC = RecordCodecBuilder.create(
|
|
instance -> instance.group(
|
|
Codec.intRange(1, 512)
|
|
.fieldOf("floor_to_ceiling_search_range")
|
|
.orElse(30)
|
|
.forGetter(largeDripstoneConfiguration -> largeDripstoneConfiguration.floorToCeilingSearchRange),
|
|
IntProvider.codec(1, 60).fieldOf("column_radius").forGetter(largeDripstoneConfiguration -> largeDripstoneConfiguration.columnRadius),
|
|
FloatProvider.codec(0.0F, 20.0F).fieldOf("height_scale").forGetter(largeDripstoneConfiguration -> largeDripstoneConfiguration.heightScale),
|
|
Codec.floatRange(0.1F, 1.0F)
|
|
.fieldOf("max_column_radius_to_cave_height_ratio")
|
|
.forGetter(largeDripstoneConfiguration -> largeDripstoneConfiguration.maxColumnRadiusToCaveHeightRatio),
|
|
FloatProvider.codec(0.1F, 10.0F).fieldOf("stalactite_bluntness").forGetter(largeDripstoneConfiguration -> largeDripstoneConfiguration.stalactiteBluntness),
|
|
FloatProvider.codec(0.1F, 10.0F).fieldOf("stalagmite_bluntness").forGetter(largeDripstoneConfiguration -> largeDripstoneConfiguration.stalagmiteBluntness),
|
|
FloatProvider.codec(0.0F, 2.0F).fieldOf("wind_speed").forGetter(largeDripstoneConfiguration -> largeDripstoneConfiguration.windSpeed),
|
|
Codec.intRange(0, 100).fieldOf("min_radius_for_wind").forGetter(largeDripstoneConfiguration -> largeDripstoneConfiguration.minRadiusForWind),
|
|
Codec.floatRange(0.0F, 5.0F).fieldOf("min_bluntness_for_wind").forGetter(largeDripstoneConfiguration -> largeDripstoneConfiguration.minBluntnessForWind)
|
|
)
|
|
.apply(instance, LargeDripstoneConfiguration::new)
|
|
);
|
|
public final int floorToCeilingSearchRange;
|
|
public final IntProvider columnRadius;
|
|
public final FloatProvider heightScale;
|
|
public final float maxColumnRadiusToCaveHeightRatio;
|
|
public final FloatProvider stalactiteBluntness;
|
|
public final FloatProvider stalagmiteBluntness;
|
|
public final FloatProvider windSpeed;
|
|
public final int minRadiusForWind;
|
|
public final float minBluntnessForWind;
|
|
|
|
public LargeDripstoneConfiguration(
|
|
int floorToCeilingSearchRange,
|
|
IntProvider columnRadius,
|
|
FloatProvider heightScale,
|
|
float maxColumnRadiusToCaveHeightRatio,
|
|
FloatProvider stalactiteBluntness,
|
|
FloatProvider stalagmiteBluntness,
|
|
FloatProvider windSpeed,
|
|
int minRadiusForWind,
|
|
float minBluntnessForWind
|
|
) {
|
|
this.floorToCeilingSearchRange = floorToCeilingSearchRange;
|
|
this.columnRadius = columnRadius;
|
|
this.heightScale = heightScale;
|
|
this.maxColumnRadiusToCaveHeightRatio = maxColumnRadiusToCaveHeightRatio;
|
|
this.stalactiteBluntness = stalactiteBluntness;
|
|
this.stalagmiteBluntness = stalagmiteBluntness;
|
|
this.windSpeed = windSpeed;
|
|
this.minRadiusForWind = minRadiusForWind;
|
|
this.minBluntnessForWind = minBluntnessForWind;
|
|
}
|
|
}
|