LeviLamina
Loading...
Searching...
No Matches
Aquifer.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated forward declare list
6// clang-format off
7class AquiferNoises;
8class BlockPos;
9class ChunkPos;
12// clang-format on
13
14class Aquifer {
15public:
16 // Aquifer inner types declare
17 // clang-format off
18 struct FluidSample;
19 struct LocalRegistry;
20 // clang-format on
21
22 // Aquifer inner types define
24
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
44 public:
45 // member variables
46 // NOLINTBEGIN
51 // NOLINTEND
52
53 public:
54 // prevent constructor by default
55 LocalRegistry& operator=(LocalRegistry const&);
58 };
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, 32, ::Aquifer::LocalRegistry> mLocalRegistry;
75 // NOLINTEND
76
77public:
78 // member functions
79 // NOLINTBEGIN
80 MCAPI Aquifer(
81 ::ChunkPos const& chunkPos,
82 ::AquiferNoises const& aquiferNoises,
83 ::OverworldNoises3d const& terrainNoises,
84 ::SurfaceLevelCache const& surfaceLevelCache,
85 int dimensionMinHeight,
86 int levelGenHeight,
87 int seaLevel
88 );
89
90 MCAPI float _calculatePressure(
91 ::BlockPos worldPos,
92 float& barrierNoiseValue,
93 ::Aquifer::FluidSample const& fluidYClosest1,
94 ::Aquifer::FluidSample const& fluidYClosest2
95 ) const;
96
97 MCAPI ::Aquifer::FluidSample _computeAquifer(::BlockPos const& cellCenter) const;
98
99 MCAPI ::Aquifer::FluidSample _getOrComputeNewFluidSample(::BlockPos const& cellCenter);
100
101 MCAPI void computeAt(::BlockPos const& worldPos);
102 // NOLINTEND
103
104public:
105 // static variables
106 // NOLINTBEGIN
107 MCAPI static ::std::array<::std::pair<int, int>, 13> const& chunkOffset();
108 // NOLINTEND
109
110public:
111 // constructor thunks
112 // NOLINTBEGIN
113 MCAPI void* $ctor(
114 ::ChunkPos const& chunkPos,
115 ::AquiferNoises const& aquiferNoises,
116 ::OverworldNoises3d const& terrainNoises,
117 ::SurfaceLevelCache const& surfaceLevelCache,
118 int dimensionMinHeight,
119 int levelGenHeight,
120 int seaLevel
121 );
122 // NOLINTEND
123};
Definition AquiferNoises.h:14
Definition Aquifer.h:14
Definition BlockPos.h:18
Definition ChunkPos.h:11
Definition SurfaceLevelCache.h:9
Definition Aquifer.h:25
Definition Aquifer.h:43
Definition OverworldNoises3d.h:18
Definition Alias.h:14