Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
Aquifer.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/level/BlockPos.h"
7
8// auto generated forward declare list
9// clang-format off
10class AquiferNoises;
11class Block;
14// clang-format on
15
16class Aquifer {
17public:
18 // Aquifer inner types declare
19 // clang-format off
20 struct FluidSample;
21 struct LocalRegistry;
22 // clang-format on
23
24 // Aquifer inner types define
25 struct FluidSample {
26 public:
27 // FluidSample inner types define
28 enum class FluidType : schar {
29 Water = 0,
30 Lava = 1,
31 None = 2,
32 };
33
34 public:
35 // member variables
36 // NOLINTBEGIN
37 ::ll::TypedStorage<4, 12, ::BlockPos> pos;
38 ::ll::TypedStorage<4, 4, int> blockLevel;
39 ::ll::TypedStorage<1, 1, ::Aquifer::FluidSample::FluidType> fluidType;
40 // NOLINTEND
41 };
42
43 struct LocalRegistry {
44 public:
45 // member variables
46 // NOLINTBEGIN
47 ::ll::TypedStorage<8, 8, ::Block const&> mWater;
48 ::ll::TypedStorage<8, 8, ::Block const&> mLava;
49 // NOLINTEND
50
51 public:
52 // prevent constructor by default
53 LocalRegistry& operator=(LocalRegistry const&);
54 LocalRegistry(LocalRegistry const&);
55 LocalRegistry();
56 };
57
58 using AquifierGridPos = ::BlockPos;
59
60public:
61 // member variables
62 // NOLINTBEGIN
63 ::ll::TypedStorage<8, 8, ::AquiferNoises const&> mAquiferNoises;
64 ::ll::TypedStorage<8, 8, ::OverworldNoises3d const&> mTerrainNoises;
65 ::ll::TypedStorage<8, 8, ::SurfaceLevelCache const&> mSurfaceLevelCache;
66 ::ll::TypedStorage<4, 4, int> mSeaLevel;
67 ::ll::TypedStorage<4, 4, int> mLastFluidLevel;
68 ::ll::TypedStorage<4, 4, float> mLastBarrierDensity;
69 ::ll::TypedStorage<1, 1, ::Aquifer::FluidSample::FluidType> mLastFluidType;
70 ::ll::TypedStorage<1, 1, bool> mShouldScheduleFluidUpdate;
71 ::ll::TypedStorage<4, 12, ::BlockPos> mMinGrid;
72 ::ll::TypedStorage<4, 12, ::BlockPos> mGridSize;
73 ::ll::TypedStorage<8, 24, ::std::vector<::Aquifer::FluidSample>> mFluidLevelCache;
74 ::ll::TypedStorage<8, 16, ::Aquifer::LocalRegistry> mLocalRegistry;
75 // NOLINTEND
76
77public:
78 // prevent constructor by default
79 Aquifer& operator=(Aquifer const&);
80 Aquifer(Aquifer const&);
81 Aquifer();
82
83public:
84 // member functions
85 // NOLINTBEGIN
86 MCNAPI ::Aquifer::FluidSample _computeAquifer(::BlockPos const& cellCenter) const;
87
88 MCNAPI void computeAt(::BlockPos const& worldPos);
89 // NOLINTEND
90
91public:
92 // static variables
93 // NOLINTBEGIN
94 MCNAPI static ::std::array<::std::pair<int, int>, 13> const& chunkOffset();
95 // NOLINTEND
96};
Definition AquiferNoises.h:10
static MCAPI ::std::array<::std::pair< int, int >, 13 > const & chunkOffset()
MCAPI::Aquifer::FluidSample _computeAquifer(::BlockPos const &cellCenter) const
MCAPI void computeAt(::BlockPos const &worldPos)
Definition BlockPos.h:14
Definition Block.h:42
Definition SurfaceLevelCache.h:9
Definition Aquifer.h:25
Definition Aquifer.h:43
Definition OverworldNoises3d.h:19