Class Aquifer.NoiseBasedAquifer
java.lang.Object
net.minecraft.world.level.levelgen.Aquifer.NoiseBasedAquifer
- All Implemented Interfaces:
Aquifer
- Enclosing interface:
Aquifer
-
Nested Class Summary
Nested classes/interfaces inherited from interface Aquifer
Aquifer.FluidPicker, Aquifer.FluidStatus, Aquifer.NoiseBasedAquifer -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final @Nullable Aquifer.FluidStatus[]protected final long[]protected final DensityFunctionprivate final DensityFunctionprivate final DensityFunctionprivate static final doubleprivate final DensityFunctionprivate final DensityFunctionprivate final Aquifer.FluidPickerprotected final intprotected final intprotected final DensityFunctionprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprotected final intprotected final intprotected final intprivate final NoiseChunkprivate final PositionalRandomFactoryprivate static final intprivate static final intprivate static final intprotected booleanprivate final intprivate static final int[][]private static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final int -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivateNoiseBasedAquifer(NoiseChunk noiseChunk, ChunkPos pos, NoiseRouter router, PositionalRandomFactory positionalRandomFactory, int minBlockY, int yBlockSize, Aquifer.FluidPicker globalFluidPicker) -
Method Summary
Modifier and TypeMethodDescriptionprivate intadjustSurfaceLevel(int preliminarySurfaceLevel) private doublecalculatePressure(DensityFunction.FunctionContext context, org.apache.commons.lang3.mutable.MutableDouble barrierNoiseValue, Aquifer.FluidStatus statusClosest1, Aquifer.FluidStatus statusClosest2) private Aquifer.FluidStatuscomputeFluid(int x, int y, int z) private BlockStatecomputeFluidType(int x, int y, int z, Aquifer.FluidStatus globalFluid, int fluidSurfaceLevel) private intcomputeRandomizedFluidSurfaceLevel(int x, int y, int z, int lowestPreliminarySurface) @Nullable BlockStatecomputeSubstance(DensityFunction.FunctionContext context, double density) private intcomputeSurfaceLevel(int x, int y, int z, Aquifer.FluidStatus globalFluid, int lowestPreliminarySurface, boolean surfaceAtCenterIsUnderGlobalFluidLevel) private static intfromGridX(int gridCoord, int blockOffset) private static intfromGridY(int gridCoord, int blockOffset) private static intfromGridZ(int gridCoord, int blockOffset) private Aquifer.FluidStatusgetAquiferStatus(int index) protected intgetIndex(int gridX, int gridY, int gridZ) protected static intgridX(int blockCoord) protected static intgridY(int blockCoord) protected static intgridZ(int blockCoord) booleanprotected static doublesimilarity(int distanceSqr1, int distanceSqr2) Compares two distances (between aquifers).
-
Field Details
-
X_RANGE
private static final int X_RANGE- See Also:
-
Y_RANGE
private static final int Y_RANGE- See Also:
-
Z_RANGE
private static final int Z_RANGE- See Also:
-
X_SEPARATION
private static final int X_SEPARATION- See Also:
-
Y_SEPARATION
private static final int Y_SEPARATION- See Also:
-
Z_SEPARATION
private static final int Z_SEPARATION- See Also:
-
X_SPACING
private static final int X_SPACING- See Also:
-
Y_SPACING
private static final int Y_SPACING- See Also:
-
Z_SPACING
private static final int Z_SPACING- See Also:
-
X_SPACING_SHIFT
private static final int X_SPACING_SHIFT- See Also:
-
Z_SPACING_SHIFT
private static final int Z_SPACING_SHIFT- See Also:
-
MAX_REASONABLE_DISTANCE_TO_AQUIFER_CENTER
private static final int MAX_REASONABLE_DISTANCE_TO_AQUIFER_CENTER- See Also:
-
FLOWING_UPDATE_SIMULARITY
private static final double FLOWING_UPDATE_SIMULARITY -
SAMPLE_OFFSET_X
private static final int SAMPLE_OFFSET_X- See Also:
-
SAMPLE_OFFSET_Y
private static final int SAMPLE_OFFSET_Y- See Also:
-
SAMPLE_OFFSET_Z
private static final int SAMPLE_OFFSET_Z- See Also:
-
MIN_CELL_SAMPLE_X
private static final int MIN_CELL_SAMPLE_X- See Also:
-
MIN_CELL_SAMPLE_Y
private static final int MIN_CELL_SAMPLE_Y- See Also:
-
MIN_CELL_SAMPLE_Z
private static final int MIN_CELL_SAMPLE_Z- See Also:
-
MAX_CELL_SAMPLE_X
private static final int MAX_CELL_SAMPLE_X- See Also:
-
MAX_CELL_SAMPLE_Y
private static final int MAX_CELL_SAMPLE_Y- See Also:
-
MAX_CELL_SAMPLE_Z
private static final int MAX_CELL_SAMPLE_Z- See Also:
-
noiseChunk
-
barrierNoise
-
fluidLevelFloodednessNoise
-
fluidLevelSpreadNoise
-
lavaNoise
-
positionalRandomFactory
-
aquiferCache
-
aquiferLocationCache
protected final long[] aquiferLocationCache -
globalFluidPicker
-
erosion
-
depth
-
shouldScheduleFluidUpdate
protected boolean shouldScheduleFluidUpdate -
skipSamplingAboveY
private final int skipSamplingAboveY -
minGridX
protected final int minGridX -
minGridY
protected final int minGridY -
minGridZ
protected final int minGridZ -
gridSizeX
protected final int gridSizeX -
gridSizeZ
protected final int gridSizeZ -
SURFACE_SAMPLING_OFFSETS_IN_CHUNKS
private static final int[][] SURFACE_SAMPLING_OFFSETS_IN_CHUNKS
-
-
Constructor Details
-
NoiseBasedAquifer
private NoiseBasedAquifer(NoiseChunk noiseChunk, ChunkPos pos, NoiseRouter router, PositionalRandomFactory positionalRandomFactory, int minBlockY, int yBlockSize, Aquifer.FluidPicker globalFluidPicker)
-
-
Method Details
-
getIndex
protected int getIndex(int gridX, int gridY, int gridZ) - Returns:
- A cache index based on grid positions.
-
computeSubstance
public @Nullable BlockState computeSubstance(DensityFunction.FunctionContext context, double density) - Specified by:
computeSubstancein interfaceAquifer
-
shouldScheduleFluidUpdate
public boolean shouldScheduleFluidUpdate()- Specified by:
shouldScheduleFluidUpdatein interfaceAquifer
-
similarity
protected static double similarity(int distanceSqr1, int distanceSqr2) Compares two distances (between aquifers).- Returns:
1.0if the distances are equal, and returns smaller values the more different in absolute value the two distances are.
-
calculatePressure
private double calculatePressure(DensityFunction.FunctionContext context, org.apache.commons.lang3.mutable.MutableDouble barrierNoiseValue, Aquifer.FluidStatus statusClosest1, Aquifer.FluidStatus statusClosest2) -
gridX
protected static int gridX(int blockCoord) -
fromGridX
private static int fromGridX(int gridCoord, int blockOffset) -
gridY
protected static int gridY(int blockCoord) -
fromGridY
private static int fromGridY(int gridCoord, int blockOffset) -
gridZ
protected static int gridZ(int blockCoord) -
fromGridZ
private static int fromGridZ(int gridCoord, int blockOffset) -
getAquiferStatus
-
computeFluid
-
adjustSurfaceLevel
private int adjustSurfaceLevel(int preliminarySurfaceLevel) -
computeSurfaceLevel
private int computeSurfaceLevel(int x, int y, int z, Aquifer.FluidStatus globalFluid, int lowestPreliminarySurface, boolean surfaceAtCenterIsUnderGlobalFluidLevel) -
computeRandomizedFluidSurfaceLevel
private int computeRandomizedFluidSurfaceLevel(int x, int y, int z, int lowestPreliminarySurface) -
computeFluidType
private BlockState computeFluidType(int x, int y, int z, Aquifer.FluidStatus globalFluid, int fluidSurfaceLevel)
-