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 layer, LightChunkGetter chunkSource, M updatingSectionData) -
Method Summary
Modifier and TypeMethodDescriptionprotected DataLayer
createDataLayer
(long sectionPos) protected DataLayer
getDataLayer
(long sectionPos, boolean cached) protected DataLayer
getDataLayer
(M map, long sectionPos) getDataLayerData
(long sectionPos) protected DataLayer
getDataLayerToWrite
(long sectionPos) getDebugSectionType
(long sectionPos) protected abstract int
getLightValue
(long levelPos) protected int
getStoredLevel
(long levelPos) protected boolean
private void
initializeSection
(long sectionPos) protected boolean
lightOnInSection
(long sectionPos) protected void
markNewInconsistencies
(LightEngine<M, ?> lightEngine) protected void
markSectionAndNeighborsAsAffected
(long sectionPos) protected void
onNodeAdded
(long sectionPos) protected void
onNodeRemoved
(long sectionPos) protected void
putSectionState
(long sectionPos, byte sectionState) protected void
queueSectionData
(long sectionPos, DataLayer data) private void
removeSection
(long sectionPos) void
retainData
(long sectionColumnPos, boolean retain) protected void
setLightEnabled
(long sectionPos, boolean lightEnabled) protected void
setStoredLevel
(long levelPos, int lightLevel) protected boolean
storingLightForSection
(long sectionPos) protected void
protected void
updateSectionStatus
(long sectionPos, boolean isEmpty)
-
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 layer, LightChunkGetter chunkSource, M updatingSectionData)
-
-
Method Details
-
storingLightForSection
protected boolean storingLightForSection(long sectionPos) -
getDataLayer
-
getDataLayer
-
getDataLayerToWrite
-
getDataLayerData
-
getLightValue
protected abstract int getLightValue(long levelPos) -
getStoredLevel
protected int getStoredLevel(long levelPos) -
setStoredLevel
protected void setStoredLevel(long levelPos, int lightLevel) -
markSectionAndNeighborsAsAffected
protected void markSectionAndNeighborsAsAffected(long sectionPos) -
createDataLayer
-
hasInconsistencies
protected boolean hasInconsistencies() -
markNewInconsistencies
-
onNodeAdded
protected void onNodeAdded(long sectionPos) -
onNodeRemoved
protected void onNodeRemoved(long sectionPos) -
setLightEnabled
protected void setLightEnabled(long sectionPos, boolean lightEnabled) -
lightOnInSection
protected boolean lightOnInSection(long sectionPos) -
retainData
public void retainData(long sectionColumnPos, boolean retain) -
queueSectionData
-
updateSectionStatus
protected void updateSectionStatus(long sectionPos, boolean isEmpty) -
putSectionState
protected void putSectionState(long sectionPos, byte sectionState) -
initializeSection
private void initializeSection(long sectionPos) -
removeSection
private void removeSection(long sectionPos) -
swapSectionMap
protected void swapSectionMap() -
getDebugSectionType
-