3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/world/level/ChunkPos.h"
7#include "mc/world/level/chunk/SubChunkBrightnessStorage.h"
27 enum class SubChunkToDoBitsClearMode :
int {
28 AllSubChunkBorderBitsExceptTheOuterEdgeOfComputationBits = 0,
29 SetOuterEdgeOfComputationBits = 1,
37 ::ll::TypedStorage<1, 1, bool> mNeedToResetToDoBits;
38 ::ll::TypedStorage<8, 24576, ::std::bitset<196608>> mToDo;
39 ::ll::TypedStorage<1, 4096, ::std::array<uchar, 4096>> mOldAbsorption;
40 ::ll::TypedStorage<8, 768, ::std::vector<::SubChunkLightIndex>[2][16]> mAdditiveBlocksToProcess;
41 ::ll::TypedStorage<8, 384, ::std::vector<::SubChunkLightIndex>[16]> mEdgeBlocksToProcess;
42 ::ll::TypedStorage<8, 384, ::std::vector<::SubChunkLightIndex>[16]> mBlocksToProcess;
43 ::ll::TypedStorage<8, 24, ::std::vector<::SubChunkLightIndex>> mAbsorptionBlocksToProcess;
44 ::ll::TypedStorage<8, 48, ::std::vector<::SubtractiveLightInfo>[2]> mSubtractiveBlocks;
45 ::ll::TypedStorage<8, 384, ::SubChunk* [3][4][4]> mSubChunkPtrArray;
46 ::ll::TypedStorage<1, 48, bool[3][4][4]> mSubChunkTouched;
47 ::ll::TypedStorage<8, 8, ::ChunkPos> mCenterChunkPos;
48 ::ll::TypedStorage<8, 8, uint64> mCenterSubChunkIndex;
49 ::ll::TypedStorage<1, 1, bool> mOriginalLighting;
50 ::ll::TypedStorage<1, 1, ::SubChunkBrightnessStorage::LightPair> mDefaultLightPair;
62 uint64 centerSubChunkIndex,
64 bool originalLighting,
65 bool useFullyDarkSubchunk
119 ::std::vector<::SubChunkLightUpdate>
const& alteredBlockList,
120 ::std::vector<::BlockPos>& brightnessChangedList
165 uint64 centerSubChunkIndex,
167 bool originalLighting,
168 bool useFullyDarkSubchunk
Definition IBlockSource.h:35
Definition LevelChunk.h:74
Definition SpinLockImpl.h:5
Definition SubChunkRelighter.h:24
MCAPI void _setSkyLight(::SubChunkLightIndex coordIndex, ::Brightness oldBrightness, ::Brightness newBrightness, ::Brightness oldAbsorption, ::Brightness newAbsorption)
MCAPI void setBlockLight(::Pos const &pos, ::Brightness oldBrightness, ::Brightness newBrightness, ::Brightness oldAbsorption, ::Brightness newAbsorption)
MCAPI void _setLightHelper(::SubChunkLightIndex coordIndex, ::Brightness oldBrightness, ::Brightness newBrightness, ::Brightness oldAbsorption, ::Brightness newAbsorption, uint lightType, uint subChunkIndex)
MCAPI SubChunkRelighter(::IBlockSource &source, uint64 centerSubChunkIndex, ::ChunkPos const ¢erChunkPos, bool originalLighting, bool useFullyDarkSubchunk)
MCAPI void _setPropagatedSkyLightValue(::SubChunkLightIndex coordIndex, uchar brightness)
static MCAPI ::std::bitset< 196608 > & mAllSubChunkBorderBitsExceptTheOuterEdgeOfComputationBits()
MCAPI void _propagateSkyLight(::SubChunkLightIndex coordIndex, uchar brightness)
static MCAPI ::std::bitset< 196608 > computeAllSubChunkBorderBitsExceptTheOuterEdgeOfComputationBits()
static MCAPI ::SpinLockImpl & sLitSpinLock()
MCAPI void _propagateSkyLight()
static MCAPI void initializeStatics()
MCAPI void _propagateBlockLight()
static MCAPI ::std::unique_ptr<::SubChunk > & sFullyDarkSubChunk()
MCAPI void * $ctor(::IBlockSource &source, uint64 centerSubChunkIndex, ::ChunkPos const ¢erChunkPos, bool originalLighting, bool useFullyDarkSubchunk)
MCAPI void _checkEdgeForSubtractiveBlockLightProcessing(::SubChunkLightIndex const &coordIndex)
MCAPI void _checkEdgeForSubtractiveSkyLightProcessing(::SubChunkLightIndex const &coordIndex)
MCAPI::SubChunk * _dirtySubChunk(::SubChunkLightIndex coordIndex, uint &subChunkIndex)
static MCAPI ::SpinLockImpl & sDarkSpinLock()
MCAPI ~SubChunkRelighter()
static MCAPI ::std::bitset< 196608 > & mOuterEdgeOfComputationBits()
MCAPI void _propagateSubtractiveBlockLight()
MCAPI void relightSubChunk(::LevelChunk const &levelChunk, ::std::vector<::SubChunkLightUpdate > const &alteredBlockList, ::std::vector<::BlockPos > &brightnessChangedList)
MCAPI void _propagateBlockLight(::SubChunkLightIndex coordIndex, uchar brightness)
MCAPI void _propagateSubtractiveSkyLight(::SubChunkLightIndex coordIndex, uchar effectiveBrightness)
static MCAPI ::std::unique_ptr<::SubChunk > & sFullyLitSubChunk()
static MCAPI ::std::bitset< 196608 > computeOuterEdgeOfComputationBits()
MCAPI void _propagateSubtractiveSkyLight()
MCAPI::SubChunk * _getBlock(::SubChunkLightIndex coordIndex, ::Block const *&block, ::Block const *&extraBlock) const
MCAPI void _propagateSubtractiveBlockLight(::SubChunkLightIndex coordIndex, uchar effectiveBrightness)
MCAPI void _setPropagatedBlockLightValue(::SubChunkLightIndex coordIndex, uchar brightness)
MCAPI::SubChunkBrightnessStorage::LightPair _getLightPair(::SubChunkLightIndex coordIndex) const
Definition Brightness.h:8
Definition SubChunkBrightnessStorage.h:13
Definition SubChunkLightIndex.h:5
Definition SubChunkLightUpdate.h:9
Definition SubtractiveLightInfo.h:5