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 DensityFunctionprivate final DensityFunctionprivate final DensityFunctionprivate static final doubleprivate final DensityFunctionprivate final DensityFunctionprivate final Aquifer.FluidPickerprotected final intprotected final intprotected final DensityFunctionprivate static final intprotected final intprotected final intprotected final intprivate final NoiseChunkprivate final PositionalRandomFactoryprotected booleanprivate 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 int -
Constructor Summary
ConstructorsConstructorDescriptionNoiseBasedAquifer(NoiseChunk noiseChunk, ChunkPos chunkPos, NoiseRouter noiseRouter, PositionalRandomFactory positionalRandomFactory, int minY, int height, Aquifer.FluidPicker globalFluidPicker) -
Method Summary
Modifier and TypeMethodDescriptionprivate doublecalculatePressure(DensityFunction.FunctionContext context, org.apache.commons.lang3.mutable.MutableDouble substance, Aquifer.FluidStatus firstFluid, Aquifer.FluidStatus secondFluid) private Aquifer.FluidStatuscomputeFluid(int x, int y, int z) private BlockStatecomputeFluidType(int x, int y, int z, Aquifer.FluidStatus fluidStatus, int surfaceLevel) private intcomputeRandomizedFluidSurfaceLevel(int x, int y, int z, int maxSurfaceLevel) computeSubstance(DensityFunction.FunctionContext context, double substance) private intcomputeSurfaceLevel(int x, int y, int z, Aquifer.FluidStatus fluidStatus, int maxSurfaceLevel, boolean fluidPresent) private Aquifer.FluidStatusgetAquiferStatus(long packedPos) Calculates the aquifer at a given location.protected intgetIndex(int gridX, int gridY, int gridZ) protected intgridX(int x) protected intgridY(int y) protected intgridZ(int z) booleanprotected static doublesimilarity(int firstDistance, int secondDistance) 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 noiseChunk, ChunkPos chunkPos, NoiseRouter noiseRouter, PositionalRandomFactory positionalRandomFactory, int minY, int height, Aquifer.FluidPicker globalFluidPicker)
-
-
Method Details
-
getIndex
protected int getIndex(int gridX, int gridY, int gridZ) - Returns:
- A cache index based on grid positions.
-
computeSubstance
@Nullable public BlockState computeSubstance(DensityFunction.FunctionContext context, double substance) - Specified by:
computeSubstancein interfaceAquifer
-
shouldScheduleFluidUpdate
public boolean shouldScheduleFluidUpdate()- Specified by:
shouldScheduleFluidUpdatein interfaceAquifer
-
similarity
protected static double similarity(int firstDistance, int secondDistance) 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 substance, Aquifer.FluidStatus firstFluid, Aquifer.FluidStatus secondFluid) -
gridX
protected int gridX(int x) -
gridY
protected int gridY(int y) -
gridZ
protected int gridZ(int z) -
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:
packedPos- The aquifer block position, packed into along.
-
computeFluid
-
computeSurfaceLevel
private int computeSurfaceLevel(int x, int y, int z, Aquifer.FluidStatus fluidStatus, int maxSurfaceLevel, boolean fluidPresent) -
computeRandomizedFluidSurfaceLevel
private int computeRandomizedFluidSurfaceLevel(int x, int y, int z, int maxSurfaceLevel) -
computeFluidType
private BlockState computeFluidType(int x, int y, int z, Aquifer.FluidStatus fluidStatus, int surfaceLevel)
-