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 dispatcher, Executor mainThreadExecutor)
  • Method Details

    • purgeStaleTickets

      protected void purgeStaleTickets()
    • getTicketLevelAt

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

      protected abstract boolean isChunkToRemove(long chunkPos)
    • getChunk

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

      @Nullable protected abstract ChunkHolder updateChunkScheduling(long chunkPos, int newLevel, @Nullable ChunkHolder holder, int oldLevel)
    • runAllUpdates

      public boolean runAllUpdates(ChunkMap chunkMap)
    • addTicket

      void addTicket(long chunkPos, Ticket<?> ticket)
    • removeTicket

      void removeTicket(long chunkPos, Ticket<?> ticket)
    • addTicket

      public <T> void addTicket(TicketType<T> type, ChunkPos pos, int level, T value)
    • removeTicket

      public <T> void removeTicket(TicketType<T> type, ChunkPos pos, int level, T value)
    • addRegionTicket

      public <T> void addRegionTicket(TicketType<T> type, ChunkPos pos, int distance, T value)
    • addRegionTicket

      public <T> void addRegionTicket(TicketType<T> type, ChunkPos pos, int distance, T value, boolean forceTicks)
    • removeRegionTicket

      public <T> void removeRegionTicket(TicketType<T> type, ChunkPos pos, int distance, T value)
    • removeRegionTicket

      public <T> void removeRegionTicket(TicketType<T> type, ChunkPos pos, int distance, T value, boolean forceTicks)
    • getTickets

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

      protected void updateChunkForced(ChunkPos pos, boolean add)
    • addPlayer

      public void addPlayer(SectionPos sectionPos, ServerPlayer player)
    • removePlayer

      public void removePlayer(SectionPos sectionPos, ServerPlayer player)
    • getPlayerTicketLevel

      private int getPlayerTicketLevel()
    • inEntityTickingRange

      public boolean inEntityTickingRange(long chunkPos)
    • inBlockTickingRange

      public boolean inBlockTickingRange(long chunkPos)
    • getTicketDebugString

      protected String getTicketDebugString(long chunkPos)
    • updatePlayerTickets

      protected void updatePlayerTickets(int viewDistance)
    • updateSimulationDistance

      public void updateSimulationDistance(int simulationDistance)
    • getNaturalSpawnChunkCount

      public int getNaturalSpawnChunkCount()
    • hasPlayersNearby

      public boolean hasPlayersNearby(long chunkPos)
    • getSpawnCandidateChunks

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

      public String getDebugStatus()
    • shouldForceTicks

      public boolean shouldForceTicks(long chunkPos)
    • dumpTickets

      private void dumpTickets(String filename)
    • tickingTracker

      TickingTracker tickingTracker()
    • getTickingChunks

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

      public void removeTicketsOnClosing()
    • hasTickets

      public boolean hasTickets()