23class ChunkViewSource :
public ::ChunkSource {
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;
34 ChunkViewSource& operator=(ChunkViewSource
const&);
40 virtual ::std::shared_ptr<::LevelChunk> getExistingChunk(
::ChunkPos const& pos) ;
42 virtual ::std::shared_ptr<::LevelChunk> getRandomChunk(
::Random& random) ;
44 virtual void acquireDiscarded(::std::unique_ptr<::LevelChunk, ::LevelChunkFinalDeleter> ptr) ;
46 virtual ::std::shared_ptr<::LevelChunk>
47 createNewChunk(
::ChunkPos const& cp, ::ChunkSource::LoadMode lm,
bool readOnly) ;
49 virtual bool isWithinWorldLimit(
::ChunkPos const& cp)
const ;
51 virtual void setLevelChunk(::std::shared_ptr<::LevelChunk> lc) ;
57 MCAPI ChunkViewSource(::ChunkViewSource
const& otherChunkViewSource);
59 MCAPI ChunkViewSource(::ChunkSource& mainSource, ::ChunkSource::LoadMode parentLoadMode);
61 MCAPI ChunkViewSource(
62 ::ChunkSource& mainSource,
68 MCAPI
void addChunkPosForProcessingNeighbours(::std::shared_ptr<::LevelChunk> lc);
73 MCAPI
void clearEntryAtChunkPos(
::ChunkPos const& chunkPos);
75 MCFOLD ::std::vector<::LevelChunkBlockActorAccessToken> enableBlockEntityAccess();
77 MCFOLD ::GridArea<::std::shared_ptr<::LevelChunk>>& getArea();
80 MCAPI ::DimensionType getDimensionId()
const;
86 ::ChunkSourceViewGenerateMode chunkViewGenerateMode,
87 ::std::function<
void(::gsl::span<::std::shared_ptr<::LevelChunk>>)> add,
88 float const* serverBuildRatio
95 ::ChunkSourceViewGenerateMode chunkViewGenerateMode,
96 ::std::function<
void(::gsl::span<::std::shared_ptr<::LevelChunk>>)> add,
97 float const* serverBuildRatio
104 ::ChunkSourceViewGenerateMode chunkViewGenerateMode,
105 ::std::function<
void(::gsl::span<::std::shared_ptr<::LevelChunk>>)> add,
106 float const* serverBuildRatio
109 MCAPI
void rebuildSpecificArea(
112 ::std::function<
void(::gsl::span<::std::shared_ptr<::LevelChunk>>)>
119 MCAPI static ::ChunkSourceViewGenerateMode getGenerateMode(
bool isClientSide,
bool isClientSideGenerationEnabled);
125 MCAPI
void* $ctor(::ChunkViewSource
const& otherChunkViewSource);
127 MCAPI
void* $ctor(::ChunkSource& mainSource, ::ChunkSource::LoadMode parentLoadMode);
130 ::ChunkSource& mainSource,
139 MCAPI ::std::shared_ptr<::LevelChunk> $getExistingChunk(
::ChunkPos const& pos);
141 MCAPI ::std::shared_ptr<::LevelChunk> $getRandomChunk(
::Random& random);
143 MCAPI
void $acquireDiscarded(::std::unique_ptr<::LevelChunk, ::LevelChunkFinalDeleter> ptr);
145 MCFOLD ::std::shared_ptr<::LevelChunk>
146 $createNewChunk(
::ChunkPos const& cp, ::ChunkSource::LoadMode lm,
bool readOnly);
148 MCAPI
bool $isWithinWorldLimit(
::ChunkPos const& cp)
const;
150 MCAPI
void $setLevelChunk(::std::shared_ptr<::LevelChunk> lc);