Class LevelPropagator

java.lang.Object
net.minecraft.world.chunk.light.LevelPropagator
Direct Known Subclasses:
ChunkLightProvider, ChunkPosDistanceLevelPropagator, SectionDistanceLevelPropagator

public abstract class LevelPropagator
extends Object
  • Field Details

    • levelCount

      private final int levelCount
    • pendingIdUpdatesByLevel

      private final LongLinkedOpenHashSet[] pendingIdUpdatesByLevel
    • pendingUpdates

      private final Long2ByteMap pendingUpdates
    • minPendingLevel

      private int minPendingLevel
    • hasPendingUpdates

      private volatile boolean hasPendingUpdates
  • Constructor Details

    • LevelPropagator

      protected LevelPropagator​(int levelCount, int expectedLevelSize, int expectedTotalSize)
  • Method Details

    • minLevel

      private int minLevel​(int a, int b)
    • increaseMinPendingLevel

      private void increaseMinPendingLevel​(int maxLevel)
    • removePendingUpdate

      protected void removePendingUpdate​(long id)
    • removePendingUpdateIf

      public void removePendingUpdateIf​(LongPredicate predicate)
    • removePendingUpdate

      private void removePendingUpdate​(long id, int level, int levelCount, boolean removeFully)
    • addPendingUpdate

      private void addPendingUpdate​(long id, int level, int targetLevel)
    • resetLevel

      protected void resetLevel​(long id)
    • updateLevel

      protected void updateLevel​(long sourceId, long id, int level, boolean decrease)
    • updateLevel

      private void updateLevel​(long sourceId, long id, int level, int currentLevel, int pendingLevel, boolean decrease)
    • propagateLevel

      protected final void propagateLevel​(long sourceId, long targetId, int level, boolean decrease)
    • hasPendingUpdates

      protected final boolean hasPendingUpdates()
    • applyPendingUpdates

      protected final int applyPendingUpdates​(int maxSteps)
    • getPendingUpdateCount

      public int getPendingUpdateCount()
    • isMarker

      protected abstract boolean isMarker​(long id)
    • recalculateLevel

      protected abstract int recalculateLevel​(long id, long excludedId, int maxLevel)
    • propagateLevel

      protected abstract void propagateLevel​(long id, int level, boolean decrease)
    • getLevel

      protected abstract int getLevel​(long id)
    • setLevel

      protected abstract void setLevel​(long id, int level)
    • getPropagatedLevel

      protected abstract int getPropagatedLevel​(long sourceId, long targetId, int level)