Class DistanceManager

java.lang.Object
net.minecraft.server.level.DistanceManager
Direct Known Subclasses:
ChunkMap.DistanceManager

public abstract class DistanceManager extends Object
  • Field Details

    • LOGGER

      static final org.slf4j.Logger LOGGER
    • PLAYER_TICKET_LEVEL

      static final int PLAYER_TICKET_LEVEL
    • INITIAL_TICKET_LIST_CAPACITY

      private static final int INITIAL_TICKET_LIST_CAPACITY
      See Also:
    • playersPerChunk

      final it.unimi.dsi.fastutil.longs.Long2ObjectMap<it.unimi.dsi.fastutil.objects.ObjectSet<ServerPlayer>> playersPerChunk
    • tickets

      final it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap<SortedArraySet<Ticket<?>>> tickets
    • ticketTracker

      private final DistanceManager.ChunkTicketTracker ticketTracker
    • naturalSpawnChunkCounter

      private final DistanceManager.FixedPlayerDistanceChunkTracker naturalSpawnChunkCounter
    • tickingTicketsTracker

      private final TickingTracker tickingTicketsTracker
    • playerTicketManager

      private final DistanceManager.PlayerTicketTracker playerTicketManager
    • chunksToUpdateFutures

      final Set<ChunkHolder> chunksToUpdateFutures
    • ticketDispatcher

      final ThrottlingChunkTaskDispatcher ticketDispatcher
    • ticketsToRelease

      final it.unimi.dsi.fastutil.longs.LongSet ticketsToRelease
    • mainThreadExecutor

      final Executor mainThreadExecutor
    • ticketTickCounter

      private long ticketTickCounter
    • simulationDistance

      private int simulationDistance
    • forcedTickets

      final it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap<SortedArraySet<Ticket<?>>> forcedTickets
  • Constructor Details

    • DistanceManager

      protected DistanceManager(Executor pDispatcher, Executor pMainThreadExecutor)
  • Method Details

    • purgeStaleTickets

      protected void purgeStaleTickets()
    • getTicketLevelAt

      private static int getTicketLevelAt(SortedArraySet<Ticket<?>> pTickets)
      Gets the level of the ticket.
    • isChunkToRemove

      protected abstract boolean isChunkToRemove(long pChunkPos)
    • getChunk

      @Nullable protected abstract ChunkHolder getChunk(long pChunkPos)
    • updateChunkScheduling

      @Nullable protected abstract ChunkHolder updateChunkScheduling(long pChunkPos, int pNewLevel, @Nullable ChunkHolder pHolder, int pOldLevel)
    • runAllUpdates

      public boolean runAllUpdates(ChunkMap pChunkMap)
    • addTicket

      void addTicket(long pChunkPos, Ticket<?> pTicket)
    • removeTicket

      void removeTicket(long pChunkPos, Ticket<?> pTicket)
    • addTicket

      public <T> void addTicket(TicketType<T> pType, ChunkPos pPos, int pLevel, T pValue)
    • removeTicket

      public <T> void removeTicket(TicketType<T> pType, ChunkPos pPos, int pLevel, T pValue)
    • addRegionTicket

      public <T> void addRegionTicket(TicketType<T> pType, ChunkPos pPos, int pDistance, T pValue)
    • addRegionTicket

      public <T> void addRegionTicket(TicketType<T> pType, ChunkPos pPos, int pDistance, T pValue, boolean forceTicks)
    • removeRegionTicket

      public <T> void removeRegionTicket(TicketType<T> pType, ChunkPos pPos, int pDistance, T pValue)
    • removeRegionTicket

      public <T> void removeRegionTicket(TicketType<T> pType, ChunkPos pPos, int pDistance, T pValue, boolean forceTicks)
    • getTickets

      private SortedArraySet<Ticket<?>> getTickets(long pChunkPos)
    • updateChunkForced

      protected void updateChunkForced(ChunkPos pPos, boolean pAdd)
    • addPlayer

      public void addPlayer(SectionPos pSectionPos, ServerPlayer pPlayer)
    • removePlayer

      public void removePlayer(SectionPos pSectionPos, ServerPlayer pPlayer)
    • getPlayerTicketLevel

      private int getPlayerTicketLevel()
    • inEntityTickingRange

      public boolean inEntityTickingRange(long pChunkPos)
    • inBlockTickingRange

      public boolean inBlockTickingRange(long pChunkPos)
    • getTicketDebugString

      protected String getTicketDebugString(long pChunkPos)
    • updatePlayerTickets

      protected void updatePlayerTickets(int pViewDistance)
    • updateSimulationDistance

      public void updateSimulationDistance(int pSimulationDistance)
    • getNaturalSpawnChunkCount

      public int getNaturalSpawnChunkCount()
    • hasPlayersNearby

      public boolean hasPlayersNearby(long pChunkPos)
    • getSpawnCandidateChunks

      public it.unimi.dsi.fastutil.longs.LongIterator getSpawnCandidateChunks()
    • getDebugStatus

      public String getDebugStatus()
    • shouldForceTicks

      public boolean shouldForceTicks(long chunkPos)
    • dumpTickets

      private void dumpTickets(String pFilename)
    • tickingTracker

      TickingTracker tickingTracker()
    • getTickingChunks

      public it.unimi.dsi.fastutil.longs.LongSet getTickingChunks()
    • removeTicketsOnClosing

      public void removeTicketsOnClosing()
    • hasTickets

      public boolean hasTickets()