LeviLamina
Loading...
Searching...
No Matches
ChunkViewSource.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/util/GridArea.h"
7#include "mc/world/level/chunk/ChunkSource.h"
8#include "mc/world/level/chunk/ChunkSourceViewGenerateMode.h"
9#include "mc/world/level/chunk/LevelChunkGridAreaElement.h"
10
11// auto generated forward declare list
12// clang-format off
13class BlockPos;
14class ChunkPos;
15class LevelChunk;
17class Random;
18struct Bounds;
19struct DimensionType;
21// clang-format on
22
23class ChunkViewSource : public ::ChunkSource {
24public:
25 // member variables
26 // NOLINTBEGIN
27 ::ll::TypedStorage<4, 4, ::ChunkSource::LoadMode> mParentLoadMode;
28 ::ll::TypedStorage<8, 304, ::GridArea<::std::shared_ptr<::LevelChunk>>> mArea;
29 ::ll::TypedStorage<8, 8, ::ChunkSource&> mMainSource;
30 // NOLINTEND
31
32public:
33 // prevent constructor by default
34 ChunkViewSource& operator=(ChunkViewSource const&);
35 ChunkViewSource();
36
37public:
38 // virtual functions
39 // NOLINTBEGIN
40 virtual ::std::shared_ptr<::LevelChunk> getExistingChunk(::ChunkPos const& pos) /*override*/;
41
42 virtual ::std::shared_ptr<::LevelChunk> getRandomChunk(::Random& random) /*override*/;
43
44 virtual void acquireDiscarded(::std::unique_ptr<::LevelChunk, ::LevelChunkFinalDeleter> ptr) /*override*/;
45
46 virtual ::std::shared_ptr<::LevelChunk>
47 createNewChunk(::ChunkPos const& cp, ::ChunkSource::LoadMode lm, bool readOnly) /*override*/;
48
49 virtual bool isWithinWorldLimit(::ChunkPos const& cp) const /*override*/;
50
51 virtual void setLevelChunk(::std::shared_ptr<::LevelChunk> lc) /*override*/;
52 // NOLINTEND
53
54public:
55 // member functions
56 // NOLINTBEGIN
57 MCAPI ChunkViewSource(::ChunkViewSource const& otherChunkViewSource);
58
59 MCAPI ChunkViewSource(::ChunkSource& mainSource, ::ChunkSource::LoadMode parentLoadMode);
60
61 MCAPI ChunkViewSource(
62 ::ChunkSource& mainSource,
63 ::LevelChunkGridAreaElement<::std::weak_ptr<::LevelChunk>>& gridArea,
64 ::Bounds const& bounds
65 );
66
67#ifdef LL_PLAT_C
68 MCAPI void addChunkPosForProcessingNeighbours(::std::shared_ptr<::LevelChunk> lc);
69#endif
70
71 MCAPI void clear();
72
73 MCAPI void clearEntryAtChunkPos(::ChunkPos const& chunkPos);
74
75 MCFOLD ::std::vector<::LevelChunkBlockActorAccessToken> enableBlockEntityAccess();
76
77 MCFOLD ::GridArea<::std::shared_ptr<::LevelChunk>>& getArea();
78
79#ifdef LL_PLAT_C
80 MCAPI ::DimensionType getDimensionId() const;
81#endif
82
83 MCAPI void move(
84 ::Bounds const& bounds,
85 bool isCircle,
86 ::ChunkSourceViewGenerateMode chunkViewGenerateMode,
87 ::std::function<void(::gsl::span<::std::shared_ptr<::LevelChunk>>)> add,
88 float const* serverBuildRatio
89 );
90
91 MCAPI void move(
92 ::BlockPos const& blockMin,
93 ::BlockPos const& blockMax,
94 bool isCircle,
95 ::ChunkSourceViewGenerateMode chunkViewGenerateMode,
96 ::std::function<void(::gsl::span<::std::shared_ptr<::LevelChunk>>)> add,
97 float const* serverBuildRatio
98 );
99
100 MCAPI void move(
101 ::BlockPos const& center,
102 int radius,
103 bool isCircle,
104 ::ChunkSourceViewGenerateMode chunkViewGenerateMode,
105 ::std::function<void(::gsl::span<::std::shared_ptr<::LevelChunk>>)> add,
106 float const* serverBuildRatio
107 );
108
109 MCAPI void rebuildSpecificArea(
110 ::Bounds const& bounds,
111 bool,
112 ::std::function<void(::gsl::span<::std::shared_ptr<::LevelChunk>>)>
113 );
114 // NOLINTEND
115
116public:
117 // static functions
118 // NOLINTBEGIN
119 MCAPI static ::ChunkSourceViewGenerateMode getGenerateMode(bool isClientSide, bool isClientSideGenerationEnabled);
120 // NOLINTEND
121
122public:
123 // constructor thunks
124 // NOLINTBEGIN
125 MCAPI void* $ctor(::ChunkViewSource const& otherChunkViewSource);
126
127 MCAPI void* $ctor(::ChunkSource& mainSource, ::ChunkSource::LoadMode parentLoadMode);
128
129 MCAPI void* $ctor(
130 ::ChunkSource& mainSource,
131 ::LevelChunkGridAreaElement<::std::weak_ptr<::LevelChunk>>& gridArea,
132 ::Bounds const& bounds
133 );
134 // NOLINTEND
135
136public:
137 // virtual function thunks
138 // NOLINTBEGIN
139 MCAPI ::std::shared_ptr<::LevelChunk> $getExistingChunk(::ChunkPos const& pos);
140
141 MCAPI ::std::shared_ptr<::LevelChunk> $getRandomChunk(::Random& random);
142
143 MCAPI void $acquireDiscarded(::std::unique_ptr<::LevelChunk, ::LevelChunkFinalDeleter> ptr);
144
145 MCFOLD ::std::shared_ptr<::LevelChunk>
146 $createNewChunk(::ChunkPos const& cp, ::ChunkSource::LoadMode lm, bool readOnly);
147
148 MCAPI bool $isWithinWorldLimit(::ChunkPos const& cp) const;
149
150 MCAPI void $setLevelChunk(::std::shared_ptr<::LevelChunk> lc);
151
152
153 // NOLINTEND
154
155public:
156 // vftables
157 // NOLINTBEGIN
158 MCNAPI static void** $vftable();
159 // NOLINTEND
160};
Definition BlockPos.h:21
Definition ChunkPos.h:11
static MCAPI void ** $vftable()
Definition LevelChunkBlockActorAccessToken.h:5
Definition LevelChunkGridAreaElement.h:6
Definition LevelChunk.h:87
Definition Random.h:10
Definition Bounds.h:8
Definition DimensionType.h:5
Definition LevelChunkFinalDeleter.h:10