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 net.minecraft.world.level.levelgen.Aquifer
Aquifer.FluidPicker, Aquifer.FluidStatus, Aquifer.NoiseBasedAquifer
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final Aquifer.FluidStatus[]
protected final long[]
protected final DensityFunction
private final DensityFunction
private final DensityFunction
private static final double
private final DensityFunction
private final DensityFunction
private final Aquifer.FluidPicker
protected final int
protected final int
protected final DensityFunction
private static final int
protected final int
protected final int
protected final int
private final NoiseChunk
private final PositionalRandomFactory
protected boolean
private static final int[][]
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
-
Constructor Summary
ConstructorsConstructorDescriptionNoiseBasedAquifer
(NoiseChunk pNoiseChunk, ChunkPos pChunkPos, NoiseRouter pNoiseRouter, PositionalRandomFactory pPositionalRandomFactory, int pMinY, int pHeight, Aquifer.FluidPicker pGlobalFluidPicker) -
Method Summary
Modifier and TypeMethodDescriptionprivate double
calculatePressure
(DensityFunction.FunctionContext p_208189_, org.apache.commons.lang3.mutable.MutableDouble p_208190_, Aquifer.FluidStatus p_208191_, Aquifer.FluidStatus p_208192_) private Aquifer.FluidStatus
computeFluid
(int pX, int pY, int pZ) private BlockState
computeFluidType
(int pX, int pY, int pZ, Aquifer.FluidStatus pFluidStatus, int pSurfaceLevel) private int
computeRandomizedFluidSurfaceLevel
(int pX, int pY, int pZ, int pMaxSurfaceLevel) computeSubstance
(DensityFunction.FunctionContext pContext, double pSubstance) private int
computeSurfaceLevel
(int pX, int pY, int pZ, Aquifer.FluidStatus pFluidStatus, int pMaxSurfaceLevel, boolean pFluidPresent) private Aquifer.FluidStatus
getAquiferStatus
(long pPackedPos) Calculates the aquifer at a given location.protected int
getIndex
(int pGridX, int pGridY, int pGridZ) protected int
gridX
(int pX) protected int
gridY
(int pY) protected int
gridZ
(int pZ) boolean
protected static double
similarity
(int pFirstDistance, int pSecondDistance) 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:
-
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 -
noiseChunk
-
barrierNoise
-
fluidLevelFloodednessNoise
-
fluidLevelSpreadNoise
-
lavaNoise
-
positionalRandomFactory
-
aquiferCache
-
aquiferLocationCache
protected final long[] aquiferLocationCache -
globalFluidPicker
-
erosion
-
depth
-
shouldScheduleFluidUpdate
protected boolean shouldScheduleFluidUpdate -
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
NoiseBasedAquifer(NoiseChunk pNoiseChunk, ChunkPos pChunkPos, NoiseRouter pNoiseRouter, PositionalRandomFactory pPositionalRandomFactory, int pMinY, int pHeight, Aquifer.FluidPicker pGlobalFluidPicker)
-
-
Method Details
-
getIndex
protected int getIndex(int pGridX, int pGridY, int pGridZ) - Returns:
- A cache index based on grid positions.
-
computeSubstance
@Nullable public BlockState computeSubstance(DensityFunction.FunctionContext pContext, double pSubstance) - Specified by:
computeSubstance
in interfaceAquifer
-
shouldScheduleFluidUpdate
public boolean shouldScheduleFluidUpdate()- Specified by:
shouldScheduleFluidUpdate
in interfaceAquifer
-
similarity
protected static double similarity(int pFirstDistance, int pSecondDistance) Compares two distances (between aquifers).- Returns:
1.0
if the distances are equal, and returns smaller values the more different in absolute value the two distances are.
-
calculatePressure
private double calculatePressure(DensityFunction.FunctionContext p_208189_, org.apache.commons.lang3.mutable.MutableDouble p_208190_, Aquifer.FluidStatus p_208191_, Aquifer.FluidStatus p_208192_) -
gridX
protected int gridX(int pX) -
gridY
protected int gridY(int pY) -
gridZ
protected int gridZ(int pZ) -
getAquiferStatus
Calculates the aquifer at a given location. Internally references a cache using the grid positions as an index. If the cache is not populated, computes a new aquifer at that grid location usingcomputeFluid(int, int, int)
.- Parameters:
pPackedPos
- The aquifer block position, packed into along
.
-
computeFluid
-
computeSurfaceLevel
private int computeSurfaceLevel(int pX, int pY, int pZ, Aquifer.FluidStatus pFluidStatus, int pMaxSurfaceLevel, boolean pFluidPresent) -
computeRandomizedFluidSurfaceLevel
private int computeRandomizedFluidSurfaceLevel(int pX, int pY, int pZ, int pMaxSurfaceLevel) -
computeFluidType
private BlockState computeFluidType(int pX, int pY, int pZ, Aquifer.FluidStatus pFluidStatus, int pSurfaceLevel)
-