74 lines
4 KiB
Java
74 lines
4 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 DripstoneClusterConfiguration implements FeatureConfiguration {
|
|
public static final Codec<DripstoneClusterConfiguration> CODEC = RecordCodecBuilder.create(
|
|
instance -> instance.group(
|
|
Codec.intRange(1, 512)
|
|
.fieldOf("floor_to_ceiling_search_range")
|
|
.forGetter(dripstoneClusterConfiguration -> dripstoneClusterConfiguration.floorToCeilingSearchRange),
|
|
IntProvider.codec(1, 128).fieldOf("height").forGetter(dripstoneClusterConfiguration -> dripstoneClusterConfiguration.height),
|
|
IntProvider.codec(1, 128).fieldOf("radius").forGetter(dripstoneClusterConfiguration -> dripstoneClusterConfiguration.radius),
|
|
Codec.intRange(0, 64)
|
|
.fieldOf("max_stalagmite_stalactite_height_diff")
|
|
.forGetter(dripstoneClusterConfiguration -> dripstoneClusterConfiguration.maxStalagmiteStalactiteHeightDiff),
|
|
Codec.intRange(1, 64).fieldOf("height_deviation").forGetter(dripstoneClusterConfiguration -> dripstoneClusterConfiguration.heightDeviation),
|
|
IntProvider.codec(0, 128)
|
|
.fieldOf("dripstone_block_layer_thickness")
|
|
.forGetter(dripstoneClusterConfiguration -> dripstoneClusterConfiguration.dripstoneBlockLayerThickness),
|
|
FloatProvider.codec(0.0F, 2.0F).fieldOf("density").forGetter(dripstoneClusterConfiguration -> dripstoneClusterConfiguration.density),
|
|
FloatProvider.codec(0.0F, 2.0F).fieldOf("wetness").forGetter(dripstoneClusterConfiguration -> dripstoneClusterConfiguration.wetness),
|
|
Codec.floatRange(0.0F, 1.0F)
|
|
.fieldOf("chance_of_dripstone_column_at_max_distance_from_center")
|
|
.forGetter(dripstoneClusterConfiguration -> dripstoneClusterConfiguration.chanceOfDripstoneColumnAtMaxDistanceFromCenter),
|
|
Codec.intRange(1, 64)
|
|
.fieldOf("max_distance_from_edge_affecting_chance_of_dripstone_column")
|
|
.forGetter(dripstoneClusterConfiguration -> dripstoneClusterConfiguration.maxDistanceFromEdgeAffectingChanceOfDripstoneColumn),
|
|
Codec.intRange(1, 64)
|
|
.fieldOf("max_distance_from_center_affecting_height_bias")
|
|
.forGetter(dripstoneClusterConfiguration -> dripstoneClusterConfiguration.maxDistanceFromCenterAffectingHeightBias)
|
|
)
|
|
.apply(instance, DripstoneClusterConfiguration::new)
|
|
);
|
|
public final int floorToCeilingSearchRange;
|
|
public final IntProvider height;
|
|
public final IntProvider radius;
|
|
public final int maxStalagmiteStalactiteHeightDiff;
|
|
public final int heightDeviation;
|
|
public final IntProvider dripstoneBlockLayerThickness;
|
|
public final FloatProvider density;
|
|
public final FloatProvider wetness;
|
|
public final float chanceOfDripstoneColumnAtMaxDistanceFromCenter;
|
|
public final int maxDistanceFromEdgeAffectingChanceOfDripstoneColumn;
|
|
public final int maxDistanceFromCenterAffectingHeightBias;
|
|
|
|
public DripstoneClusterConfiguration(
|
|
int floorToCeilingSearchRange,
|
|
IntProvider height,
|
|
IntProvider radius,
|
|
int maxStalagmiteStalactiteHeightDiff,
|
|
int heightDeviation,
|
|
IntProvider dripstoneBlockLayerThickness,
|
|
FloatProvider density,
|
|
FloatProvider wetness,
|
|
float chanceOfDripstoneColumnAtMaxDistanceFromCenter,
|
|
int maxDistanceFromEdgeAffectingChanceOfDripstoneColumn,
|
|
int maxDistanceFromCenterAffectingHeightBias
|
|
) {
|
|
this.floorToCeilingSearchRange = floorToCeilingSearchRange;
|
|
this.height = height;
|
|
this.radius = radius;
|
|
this.maxStalagmiteStalactiteHeightDiff = maxStalagmiteStalactiteHeightDiff;
|
|
this.heightDeviation = heightDeviation;
|
|
this.dripstoneBlockLayerThickness = dripstoneBlockLayerThickness;
|
|
this.density = density;
|
|
this.wetness = wetness;
|
|
this.chanceOfDripstoneColumnAtMaxDistanceFromCenter = chanceOfDripstoneColumnAtMaxDistanceFromCenter;
|
|
this.maxDistanceFromEdgeAffectingChanceOfDripstoneColumn = maxDistanceFromEdgeAffectingChanceOfDripstoneColumn;
|
|
this.maxDistanceFromCenterAffectingHeightBias = maxDistanceFromCenterAffectingHeightBias;
|
|
}
|
|
}
|