Package net.minecraft.server.world
Class ThreadedAnvilChunkStorage
java.lang.Object
net.minecraft.world.storage.VersionedChunkStorage
net.minecraft.server.world.ThreadedAnvilChunkStorage
- All Implemented Interfaces:
AutoCloseable
,ChunkHolder.PlayersWatchingChunkProvider
public class ThreadedAnvilChunkStorage extends VersionedChunkStorage implements ChunkHolder.PlayersWatchingChunkProvider
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) class
ThreadedAnvilChunkStorage.EntityTracker
(package private) class
ThreadedAnvilChunkStorage.TicketManager
-
Field Summary
Fields inherited from class net.minecraft.world.storage.VersionedChunkStorage
dataFixer
-
Constructor Summary
Constructors Constructor Description ThreadedAnvilChunkStorage(ServerWorld serverWorld, LevelStorage.Session session, com.mojang.datafixers.DataFixer dataFixer, StructureManager structureManager, Executor workerExecutor, ThreadExecutor<Runnable> mainThreadExecutor, ChunkProvider chunkProvider, ChunkGenerator chunkGenerator, WorldGenerationProgressListener worldGenerationProgressListener, Supplier<PersistentStateManager> supplier, int int2, boolean bool)
-
Method Summary
Methods inherited from class net.minecraft.world.storage.VersionedChunkStorage
completeAll, getDataVersion, getNbt, setTagAt, updateChunkTag
-
Field Details
-
LOGGER
-
MAX_LEVEL
public static final int MAX_LEVELSpecifies the maximum ticket level a chunk can be before a chunk'sChunkHolder.LevelType
isChunkHolder.LevelType.BORDER
. -
currentChunkHolders
-
chunkHolders
-
chunksToUnload
-
loadedChunks
-
world
-
serverLightingProvider
-
mainThreadExecutor
-
chunkGenerator
-
persistentStateManagerFactory
-
pointOfInterestStorage
-
unloadedChunks
-
chunkHolderListDirty
private boolean chunkHolderListDirty -
chunkTaskPrioritySystem
-
worldGenExecutor
-
mainExecutor
-
worldGenerationProgressListener
-
ticketManager
-
totalChunksLoadedCount
-
structureManager
-
saveDir
-
playerChunkWatchingManager
-
entityTrackers
-
chunkToType
-
unloadTaskQueue
-
watchDistance
private int watchDistance
-
-
Constructor Details
-
ThreadedAnvilChunkStorage
public ThreadedAnvilChunkStorage(ServerWorld serverWorld, LevelStorage.Session session, com.mojang.datafixers.DataFixer dataFixer, StructureManager structureManager, Executor workerExecutor, ThreadExecutor<Runnable> mainThreadExecutor, ChunkProvider chunkProvider, ChunkGenerator chunkGenerator, WorldGenerationProgressListener worldGenerationProgressListener, Supplier<PersistentStateManager> supplier, int int2, boolean bool)
-
-
Method Details
-
getSquaredDistance
-
getChebyshevDistance
private static int getChebyshevDistance(ChunkPos pos, ServerPlayerEntity player, boolean useCameraPosition) -
getChebyshevDistance
-
getLightProvider
-
getCurrentChunkHolder
-
getChunkHolder
-
getCompletedLevelSupplier
-
getChunkLoadingDebugInfo
-
getRegion
private CompletableFuture<com.mojang.datafixers.util.Either<List<Chunk>,ChunkHolder.Unloaded>> getRegion(ChunkPos centerChunk, int margin, IntFunction<ChunkStatus> distanceToStatus) -
makeChunkEntitiesTickable
public CompletableFuture<com.mojang.datafixers.util.Either<WorldChunk,ChunkHolder.Unloaded>> makeChunkEntitiesTickable(ChunkPos pos) -
setLevel
@Nullable private ChunkHolder setLevel(long pos, int level, @Nullable ChunkHolder holder, int int2) -
close
- Specified by:
close
in interfaceAutoCloseable
- Overrides:
close
in classVersionedChunkStorage
- Throws:
IOException
-
save
protected void save(boolean flush) -
tick
-
unloadChunks
-
tryUnloadChunk
-
updateHolderMap
protected boolean updateHolderMap() -
getChunk
public CompletableFuture<com.mojang.datafixers.util.Either<Chunk,ChunkHolder.Unloaded>> getChunk(ChunkHolder holder, ChunkStatus requiredStatus) -
loadChunk
private CompletableFuture<com.mojang.datafixers.util.Either<Chunk,ChunkHolder.Unloaded>> loadChunk(ChunkPos pos) -
method_27054
-
method_27053
-
upgradeChunk
private CompletableFuture<com.mojang.datafixers.util.Either<Chunk,ChunkHolder.Unloaded>> upgradeChunk(ChunkHolder holder, ChunkStatus requiredStatus) -
releaseLightTicket
-
getRequiredStatusForGeneration
private ChunkStatus getRequiredStatusForGeneration(ChunkStatus centerChunkTargetStatus, int distance) -
convertToFullChunk
private CompletableFuture<com.mojang.datafixers.util.Either<Chunk,ChunkHolder.Unloaded>> convertToFullChunk(ChunkHolder chunkHolder) -
makeChunkTickable
public CompletableFuture<com.mojang.datafixers.util.Either<WorldChunk,ChunkHolder.Unloaded>> makeChunkTickable(ChunkHolder holder) -
makeChunkAccessible
public CompletableFuture<com.mojang.datafixers.util.Either<WorldChunk,ChunkHolder.Unloaded>> makeChunkAccessible(ChunkHolder holder) -
getTotalChunksLoadedCount
public int getTotalChunksLoadedCount() -
save
-
method_27055
-
setViewDistance
protected void setViewDistance(int watchDistance) -
sendWatchPackets
protected void sendWatchPackets(ServerPlayerEntity player, ChunkPos pos, Packet<?>[] packets, boolean withinMaxWatchDistance, boolean withinViewDistance) -
getLoadedChunkCount
public int getLoadedChunkCount() -
getTicketManager
-
entryIterator
-
dump
- Throws:
IOException
-
getFutureStatus
private static String getFutureStatus(CompletableFuture<com.mojang.datafixers.util.Either<WorldChunk,ChunkHolder.Unloaded>> completableFuture) -
getUpdatedChunkTag
- Throws:
IOException
-
isTooFarFromPlayersToSpawnMobs
-
doesNotGenerateChunks
-
handlePlayerAddedOrRemoved
-
method_20726
-
updateCameraPosition
-
getPlayersWatchingChunk
public Stream<ServerPlayerEntity> getPlayersWatchingChunk(ChunkPos chunkPos, boolean onlyOnWatchDistanceEdge)- Specified by:
getPlayersWatchingChunk
in interfaceChunkHolder.PlayersWatchingChunkProvider
-
loadEntity
-
unloadEntity
-
tickPlayerMovement
protected void tickPlayerMovement() -
sendToOtherNearbyPlayers
-
sendToNearbyPlayers
-
sendChunkDataPackets
private void sendChunkDataPackets(ServerPlayerEntity player, Packet<?>[] packets, WorldChunk chunk) -
getPointOfInterestStorage
-
enableTickSchedulers
-