CLASS net/minecraft/class_6910 net/minecraft/world/gen/densityfunction/DensityFunction COMMENT Represents a function that maps from a block position to a density value. COMMENT COMMENT

It can be defined in code or in data packs by using pre-defined function types COMMENT like constant values or {@code add}, which in turn use other density functions COMMENT to define their operands. FIELD field_37057 CODEC Lcom/mojang/serialization/Codec; FIELD field_37058 REGISTRY_ENTRY_CODEC Lcom/mojang/serialization/Codec; FIELD field_37059 FUNCTION_CODEC Lcom/mojang/serialization/Codec; METHOD method_40464 sample (Lnet/minecraft/class_6910$class_6912;)D COMMENT {@return the density value for the given block position} ARG 1 pos COMMENT the block position METHOD method_40468 clamp (DD)Lnet/minecraft/class_6910; ARG 1 min ARG 3 max METHOD method_40469 apply (Lnet/minecraft/class_6910$class_6915;)Lnet/minecraft/class_6910; COMMENT Applies the visitor to every child density function and {@code this}. COMMENT COMMENT @return the resulting density function ARG 1 visitor COMMENT the visitor that should be applied to this density function METHOD method_40470 fill ([DLnet/minecraft/class_6910$class_6911;)V COMMENT Fills an array of densities using {@code this} density function and COMMENT the {@link EachApplier}. ARG 1 densities COMMENT the array of densities to fill, like a buffer or a cache ARG 2 applier COMMENT the {@code EachApplier} to use. It has a method for filling the array, as well as to get a block position for an index METHOD method_40471 abs ()Lnet/minecraft/class_6910; METHOD method_40472 square ()Lnet/minecraft/class_6910; METHOD method_40473 cube ()Lnet/minecraft/class_6910; METHOD method_40474 halfNegative ()Lnet/minecraft/class_6910; METHOD method_40475 quarterNegative ()Lnet/minecraft/class_6910; METHOD method_40476 squeeze ()Lnet/minecraft/class_6910; METHOD method_41061 (Lnet/minecraft/class_6910;)Lnet/minecraft/class_6880; ARG 0 function METHOD method_41062 getCodecHolder ()Lnet/minecraft/class_7243; CLASS class_6911 EachApplier COMMENT {@code EachApplier} is used to fill an array of densities, like a density buffer COMMENT or cache, with values from a density function. COMMENT COMMENT

This exists because {@link net.minecraft.world.gen.chunk.ChunkNoiseSampler ChunkNoiseSampler} COMMENT uses itself as the block position passed to density functions and needs to set the COMMENT position fields correctly before calling {@code sample}, as well as setting fields COMMENT for the implementation of caches. METHOD method_40477 at (I)Lnet/minecraft/class_6910$class_6912; COMMENT {@return the block position at a specific index of the density array} COMMENT COMMENT

If you want to manually iterate the array and call {@link DensityFunction#sample} COMMENT to set the individual elements in an implementation of {@link DensityFunction#fill}, COMMENT this method can be used to get the block position required for that. COMMENT COMMENT @implNote This can have side effects. ARG 1 index METHOD method_40478 fill ([DLnet/minecraft/class_6910;)V COMMENT Fills the density array using a density function. COMMENT COMMENT @implNote This can have side effects. ARG 1 densities ARG 2 densityFunction CLASS class_6912 NoisePos COMMENT {@code NoisePos} represents the absolute block position that is passed COMMENT to density functions. COMMENT COMMENT

It also has a way to get the currently active {@link Blender}. METHOD method_39327 getBlender ()Lnet/minecraft/class_6748; CLASS class_6913 Base COMMENT Represents a density function that has no other density functions as an argument, COMMENT and provides default implementations of {@link #fill} and COMMENT {@link #apply(DensityFunctionVisitor)} for this case. CLASS class_6914 UnblendedNoisePos CLASS class_6915 DensityFunctionVisitor METHOD apply (Lnet/minecraft/class_6910;)Lnet/minecraft/class_6910; ARG 1 densityFunction METHOD method_42358 apply (Lnet/minecraft/class_6910$class_7270;)Lnet/minecraft/class_6910$class_7270; ARG 1 noiseDensityFunction CLASS class_7270 Noise FIELD field_38248 CODEC Lcom/mojang/serialization/Codec; METHOD (Lnet/minecraft/class_6880;)V ARG 1 noiseData METHOD method_42355 getMaxValue ()D METHOD method_42356 sample (DDD)D ARG 1 x ARG 3 y ARG 5 z METHOD method_42357 (Lnet/minecraft/class_6880;)Lnet/minecraft/class_6910$class_7270; ARG 0 noiseData