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> (package 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 ThrottlingChunkTaskDispatcher(package private) final it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap<SortedArraySet<Ticket<?>>> (package private) final it.unimi.dsi.fastutil.longs.LongSetprivate longprivate final DistanceManager.ChunkTicketTrackerprivate final TickingTracker -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedDistanceManager(Executor pDispatcher, Executor pMainThreadExecutor) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddPlayer(SectionPos pSectionPos, ServerPlayer pPlayer) <T> voidaddRegionTicket(TicketType<T> pType, ChunkPos pPos, int pDistance, T pValue) <T> voidaddRegionTicket(TicketType<T> pType, ChunkPos pPos, int pDistance, T pValue, boolean forceTicks) (package private) void<T> voidaddTicket(TicketType<T> pType, ChunkPos pPos, int pLevel, T pValue) private voiddumpTickets(String pFilename) protected abstract ChunkHoldergetChunk(long pChunkPos) intprivate intit.unimi.dsi.fastutil.longs.LongIteratorprotected StringgetTicketDebugString(long pChunkPos) private static intgetTicketLevelAt(SortedArraySet<Ticket<?>> pTickets) Gets the level of the ticket.private SortedArraySet<Ticket<?>> getTickets(long pChunkPos) it.unimi.dsi.fastutil.longs.LongSetbooleanhasPlayersNearby(long pChunkPos) booleanbooleaninBlockTickingRange(long pChunkPos) booleaninEntityTickingRange(long pChunkPos) protected abstract booleanisChunkToRemove(long pChunkPos) protected voidvoidremovePlayer(SectionPos pSectionPos, ServerPlayer pPlayer) <T> voidremoveRegionTicket(TicketType<T> pType, ChunkPos pPos, int pDistance, T pValue) <T> voidremoveRegionTicket(TicketType<T> pType, ChunkPos pPos, int pDistance, T pValue, boolean forceTicks) (package private) voidremoveTicket(long pChunkPos, Ticket<?> pTicket) <T> voidremoveTicket(TicketType<T> pType, ChunkPos pPos, int pLevel, T pValue) voidbooleanrunAllUpdates(ChunkMap pChunkMap) booleanshouldForceTicks(long chunkPos) (package private) TickingTrackerprotected voidupdateChunkForced(ChunkPos pPos, boolean pAdd) protected abstract ChunkHolderupdateChunkScheduling(long pChunkPos, int pNewLevel, ChunkHolder pHolder, int pOldLevel) protected voidupdatePlayerTickets(int pViewDistance) voidupdateSimulationDistance(int pSimulationDistance)
-
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
-
ticketDispatcher
-
ticketsToRelease
final it.unimi.dsi.fastutil.longs.LongSet ticketsToRelease -
mainThreadExecutor
-
ticketTickCounter
private long ticketTickCounter -
simulationDistance
private int simulationDistance -
forcedTickets
-
-
Constructor Details
-
DistanceManager
-
-
Method Details
-
purgeStaleTickets
protected void purgeStaleTickets() -
getTicketLevelAt
Gets the level of the ticket. -
isChunkToRemove
protected abstract boolean isChunkToRemove(long pChunkPos) -
getChunk
-
updateChunkScheduling
@Nullable protected abstract ChunkHolder updateChunkScheduling(long pChunkPos, int pNewLevel, @Nullable ChunkHolder pHolder, int pOldLevel) -
runAllUpdates
-
addTicket
-
removeTicket
-
addTicket
-
removeTicket
-
addRegionTicket
-
addRegionTicket
public <T> void addRegionTicket(TicketType<T> pType, ChunkPos pPos, int pDistance, T pValue, boolean forceTicks) -
removeRegionTicket
-
removeRegionTicket
public <T> void removeRegionTicket(TicketType<T> pType, ChunkPos pPos, int pDistance, T pValue, boolean forceTicks) -
getTickets
-
updateChunkForced
-
addPlayer
-
removePlayer
-
getPlayerTicketLevel
private int getPlayerTicketLevel() -
inEntityTickingRange
public boolean inEntityTickingRange(long pChunkPos) -
inBlockTickingRange
public boolean inBlockTickingRange(long pChunkPos) -
getTicketDebugString
-
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
-
shouldForceTicks
public boolean shouldForceTicks(long chunkPos) -
dumpTickets
-
tickingTracker
TickingTracker tickingTracker() -
getTickingChunks
public it.unimi.dsi.fastutil.longs.LongSet getTickingChunks() -
removeTicketsOnClosing
public void removeTicketsOnClosing() -
hasTickets
public boolean hasTickets()
-