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;
58 uint64 centerSubChunkIndex,
60 bool originalLighting,
61 bool useFullyDarkSubchunk
73 MCAPI ::SubChunkBrightnessStorage::LightPair _getLightPair(
::SubChunkLightIndex coordIndex)
const;
75 MCAPI
void _propagateBlockLight();
79 MCAPI
void _propagateSkyLight();
83 MCAPI
void _propagateSubtractiveBlockLight();
85 MCAPI
void _propagateSubtractiveBlockLight(
::SubChunkLightIndex coordIndex, uchar effectiveBrightness);
87 MCAPI
void _propagateSubtractiveSkyLight();
89 MCAPI
void _propagateSubtractiveSkyLight(
::SubChunkLightIndex coordIndex, uchar effectiveBrightness);
91 MCAPI
void _setLightHelper(
105 MCAPI
void _setSkyLight(
113 MCAPI
void relightSubChunk(
115 ::std::vector<::SubChunkLightUpdate>
const& alteredBlockList,
116 ::std::vector<::BlockPos>& brightnessChangedList
119 MCAPI
void setBlockLight(
133 MCAPI static ::std::bitset<196608> computeAllSubChunkBorderBitsExceptTheOuterEdgeOfComputationBits();
135 MCAPI static ::std::bitset<196608> computeOuterEdgeOfComputationBits();
137 MCAPI
static void initializeStatics();
143 MCAPI static ::std::bitset<196608>& mAllSubChunkBorderBitsExceptTheOuterEdgeOfComputationBits();
145 MCAPI static ::std::bitset<196608>& mOuterEdgeOfComputationBits();
147 MCAPI static ::SpinLockImpl& sDarkSpinLock();
149 MCAPI static ::std::unique_ptr<::SubChunk>& sFullyDarkSubChunk();
151 MCAPI static ::std::unique_ptr<::SubChunk>& sFullyLitSubChunk();
153 MCAPI static ::SpinLockImpl& sLitSpinLock();
161 uint64 centerSubChunkIndex,
163 bool originalLighting,
164 bool useFullyDarkSubchunk