Package net.minecraft.server.level
Class DistanceManager
java.lang.Object
net.minecraft.server.level.DistanceManager
- Direct Known Subclasses:
ChunkMap.DistanceManager
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) class(package private) class(package private) class -
Field Summary
FieldsModifier and TypeFieldDescription(package private) final Set<ChunkHolder> private final it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap<SortedArraySet<Ticket<?>>> private static final int(package private) static final org.slf4j.Logger(package private) final Executorprivate final DistanceManager.FixedPlayerDistanceChunkTracker(package private) static final int(package private) final it.unimi.dsi.fastutil.longs.Long2ObjectMap<it.unimi.dsi.fastutil.objects.ObjectSet<ServerPlayer>> private final DistanceManager.PlayerTicketTrackerprivate int(package private) final it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap<SortedArraySet<Ticket<?>>> (package private) final it.unimi.dsi.fastutil.longs.LongSet(package private) final ChunkTaskPriorityQueueSorter(package private) final ProcessorHandle<ChunkTaskPriorityQueueSorter.Message<Runnable>> (package private) final ProcessorHandle<ChunkTaskPriorityQueueSorter.Release> private longprivate final DistanceManager.ChunkTicketTrackerprivate final TickingTracker -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedDistanceManager(Executor dispatcher, Executor mainThreadExecutor) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddPlayer(SectionPos sectionPos, ServerPlayer player) <T> voidaddRegionTicket(TicketType<T> type, ChunkPos pos, int distance, T value) <T> voidaddRegionTicket(TicketType<T> type, ChunkPos pos, int distance, T value, boolean forceTicks) (package private) void<T> voidaddTicket(TicketType<T> type, ChunkPos pos, int level, T value) private voiddumpTickets(String filename) protected abstract ChunkHoldergetChunk(long chunkPos) intprivate intprotected StringgetTicketDebugString(long chunkPos) private static intgetTicketLevelAt(SortedArraySet<Ticket<?>> tickets) Gets the level of the ticket.private SortedArraySet<Ticket<?>> getTickets(long chunkPos) booleanhasPlayersNearby(long chunkPos) booleanbooleaninBlockTickingRange(long chunkPos) booleaninEntityTickingRange(long chunkPos) protected abstract booleanisChunkToRemove(long chunkPos) protected voidvoidremovePlayer(SectionPos sectionPos, ServerPlayer player) <T> voidremoveRegionTicket(TicketType<T> type, ChunkPos pos, int distance, T value) <T> voidremoveRegionTicket(TicketType<T> type, ChunkPos pos, int distance, T value, boolean forceTicks) (package private) voidremoveTicket(long chunkPos, Ticket<?> ticket) <T> voidremoveTicket(TicketType<T> type, ChunkPos pos, int level, T value) voidbooleanrunAllUpdates(ChunkMap chunkMap) booleanshouldForceTicks(long chunkPos) (package private) TickingTrackerprotected voidupdateChunkForced(ChunkPos pos, boolean add) protected abstract ChunkHolderupdateChunkScheduling(long chunkPos, int newLevel, ChunkHolder holder, int oldLevel) protected voidupdatePlayerTickets(int viewDistance) voidupdateSimulationDistance(int simulationDistance)
-
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
-
ticketTracker
-
naturalSpawnChunkCounter
-
tickingTicketsTracker
-
playerTicketManager
-
chunksToUpdateFutures
-
ticketThrottler
-
ticketThrottlerInput
-
ticketThrottlerReleaser
-
ticketsToRelease
final it.unimi.dsi.fastutil.longs.LongSet ticketsToRelease -
mainThreadExecutor
-
ticketTickCounter
private long ticketTickCounter -
simulationDistance
private int simulationDistance -
forcedTickets
private final it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap<SortedArraySet<Ticket<?>>> forcedTickets
-
-
Constructor Details
-
DistanceManager
-
-
Method Details
-
purgeStaleTickets
protected void purgeStaleTickets() -
getTicketLevelAt
Gets the level of the ticket. -
isChunkToRemove
protected abstract boolean isChunkToRemove(long chunkPos) -
getChunk
-
updateChunkScheduling
@Nullable protected abstract ChunkHolder updateChunkScheduling(long chunkPos, int newLevel, @Nullable ChunkHolder holder, int oldLevel) -
runAllUpdates
-
addTicket
-
removeTicket
-
addTicket
-
removeTicket
-
addRegionTicket
-
addRegionTicket
public <T> void addRegionTicket(TicketType<T> type, ChunkPos pos, int distance, T value, boolean forceTicks) -
removeRegionTicket
-
removeRegionTicket
public <T> void removeRegionTicket(TicketType<T> type, ChunkPos pos, int distance, T value, boolean forceTicks) -
getTickets
-
updateChunkForced
-
addPlayer
-
removePlayer
-
getPlayerTicketLevel
private int getPlayerTicketLevel() -
inEntityTickingRange
public boolean inEntityTickingRange(long chunkPos) -
inBlockTickingRange
public boolean inBlockTickingRange(long chunkPos) -
getTicketDebugString
-
updatePlayerTickets
protected void updatePlayerTickets(int viewDistance) -
updateSimulationDistance
public void updateSimulationDistance(int simulationDistance) -
getNaturalSpawnChunkCount
public int getNaturalSpawnChunkCount() -
hasPlayersNearby
public boolean hasPlayersNearby(long chunkPos) -
getDebugStatus
-
shouldForceTicks
public boolean shouldForceTicks(long chunkPos) -
dumpTickets
-
tickingTracker
TickingTracker tickingTracker() -
removeTicketsOnClosing
public void removeTicketsOnClosing() -
hasTickets
public boolean hasTickets()
-