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 Executor
private 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.PlayerTicketTracker
private 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 long
private final DistanceManager.ChunkTicketTracker
private final TickingTracker
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
DistanceManager
(Executor dispatcher, Executor mainThreadExecutor) -
Method Summary
Modifier and TypeMethodDescriptionvoid
addPlayer
(SectionPos sectionPos, ServerPlayer player) <T> void
addRegionTicket
(TicketType<T> type, ChunkPos pos, int distance, T value) <T> void
addRegionTicket
(TicketType<T> type, ChunkPos pos, int distance, T value, boolean forceTicks) (package private) void
<T> void
addTicket
(TicketType<T> type, ChunkPos pos, int level, T value) private void
dumpTickets
(String filename) protected abstract ChunkHolder
getChunk
(long chunkPos) int
private int
protected String
getTicketDebugString
(long chunkPos) private static int
getTicketLevelAt
(SortedArraySet<Ticket<?>> tickets) Gets the level of the ticket.private SortedArraySet
<Ticket<?>> getTickets
(long chunkPos) boolean
hasPlayersNearby
(long chunkPos) boolean
boolean
inBlockTickingRange
(long chunkPos) boolean
inEntityTickingRange
(long chunkPos) protected abstract boolean
isChunkToRemove
(long chunkPos) protected void
void
removePlayer
(SectionPos sectionPos, ServerPlayer player) <T> void
removeRegionTicket
(TicketType<T> type, ChunkPos pos, int distance, T value) <T> void
removeRegionTicket
(TicketType<T> type, ChunkPos pos, int distance, T value, boolean forceTicks) (package private) void
removeTicket
(long chunkPos, Ticket<?> ticket) <T> void
removeTicket
(TicketType<T> type, ChunkPos pos, int level, T value) void
boolean
runAllUpdates
(ChunkMap chunkMap) boolean
shouldForceTicks
(long chunkPos) (package private) TickingTracker
protected void
updateChunkForced
(ChunkPos pos, boolean add) protected abstract ChunkHolder
updateChunkScheduling
(long chunkPos, int newLevel, ChunkHolder holder, int oldLevel) protected void
updatePlayerTickets
(int viewDistance) void
updateSimulationDistance
(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()
-