CLASS net/minecraft/class_6568 net/minecraft/world/gen/chunk/ChunkNoiseSampler COMMENT {@code ChunkNoiseSampler} is responsible for sampling the density functions for COMMENT the cells in each chunk, managing caches and interpolators, the {@code Blender}, COMMENT and the block state samplers. COMMENT COMMENT

An instance of this is created for every chunk. FIELD field_34598 verticalCellCount I FIELD field_34599 horizontalCellCount I FIELD field_34600 minimumCellY I FIELD field_34601 startCellX I FIELD field_34602 startCellZ I FIELD field_34603 startBiomeX I FIELD field_34604 startBiomeZ I FIELD field_34605 interpolators Ljava/util/List; FIELD field_34613 aquiferSampler Lnet/minecraft/class_6350; FIELD field_35487 blender Lnet/minecraft/class_6748; FIELD field_35674 generationShapeConfig Lnet/minecraft/class_5309; FIELD field_36273 surfaceHeightEstimateCache Lit/unimi/dsi/fastutil/longs/Long2IntMap; FIELD field_36572 startBlockY I FIELD field_36573 startBlockZ I FIELD field_36574 cellBlockX I FIELD field_36575 cellBlockY I FIELD field_36576 cellBlockZ I FIELD field_36577 sampleUniqueIndex J FIELD field_36578 cacheOnceUniqueIndex J FIELD field_36579 index I FIELD field_36580 interpolationEachApplier Lnet/minecraft/class_6910$class_6911; COMMENT The implementation of {@code EachApplier} that is used for filling the COMMENT interpolators' density buffers. COMMENT COMMENT

It runs on a vertical column of cells, with the density being sampled at the first COMMENT block in the cell (cell-local coordinate {@code 0} for X, Y and Z). FIELD field_36581 caches Ljava/util/List; FIELD field_36582 actualDensityFunctionCache Ljava/util/Map; FIELD field_36583 initialDensityWithoutJaggedness Lnet/minecraft/class_6910; FIELD field_36584 blockStateSampler Lnet/minecraft/class_6568$class_6569; FIELD field_36585 cachedBlendAlphaDensityFunction Lnet/minecraft/class_6568$class_6951; FIELD field_36586 cachedBlendOffsetDensityFunction Lnet/minecraft/class_6568$class_6951; FIELD field_36587 lastBlendingColumnPos J FIELD field_36588 lastBlendingResult Lnet/minecraft/class_6748$class_6956; FIELD field_36589 horizontalBiomeEnd I FIELD field_36590 horizontalCellBlockCount I FIELD field_36591 verticalCellBlockCount I FIELD field_36592 isInInterpolationLoop Z FIELD field_36593 isSamplingForCaches Z FIELD field_36594 startBlockX I FIELD field_37113 beardifying Lnet/minecraft/class_6916$class_7050; METHOD (ILnet/minecraft/class_7138;IILnet/minecraft/class_5309;Lnet/minecraft/class_6916$class_7050;Lnet/minecraft/class_5284;Lnet/minecraft/class_6350$class_6565;Lnet/minecraft/class_6748;)V ARG 1 horizontalCellCount ARG 2 noiseConfig ARG 3 startBlockX ARG 4 startBlockZ ARG 5 generationShapeConfig ARG 6 beardifying ARG 7 chunkGeneratorSettings ARG 8 fluidLevelSampler ARG 9 blender METHOD method_38336 sampleStartDensity ()V COMMENT Samples the density values for all cells in the chunk with the first X coordinate. COMMENT This is done for every {@code interpolated} function. The resulting density values COMMENT will be stored in the interpolator's start density buffer. METHOD method_38337 interpolateY (ID)V COMMENT Interpolates density values on the Y axis for every interpolator. ARG 1 blockY COMMENT the absolute block Y coordinate ARG 2 deltaY COMMENT the cell-local block Y coordinate divided by the number of blocks in a cell vertically METHOD method_38338 (DLnet/minecraft/class_6568$class_5917;)V ARG 2 interpolator METHOD method_38339 sampleEndDensity (I)V COMMENT Samples the density values for all cells in the chunk with the given X coordinate. COMMENT This is done for every {@code interpolated} function. The resulting density values COMMENT will be stored in the interpolator's end density buffer. ARG 1 cellX COMMENT the chunk-local cell X coordinate METHOD method_38342 (IILnet/minecraft/class_6568$class_5917;)V ARG 2 interpolator METHOD method_38348 swapBuffers ()V COMMENT Swaps the start and end density buffers of every interpolator. METHOD method_38349 interpolateX (ID)V COMMENT Interpolates density values on the X axis for every interpolator. ARG 1 blockX COMMENT the absolute block X coordinate ARG 2 deltaX COMMENT the cell-local block X coordinate divided by the number of blocks in a cell horizontally METHOD method_38350 (DLnet/minecraft/class_6568$class_5917;)V ARG 2 interpolator METHOD method_38354 getAquiferSampler ()Lnet/minecraft/class_6350; METHOD method_38355 interpolateZ (ID)V COMMENT Interpolates density values on the Z axis for every interpolator. ARG 1 blockZ COMMENT the absolute block Z coordinate ARG 2 deltaZ COMMENT the cell-local block Z coordinate divided by the number of blocks in a cell vertically METHOD method_38356 (DLnet/minecraft/class_6568$class_5917;)V ARG 2 interpolator METHOD method_38362 onSampledCellCorners (II)V COMMENT This should be called when the start and end density buffers are COMMENT correctly filled for the current cell. COMMENT COMMENT

This starts the interpolators and fills the cell caches. COMMENT COMMENT @implNote For filling the cell caches, {@code this} is used as the COMMENT {@link net.minecraft.world.gen.densityfunction.DensityFunction.EachApplier EachApplier}. ARG 1 cellY COMMENT the chunk-local cell Y coordinate ARG 2 cellZ COMMENT the chunk-local cell Z coordinate METHOD method_39543 create (Lnet/minecraft/class_2791;Lnet/minecraft/class_7138;Lnet/minecraft/class_6916$class_7050;Lnet/minecraft/class_5284;Lnet/minecraft/class_6350$class_6565;Lnet/minecraft/class_6748;)Lnet/minecraft/class_6568; ARG 0 chunk ARG 1 noiseConfig ARG 2 beardifying ARG 3 chunkGeneratorSettings ARG 4 fluidLevelSampler ARG 5 blender METHOD method_39899 calculateSurfaceHeightEstimate (J)I ARG 1 columnPos METHOD method_39900 estimateSurfaceHeight (II)I ARG 1 blockX ARG 2 blockZ METHOD method_40529 getActualDensityFunction (Lnet/minecraft/class_6910;)Lnet/minecraft/class_6910; COMMENT {@return the actual density function for a given density function} COMMENT COMMENT

The classes in {@link DensityFunctionTypes} for caches, interpolators, COMMENT {@code blend_alpha} and {@code blend_offset} use simple stub implementations COMMENT that get replaced with their actual implementation by calling this method. ARG 1 function COMMENT the density function to get an actual implementation for METHOD method_40530 (Lnet/minecraft/class_6910;Lnet/minecraft/class_6910$class_6912;)Lnet/minecraft/class_2680; ARG 2 pos METHOD method_40531 createMultiNoiseSampler (Lnet/minecraft/class_6953;Ljava/util/List;)Lnet/minecraft/class_6544$class_6552; ARG 1 noiseRouter ARG 2 spawnTarget METHOD method_40532 sampleDensity (ZI)V COMMENT Samples the density values for all cells in the chunk with the given X coordinate. COMMENT This is done for every {@code interpolated} function. ARG 1 start COMMENT whether to store the results in the start or end density buffer ARG 2 cellX COMMENT the current cell X coordinate METHOD method_40533 getActualDensityFunctionImpl (Lnet/minecraft/class_6910;)Lnet/minecraft/class_6910; COMMENT {@return the actual density function for a given density function} ARG 1 function METHOD method_40535 calculateBlendResult (II)Lnet/minecraft/class_6748$class_6956; ARG 1 blockX ARG 2 blockZ METHOD method_40536 sampleBlockState ()Lnet/minecraft/class_2680; METHOD method_40537 stopInterpolation ()V COMMENT Stops the interpolation loop for this chunk. METHOD method_42361 getHorizontalCellBlockCount ()I METHOD method_42362 getVerticalCellBlockCount ()I CLASS class_5917 DensityInterpolator FIELD field_29227 startDensityBuffer [[D FIELD field_29228 endDensityBuffer [[D FIELD field_29233 x0y0z0 D FIELD field_29234 x0y0z1 D FIELD field_29235 x1y0z0 D FIELD field_29236 x1y0z1 D FIELD field_29237 x0y1z0 D FIELD field_29238 x0y1z1 D FIELD field_29239 x1y1z0 D FIELD field_29240 x1y1z1 D FIELD field_29241 x0z0 D FIELD field_29242 x1z0 D FIELD field_29243 x0z1 D FIELD field_29244 x1z1 D FIELD field_29245 z0 D FIELD field_29246 z1 D FIELD field_34623 delegate Lnet/minecraft/class_6910; FIELD field_34624 result D METHOD (Lnet/minecraft/class_6568;Lnet/minecraft/class_6910;)V ARG 2 delegate METHOD method_34287 interpolateY (D)V COMMENT Interpolates the eight densities on the Y axis. ARG 1 deltaY METHOD method_34289 onSampledCellCorners (II)V COMMENT Copies the densities of the eight corners of the current cell into their COMMENT respective fields. ARG 1 cellY COMMENT the cell's Y coordinate ARG 2 cellZ COMMENT the cell's chunk-local Z coordinate METHOD method_34291 swapBuffers ()V METHOD method_34292 interpolateX (D)V COMMENT Interpolates the four remaining densities on the X axis. ARG 1 deltaX METHOD method_34293 createBuffer (II)[[D ARG 1 sizeZ ARG 2 sizeX METHOD method_38363 interpolateZ (D)V COMMENT Interpolates the two remaining densities on the Z axis. ARG 1 deltaZ CLASS class_6569 BlockStateSampler METHOD calculate sample (Lnet/minecraft/class_6910$class_6912;)Lnet/minecraft/class_2680; ARG 1 pos CLASS class_6946 BlendAlphaDensityFunction CLASS class_6947 BlendOffsetDensityFunction CLASS class_6948 Cache2D FIELD field_36599 delegate Lnet/minecraft/class_6910; FIELD field_36600 lastSamplingColumnPos J FIELD field_36601 lastSamplingResult D METHOD (Lnet/minecraft/class_6910;)V ARG 1 delegate CLASS class_6949 CellCache FIELD field_36603 delegate Lnet/minecraft/class_6910; FIELD field_36604 cache [D METHOD (Lnet/minecraft/class_6568;Lnet/minecraft/class_6910;)V ARG 2 delegate CLASS class_6950 CacheOnce FIELD field_36606 delegate Lnet/minecraft/class_6910; FIELD field_36607 sampleUniqueIndex J FIELD field_36608 cacheOnceUniqueIndex J FIELD field_36609 lastSamplingResult D FIELD field_36610 cache [D METHOD (Lnet/minecraft/class_6568;Lnet/minecraft/class_6910;)V ARG 2 delegate CLASS class_6951 FlatCache FIELD field_36612 delegate Lnet/minecraft/class_6910; FIELD field_36613 cache [[D METHOD (Lnet/minecraft/class_6568;Lnet/minecraft/class_6910;Z)V ARG 2 delegate ARG 3 sample CLASS class_6952 ParentedNoiseType