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;
12class ChunkPos;
15// clang-format on
16
17class Aquifer {
18public:
19 // Aquifer inner types declare
20 // clang-format off
21 struct FluidSample;
22 struct LocalRegistry;
23 // clang-format on
24
25 // Aquifer inner types define
27
28 struct FluidSample {
29 public:
30 // FluidSample inner types define
31 enum class FluidType : schar {
32 Water = 0,
33 Lava = 1,
34 None = 2,
35 };
36
37 public:
38 // member variables
39 // NOLINTBEGIN
40 ::ll::TypedStorage<4, 12, ::BlockPos> pos;
41 ::ll::TypedStorage<4, 4, int> blockLevel;
42 ::ll::TypedStorage<1, 1, ::Aquifer::FluidSample::FluidType> fluidType;
43 // NOLINTEND
44 };
45
47 public:
48 // member variables
49 // NOLINTBEGIN
50 ::ll::TypedStorage<8, 8, ::Block const&> mWater;
51 ::ll::TypedStorage<8, 8, ::Block const&> mLava;
52 // NOLINTEND
53
54 public:
55 // prevent constructor by default
56 LocalRegistry& operator=(LocalRegistry const&);
59 };
60
61public:
62 // member variables
63 // NOLINTBEGIN
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;
76 // NOLINTEND
77
78public:
79 // prevent constructor by default
80 Aquifer& operator=(Aquifer const&);
81 Aquifer(Aquifer const&);
82 Aquifer();
83
84public:
85 // member functions
86 // NOLINTBEGIN
87 MCAPI Aquifer(
88 ::ChunkPos const& chunkPos,
89 ::AquiferNoises const& aquiferNoises,
90 ::OverworldNoises3d const& terrainNoises,
91 ::SurfaceLevelCache const& surfaceLevelCache,
92 int dimensionMinHeight,
93 int levelGenHeight,
94 int seaLevel
95 );
96
97 MCAPI float _calculatePressure(
98 ::BlockPos worldPos,
99 float& barrierNoiseValue,
100 ::Aquifer::FluidSample const& fluidYClosest1,
101 ::Aquifer::FluidSample const& fluidYClosest2
102 ) const;
103
104 MCAPI ::Aquifer::FluidSample _computeAquifer(::BlockPos const& cellCenter) const;
105
106 MCAPI ::Aquifer::FluidSample _getOrComputeNewFluidSample(::BlockPos const& cellCenter);
107
108 MCAPI void computeAt(::BlockPos const& worldPos);
109 // NOLINTEND
110
111public:
112 // static variables
113 // NOLINTBEGIN
114 MCAPI static ::std::array<::std::pair<int, int>, 13> const& chunkOffset();
115 // NOLINTEND
116
117public:
118 // constructor thunks
119 // NOLINTBEGIN
120 MCAPI void* $ctor(
121 ::ChunkPos const& chunkPos,
122 ::AquiferNoises const& aquiferNoises,
123 ::OverworldNoises3d const& terrainNoises,
124 ::SurfaceLevelCache const& surfaceLevelCache,
125 int dimensionMinHeight,
126 int levelGenHeight,
127 int seaLevel
128 );
129 // NOLINTEND
130};
Definition AquiferNoises.h:10
Definition Aquifer.h:17
Definition BlockPos.h:17
Definition Block.h:38
Definition ChunkPos.h:11
Definition SurfaceLevelCache.h:9
Definition Aquifer.h:28
Definition Aquifer.h:46
Definition OverworldNoises3d.h:19