Package net.minecraft.server.world
Class ServerChunkManager
java.lang.Object
net.minecraft.world.chunk.ChunkManager
net.minecraft.server.world.ServerChunkManager
- All Implemented Interfaces:
AutoCloseable,ChunkProvider
public class ServerChunkManager extends ChunkManager
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) classServerChunkManager.MainThreadExecutor -
Field Summary
Fields Modifier and Type Field Description private static List<ChunkStatus>CHUNK_STATUSESprivate Chunk[]chunkCacheprivate ChunkGeneratorchunkGeneratorprivate long[]chunkPosCacheprivate ChunkStatus[]chunkStatusCacheprivate longlastMobSpawningTimeprivate ServerLightingProviderlightProviderprivate ServerChunkManager.MainThreadExecutormainThreadExecutorprivate PersistentStateManagerpersistentStateManagerprivate ThreadserverThreadprivate booleanspawnAnimalsprivate SpawnHelper.InfospawnEntryprivate booleanspawnMonstersThreadedAnvilChunkStoragethreadedAnvilChunkStorageprivate ChunkTicketManagerticketManagerprivate ServerWorldworld -
Constructor Summary
Constructors Constructor Description ServerChunkManager(ServerWorld serverWorld, LevelStorage.Session session, com.mojang.datafixers.DataFixer dataFixer, StructureManager structureManager, Executor workerExecutor, ChunkGenerator chunkGenerator, int viewDistance, boolean bool, WorldGenerationProgressListener worldGenerationProgressListener, class_5567 class_5567, Supplier<PersistentStateManager> supplier) -
Method Summary
Modifier and Type Method Description <T> voidaddTicket(ChunkTicketType<T> ticketType, ChunkPos pos, int radius, T argument)Adds a chunk ticket to the ticket manager.voidapplyViewDistance(int watchDistance)voidclose()booleanexecuteQueuedTasks()BlockViewgetChunk(int chunkX, int chunkZ)ChunkgetChunk(int x, int z, ChunkStatus leastStatus, boolean create)private CompletableFuture<com.mojang.datafixers.util.Either<Chunk,ChunkHolder.Unloaded>>getChunkFuture(int chunkX, int chunkZ, ChunkStatus leastStatus, boolean create)CompletableFuture<com.mojang.datafixers.util.Either<Chunk,ChunkHolder.Unloaded>>getChunkFutureSyncOnMainThread(int chunkX, int chunkZ, ChunkStatus leastStatus, boolean create)ChunkGeneratorgetChunkGenerator()private ChunkHoldergetChunkHolder(long pos)StringgetChunkLoadingDebugInfo(ChunkPos chunkPos)StringgetDebugString()ServerLightingProvidergetLightingProvider()intgetLoadedChunkCount()intgetPendingTasks()PersistentStateManagergetPersistentStateManager()PointOfInterestStoragegetPointOfInterestStorage()SpawnHelper.InfogetSpawnInfo()intgetTotalChunksLoadedCount()WorldgetWorld()WorldChunkgetWorldChunk(int chunkX, int chunkZ)private voidifChunkLoaded(long pos, Consumer<WorldChunk> chunkConsumer)private voidinitChunkCaches()booleanisChunkLoaded(int x, int z)private booleanisFutureReady(long pos, Function<ChunkHolder,CompletableFuture<com.mojang.datafixers.util.Either<WorldChunk,ChunkHolder.Unloaded>>> futureFunction)private booleanisMissingForLevel(ChunkHolder holder, int maxLevel)voidloadEntity(Entity entity)voidmarkForUpdate(BlockPos pos)voidonLightUpdate(LightType type, ChunkSectionPos pos)private voidputInCache(long pos, Chunk chunk, ChunkStatus status)<T> voidremoveTicket(ChunkTicketType<T> ticketType, ChunkPos pos, int radius, T argument)Removes a chunk ticket from the ticket manager.voidsave(boolean flush)voidsendToNearbyPlayers(Entity entity, Packet<?> packet)voidsendToOtherNearbyPlayers(Entity entity, Packet<?> packet)voidsetChunkForced(ChunkPos pos, boolean forced)voidsetMobSpawnOptions(boolean spawnMonsters, boolean spawnAnimals)booleanshouldTickBlock(BlockPos pos)booleanshouldTickChunk(ChunkPos pos)private booleantick()voidtick(BooleanSupplier shouldKeepTicking)private voidtickChunks()voidunloadEntity(Entity entity)voidupdateCameraPosition(ServerPlayerEntity player)Methods inherited from class net.minecraft.world.chunk.ChunkManager
getWorldChunk
-
Field Details
-
CHUNK_STATUSES
-
ticketManager
-
chunkGenerator
-
world
-
serverThread
-
lightProvider
-
mainThreadExecutor
-
threadedAnvilChunkStorage
-
persistentStateManager
-
lastMobSpawningTime
private long lastMobSpawningTime -
spawnMonsters
private boolean spawnMonsters -
spawnAnimals
private boolean spawnAnimals -
chunkPosCache
private final long[] chunkPosCache -
chunkStatusCache
-
chunkCache
-
spawnEntry
-
-
Constructor Details
-
ServerChunkManager
public ServerChunkManager(ServerWorld serverWorld, LevelStorage.Session session, com.mojang.datafixers.DataFixer dataFixer, StructureManager structureManager, Executor workerExecutor, ChunkGenerator chunkGenerator, int viewDistance, boolean bool, WorldGenerationProgressListener worldGenerationProgressListener, class_5567 class_5567, Supplier<PersistentStateManager> supplier)
-
-
Method Details
-
getLightingProvider
- Specified by:
getLightingProviderin classChunkManager
-
getChunkHolder
-
getTotalChunksLoadedCount
public int getTotalChunksLoadedCount() -
putInCache
-
getChunk
- Specified by:
getChunkin classChunkManager
-
getWorldChunk
- Overrides:
getWorldChunkin classChunkManager
-
initChunkCaches
private void initChunkCaches() -
getChunkFutureSyncOnMainThread
@Environment(CLIENT) public CompletableFuture<com.mojang.datafixers.util.Either<Chunk,ChunkHolder.Unloaded>> getChunkFutureSyncOnMainThread(int chunkX, int chunkZ, ChunkStatus leastStatus, boolean create) -
getChunkFuture
private CompletableFuture<com.mojang.datafixers.util.Either<Chunk,ChunkHolder.Unloaded>> getChunkFuture(int chunkX, int chunkZ, ChunkStatus leastStatus, boolean create) -
isMissingForLevel
-
isChunkLoaded
public boolean isChunkLoaded(int x, int z)- Overrides:
isChunkLoadedin classChunkManager
-
getChunk
- Specified by:
getChunkin interfaceChunkProvider- Overrides:
getChunkin classChunkManager
-
getWorld
-
executeQueuedTasks
public boolean executeQueuedTasks() -
tick
private boolean tick() -
shouldTickChunk
- Overrides:
shouldTickChunkin classChunkManager
-
shouldTickBlock
- Overrides:
shouldTickBlockin classChunkManager
-
isFutureReady
private boolean isFutureReady(long pos, Function<ChunkHolder,CompletableFuture<com.mojang.datafixers.util.Either<WorldChunk,ChunkHolder.Unloaded>>> futureFunction) -
save
public void save(boolean flush) -
close
- Specified by:
closein interfaceAutoCloseable- Overrides:
closein classChunkManager- Throws:
IOException
-
tick
-
tickChunks
private void tickChunks() -
ifChunkLoaded
-
getDebugString
- Specified by:
getDebugStringin classChunkManager
-
getPendingTasks
public int getPendingTasks() -
getChunkGenerator
-
getLoadedChunkCount
public int getLoadedChunkCount() -
markForUpdate
-
onLightUpdate
-
addTicket
Adds a chunk ticket to the ticket manager.Addition of a ticket may load chunk(s) at some point in the future depending on the loading level in the ticket's vicinity.
-
removeTicket
Removes a chunk ticket from the ticket manager.Removal of a ticket may unload chunk(s) at some point in the future depending on the loading levels in the ticket's vicinity after removal.
-
setChunkForced
- Overrides:
setChunkForcedin classChunkManager
-
updateCameraPosition
-
unloadEntity
-
loadEntity
-
sendToNearbyPlayers
-
sendToOtherNearbyPlayers
-
applyViewDistance
public void applyViewDistance(int watchDistance) -
setMobSpawnOptions
public void setMobSpawnOptions(boolean spawnMonsters, boolean spawnAnimals)- Overrides:
setMobSpawnOptionsin classChunkManager
-
getChunkLoadingDebugInfo
-
getPersistentStateManager
-
getPointOfInterestStorage
-
getSpawnInfo
-