Class LayerLightSectionStorage<M extends DataLayerStorageMap<M>>
java.lang.Object
net.minecraft.world.level.lighting.LayerLightSectionStorage<M>
- Direct Known Subclasses:
BlockLightSectionStorage
,SkyLightSectionStorage
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static class
static enum
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final it.unimi.dsi.fastutil.longs.LongSet
protected final LightChunkGetter
private final it.unimi.dsi.fastutil.longs.LongSet
Section column positions (section positions with Y=0) that need to be kept even if some of their sections could otherwise be removed.private final it.unimi.dsi.fastutil.longs.LongSet
protected boolean
private final LightLayer
protected final it.unimi.dsi.fastutil.longs.Long2ObjectMap
<DataLayer> protected final it.unimi.dsi.fastutil.longs.LongSet
protected final it.unimi.dsi.fastutil.longs.Long2ByteMap
private final it.unimi.dsi.fastutil.longs.LongSet
Set of section positions that can be removed, because their light won't affect any blocks.protected final M
protected M
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
LayerLightSectionStorage
(LightLayer pLayer, LightChunkGetter pChunkSource, M pUpdatingSectionData) -
Method Summary
Modifier and TypeMethodDescriptionprotected DataLayer
createDataLayer
(long pSectionPos) protected DataLayer
getDataLayer
(long pSectionPos, boolean pCached) protected DataLayer
getDataLayer
(M pMap, long pSectionPos) getDataLayerData
(long pSectionPos) protected DataLayer
getDataLayerToWrite
(long pSectionPos) getDebugSectionType
(long pSectionPos) protected abstract int
getLightValue
(long pLevelPos) protected int
getStoredLevel
(long pLevelPos) protected boolean
private void
initializeSection
(long pSectionPos) protected boolean
lightOnInSection
(long pSectionPos) protected void
markNewInconsistencies
(LightEngine<M, ?> pLightEngine) protected void
markSectionAndNeighborsAsAffected
(long pSectionPos) protected void
onNodeAdded
(long pSectionPos) protected void
onNodeRemoved
(long pSectionPos) protected void
putSectionState
(long pSectionPos, byte pSectionState) protected void
queueSectionData
(long pSectionPos, DataLayer pData) private void
removeSection
(long pSectionPos) void
retainData
(long pSectionColumnPos, boolean pRetain) protected void
setLightEnabled
(long pSectionPos, boolean pLightEnabled) protected void
setStoredLevel
(long pLevelPos, int pLightLevel) protected boolean
storingLightForSection
(long pSectionPos) protected void
protected void
updateSectionStatus
(long pSectionPos, boolean pIsEmpty)
-
Field Details
-
layer
-
chunkSource
-
sectionStates
protected final it.unimi.dsi.fastutil.longs.Long2ByteMap sectionStates -
columnsWithSources
private final it.unimi.dsi.fastutil.longs.LongSet columnsWithSources -
visibleSectionData
-
updatingSectionData
-
changedSections
protected final it.unimi.dsi.fastutil.longs.LongSet changedSections -
sectionsAffectedByLightUpdates
protected final it.unimi.dsi.fastutil.longs.LongSet sectionsAffectedByLightUpdates -
queuedSections
-
columnsToRetainQueuedDataFor
private final it.unimi.dsi.fastutil.longs.LongSet columnsToRetainQueuedDataForSection column positions (section positions with Y=0) that need to be kept even if some of their sections could otherwise be removed. -
toRemove
private final it.unimi.dsi.fastutil.longs.LongSet toRemoveSet of section positions that can be removed, because their light won't affect any blocks. -
hasInconsistencies
protected volatile boolean hasInconsistencies
-
-
Constructor Details
-
LayerLightSectionStorage
protected LayerLightSectionStorage(LightLayer pLayer, LightChunkGetter pChunkSource, M pUpdatingSectionData)
-
-
Method Details
-
storingLightForSection
protected boolean storingLightForSection(long pSectionPos) -
getDataLayer
-
getDataLayer
-
getDataLayerToWrite
-
getDataLayerData
-
getLightValue
protected abstract int getLightValue(long pLevelPos) -
getStoredLevel
protected int getStoredLevel(long pLevelPos) -
setStoredLevel
protected void setStoredLevel(long pLevelPos, int pLightLevel) -
markSectionAndNeighborsAsAffected
protected void markSectionAndNeighborsAsAffected(long pSectionPos) -
createDataLayer
-
hasInconsistencies
protected boolean hasInconsistencies() -
markNewInconsistencies
-
onNodeAdded
protected void onNodeAdded(long pSectionPos) -
onNodeRemoved
protected void onNodeRemoved(long pSectionPos) -
setLightEnabled
protected void setLightEnabled(long pSectionPos, boolean pLightEnabled) -
lightOnInSection
protected boolean lightOnInSection(long pSectionPos) -
retainData
public void retainData(long pSectionColumnPos, boolean pRetain) -
queueSectionData
-
updateSectionStatus
protected void updateSectionStatus(long pSectionPos, boolean pIsEmpty) -
putSectionState
protected void putSectionState(long pSectionPos, byte pSectionState) -
initializeSection
private void initializeSection(long pSectionPos) -
removeSection
private void removeSection(long pSectionPos) -
swapSectionMap
protected void swapSectionMap() -
getDebugSectionType
-