Class LayerLightSectionStorage<M extends DataLayerStorageMap<M>>

java.lang.Object
net.minecraft.world.level.lighting.LayerLightSectionStorage<M>
Direct Known Subclasses:
BlockLightSectionStorage, SkyLightSectionStorage

public abstract class LayerLightSectionStorage<M extends DataLayerStorageMap<M>> extends Object
  • Field Details

    • layer

      private final LightLayer layer
    • chunkSource

      protected final LightChunkGetter chunkSource
    • sectionStates

      protected final it.unimi.dsi.fastutil.longs.Long2ByteMap sectionStates
    • columnsWithSources

      private final it.unimi.dsi.fastutil.longs.LongSet columnsWithSources
    • visibleSectionData

      protected volatile M extends DataLayerStorageMap<M> visibleSectionData
    • updatingSectionData

      protected final M extends DataLayerStorageMap<M> updatingSectionData
    • changedSections

      protected final it.unimi.dsi.fastutil.longs.LongSet changedSections
    • sectionsAffectedByLightUpdates

      protected final it.unimi.dsi.fastutil.longs.LongSet sectionsAffectedByLightUpdates
    • queuedSections

      protected final it.unimi.dsi.fastutil.longs.Long2ObjectMap<DataLayer> queuedSections
    • columnsToRetainQueuedDataFor

      private final it.unimi.dsi.fastutil.longs.LongSet columnsToRetainQueuedDataFor
      Section 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 toRemove
      Set 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

      @Nullable protected DataLayer getDataLayer(long sectionPos, boolean cached)
    • getDataLayer

      @Nullable protected DataLayer getDataLayer(M map, long sectionPos)
    • getDataLayerToWrite

      @Nullable protected DataLayer getDataLayerToWrite(long sectionPos)
    • getDataLayerData

      @Nullable public DataLayer getDataLayerData(long sectionPos)
    • 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

      protected DataLayer createDataLayer(long sectionPos)
    • hasInconsistencies

      protected boolean hasInconsistencies()
    • markNewInconsistencies

      protected void markNewInconsistencies(LightEngine<M,?> lightEngine)
    • 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

      protected void queueSectionData(long sectionPos, @Nullable DataLayer data)
    • 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

      public LayerLightSectionStorage.SectionType getDebugSectionType(long sectionPos)