29 enum class FluidType : schar {
38 ::ll::TypedStorage<4, 12, ::BlockPos> pos;
39 ::ll::TypedStorage<4, 4, int> blockLevel;
40 ::ll::TypedStorage<1, 1, ::Aquifer::FluidSample::FluidType> fluidType;
44 struct LocalRegistry {
48 ::ll::TypedStorage<8, 8, ::Block const&> mWater;
49 ::ll::TypedStorage<8, 8, ::Block const&> mLava;
54 LocalRegistry& operator=(LocalRegistry
const&);
55 LocalRegistry(LocalRegistry
const&);
64 ::ll::TypedStorage<8, 8, ::AquiferNoises const&> mAquiferNoises;
65 ::ll::TypedStorage<8, 8, ::OverworldNoises3d const&> mTerrainNoises;
66 ::ll::TypedStorage<8, 8, ::SurfaceLevelCache const&> mSurfaceLevelCache;
67 ::ll::TypedStorage<4, 4, int> mSeaLevel;
68 ::ll::TypedStorage<4, 4, int> mLastFluidLevel;
69 ::ll::TypedStorage<4, 4, float> mLastBarrierDensity;
70 ::ll::TypedStorage<1, 1, ::Aquifer::FluidSample::FluidType> mLastFluidType;
71 ::ll::TypedStorage<1, 1, bool> mShouldScheduleFluidUpdate;
72 ::ll::TypedStorage<4, 12, ::BlockPos> mMinGrid;
73 ::ll::TypedStorage<4, 12, ::BlockPos> mGridSize;
74 ::ll::TypedStorage<8, 24, ::std::vector<::Aquifer::FluidSample>> mFluidLevelCache;
75 ::ll::TypedStorage<8, 16, ::Aquifer::LocalRegistry> mLocalRegistry;
80 Aquifer& operator=(Aquifer
const&);
81 Aquifer(Aquifer
const&);
92 int dimensionMinHeight,
97 MCAPI
float _calculatePressure(
99 float& barrierNoiseValue,
104 MCAPI ::Aquifer::FluidSample _computeAquifer(
::BlockPos const& cellCenter)
const;
106 MCAPI ::Aquifer::FluidSample _getOrComputeNewFluidSample(
::BlockPos const& cellCenter);
108 MCAPI
void computeAt(
::BlockPos const& worldPos);
114 MCAPI static ::std::array<::std::pair<int, int>, 13>
const& chunkOffset();
125 int dimensionMinHeight,