Package net.minecraft.server.level
Class ChunkMap
java.lang.Object
net.minecraft.world.level.chunk.storage.ChunkStorage
net.minecraft.server.level.ChunkMap
- All Implemented Interfaces:
AutoCloseable,ChunkHolder.PlayerProvider
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) class(package private) class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final intprivate static final intprivate static final byteprivate static final byteprivate static final byteprivate final it.unimi.dsi.fastutil.longs.Long2LongMapprivate final ChunkStatusUpdateListenerprivate final it.unimi.dsi.fastutil.longs.Long2ByteMapprivate final ChunkMap.DistanceManagerprivate static final intprivate final it.unimi.dsi.fastutil.longs.LongSetprivate final it.unimi.dsi.fastutil.ints.Int2ObjectMap<ChunkMap.TrackedEntity>static final intprivate ChunkGenerator(package private) final ServerLevelprivate final ThreadedLevelLightEngineprivate static final org.slf4j.Loggerprivate final BlockableEventLoop<Runnable>private final ProcessorHandle<ChunkTaskPriorityQueueSorter.Message<Runnable>>static final intstatic final intprivate static final intprivate booleanprivate final Supplier<DimensionDataStorage>private final it.unimi.dsi.fastutil.longs.Long2ObjectLinkedOpenHashMap<ChunkHolder>private final PlayerMapprivate final PoiManagerprivate final ChunkProgressListenerprivate final ChunkTaskPriorityQueueSorterprivate final Stringprivate final StructureManagerprivate final AtomicInteger(package private) final it.unimi.dsi.fastutil.longs.LongSetprivate final it.unimi.dsi.fastutil.longs.Long2ObjectLinkedOpenHashMap<ChunkHolder>(package private) intprivate it.unimi.dsi.fastutil.longs.Long2ObjectLinkedOpenHashMap<ChunkHolder>private final ProcessorHandle<ChunkTaskPriorityQueueSorter.Message<Runnable>>Fields inherited from class net.minecraft.world.level.chunk.storage.ChunkStorage
fixerUpper, LAST_MONOLYTH_STRUCTURE_DATA_VERSION -
Constructor Summary
ConstructorsConstructorDescriptionChunkMap(ServerLevel p_143040_, LevelStorageSource.LevelStorageAccess p_143041_, com.mojang.datafixers.DataFixer p_143042_, StructureManager p_143043_, Executor p_143044_, BlockableEventLoop<Runnable> p_143045_, LightChunkGetter p_143046_, ChunkGenerator p_143047_, ChunkProgressListener p_143048_, ChunkStatusUpdateListener p_143049_, Supplier<DimensionDataStorage> p_143050_, int p_143051_, boolean p_143052_) -
Method Summary
Modifier and TypeMethodDescriptionprotected void(package private) booleananyPlayerCloseEnoughForSpawning(ChunkPos p_183880_) voidprotected voidbroadcastAndSend(Entity p_140334_, Packet<?> p_140335_) voidclose()debugFuturesAndCreateReportedException(IllegalStateException p_203752_, String p_203753_) void(package private) voiddumpChunks(Writer p_140275_) private static doubleeuclideanDistanceSquared(ChunkPos p_140227_, Entity p_140228_) protected ChunkGeneratorgetChunkDebugData(ChunkPos p_140205_) protected IntSuppliergetChunkQueueLevel(long p_140372_) private CompletableFuture<com.mojang.datafixers.util.Either<List<ChunkAccess>,ChunkHolder.ChunkLoadingFailure>> getChunkRangeFuture(ChunkPos p_140211_, int p_140212_, IntFunction<ChunkStatus> p_140213_) protected Iterable<ChunkHolder>private ChunkStatusgetDependencyStatus(ChunkStatus p_140263_, int p_140264_) protected ThreadedLevelLightEnginegetPlayers(ChunkPos p_183801_, boolean p_183802_) getPlayersCloseForSpawning(ChunkPos p_183889_) protected PoiManagerintprotected ChunkHoldergetUpdatingChunkIfPresent(long p_140175_) protected ChunkHoldergetVisibleChunkIfPresent(long p_140328_) booleanhasWork()static booleanisChunkInRange(int p_200879_, int p_200880_, int p_200881_, int p_200882_, int p_200883_) private static booleanisChunkOnRangeBorder(int p_183829_, int p_183830_, int p_183831_, int p_183832_, int p_183833_) private booleanisExistingChunkFull(ChunkPos p_140426_) private bytemarkPosition(ChunkPos p_140230_, ChunkStatus.ChunkType p_140231_) private voidmarkPositionReplaceable(ChunkPos p_140423_) voidmove(ServerPlayer p_140185_) (package private) voidonFullChunkStatusChange(ChunkPos p_143076_, ChunkHolder.FullChunkStatus p_143077_) private booleanplayerIsCloseEnoughForSpawning(ServerPlayer p_183752_, ChunkPos p_183753_) private voidplayerLoadedChunk(ServerPlayer p_183761_, org.apache.commons.lang3.mutable.MutableObject<ClientboundLevelChunkWithLightPacket> p_183762_, LevelChunk p_183763_) private static voidpostLoadProtoChunk(ServerLevel p_143065_, List<CompoundTag> p_143066_) CompletableFuture<com.mojang.datafixers.util.Either<LevelChunk,ChunkHolder.ChunkLoadingFailure>> prepareAccessibleChunk(ChunkHolder p_143110_) CompletableFuture<com.mojang.datafixers.util.Either<LevelChunk,ChunkHolder.ChunkLoadingFailure>> prepareEntityTickingChunk(ChunkPos p_143118_) CompletableFuture<com.mojang.datafixers.util.Either<LevelChunk,ChunkHolder.ChunkLoadingFailure>> prepareTickingChunk(ChunkHolder p_143054_) private static StringprintFuture(CompletableFuture<com.mojang.datafixers.util.Either<LevelChunk, ChunkHolder.ChunkLoadingFailure>> p_140279_) private voidprocessUnloads(BooleanSupplier p_140354_) protected booleanprivate CompletableFuture<com.mojang.datafixers.util.Either<ChunkAccess,ChunkHolder.ChunkLoadingFailure>> protoChunkToFullChunk(ChunkHolder p_140384_) private CompoundTagprotected voidreleaseLightTicket(ChunkPos p_140376_) protected voidremoveEntity(Entity p_140332_) private booleansave(ChunkAccess p_140259_) protected voidsaveAllChunks(boolean p_140319_) private booleansaveChunkIfNeeded(ChunkHolder p_198875_) CompletableFuture<com.mojang.datafixers.util.Either<ChunkAccess,ChunkHolder.ChunkLoadingFailure>> schedule(ChunkHolder p_140293_, ChunkStatus p_140294_) private CompletableFuture<com.mojang.datafixers.util.Either<ChunkAccess,ChunkHolder.ChunkLoadingFailure>> scheduleChunkGeneration(ChunkHolder p_140361_, ChunkStatus p_140362_) private CompletableFuture<com.mojang.datafixers.util.Either<ChunkAccess,ChunkHolder.ChunkLoadingFailure>> scheduleChunkLoad(ChunkPos p_140418_) private voidscheduleUnload(long p_140182_, ChunkHolder p_140183_) protected voidsetViewDistance(int p_140168_) intsize()private booleanskipPlayer(ServerPlayer p_140330_) protected voidtick()protected voidtick(BooleanSupplier p_140281_) (package private) ChunkHolderupdateChunkScheduling(long p_140177_, int p_140178_, ChunkHolder p_140179_, int p_140180_) protected voidupdateChunkTracking(ServerPlayer p_183755_, ChunkPos p_183756_, org.apache.commons.lang3.mutable.MutableObject<ClientboundLevelChunkWithLightPacket> p_183757_, boolean p_183758_, boolean p_183759_) private SectionPosupdatePlayerPos(ServerPlayer p_140374_) (package private) voidupdatePlayerStatus(ServerPlayer p_140193_, boolean p_140194_) Methods inherited from class net.minecraft.world.level.chunk.storage.ChunkStorage
chunkScanner, flushWorker, getVersion, injectDatafixingContext, read, upgradeChunkTag, write
-
Field Details
-
CHUNK_TYPE_REPLACEABLE
private static final byte CHUNK_TYPE_REPLACEABLE- See Also:
-
CHUNK_TYPE_UNKNOWN
private static final byte CHUNK_TYPE_UNKNOWN- See Also:
-
CHUNK_TYPE_FULL
private static final byte CHUNK_TYPE_FULL- See Also:
-
LOGGER
private static final org.slf4j.Logger LOGGER -
CHUNK_SAVED_PER_TICK
private static final int CHUNK_SAVED_PER_TICK- See Also:
-
CHUNK_SAVED_EAGERLY_PER_TICK
private static final int CHUNK_SAVED_EAGERLY_PER_TICK- See Also:
-
EAGER_CHUNK_SAVE_COOLDOWN_IN_MILLIS
private static final int EAGER_CHUNK_SAVE_COOLDOWN_IN_MILLIS- See Also:
-
MIN_VIEW_DISTANCE
private static final int MIN_VIEW_DISTANCE- See Also:
-
MAX_VIEW_DISTANCE
public static final int MAX_VIEW_DISTANCE- See Also:
-
MAX_CHUNK_DISTANCE
public static final int MAX_CHUNK_DISTANCE -
FORCED_TICKET_LEVEL
public static final int FORCED_TICKET_LEVEL- See Also:
-
updatingChunkMap
private final it.unimi.dsi.fastutil.longs.Long2ObjectLinkedOpenHashMap<ChunkHolder> updatingChunkMap -
visibleChunkMap
private volatile it.unimi.dsi.fastutil.longs.Long2ObjectLinkedOpenHashMap<ChunkHolder> visibleChunkMap -
pendingUnloads
-
entitiesInLevel
private final it.unimi.dsi.fastutil.longs.LongSet entitiesInLevel -
level
-
lightEngine
-
mainThreadExecutor
-
generator
-
overworldDataStorage
-
poiManager
-
toDrop
final it.unimi.dsi.fastutil.longs.LongSet toDrop -
modified
private boolean modified -
queueSorter
-
worldgenMailbox
-
mainThreadMailbox
-
progressListener
-
chunkStatusListener
-
distanceManager
-
tickingGenerated
-
structureManager
-
storageName
-
playerMap
-
entityMap
-
chunkTypeCache
private final it.unimi.dsi.fastutil.longs.Long2ByteMap chunkTypeCache -
chunkSaveCooldowns
private final it.unimi.dsi.fastutil.longs.Long2LongMap chunkSaveCooldowns -
unloadQueue
-
viewDistance
int viewDistance
-
-
Constructor Details
-
ChunkMap
public ChunkMap(ServerLevel p_143040_, LevelStorageSource.LevelStorageAccess p_143041_, com.mojang.datafixers.DataFixer p_143042_, StructureManager p_143043_, Executor p_143044_, BlockableEventLoop<Runnable> p_143045_, LightChunkGetter p_143046_, ChunkGenerator p_143047_, ChunkProgressListener p_143048_, ChunkStatusUpdateListener p_143049_, Supplier<DimensionDataStorage> p_143050_, int p_143051_, boolean p_143052_)
-
-
Method Details
-
generator
-
debugReloadGenerator
public void debugReloadGenerator() -
euclideanDistanceSquared
-
isChunkInRange
public static boolean isChunkInRange(int p_200879_, int p_200880_, int p_200881_, int p_200882_, int p_200883_) -
isChunkOnRangeBorder
private static boolean isChunkOnRangeBorder(int p_183829_, int p_183830_, int p_183831_, int p_183832_, int p_183833_) -
getLightEngine
-
getUpdatingChunkIfPresent
-
getVisibleChunkIfPresent
-
getChunkQueueLevel
-
getChunkDebugData
-
getChunkRangeFuture
private CompletableFuture<com.mojang.datafixers.util.Either<List<ChunkAccess>,ChunkHolder.ChunkLoadingFailure>> getChunkRangeFuture(ChunkPos p_140211_, int p_140212_, IntFunction<ChunkStatus> p_140213_) -
debugFuturesAndCreateReportedException
public ReportedException debugFuturesAndCreateReportedException(IllegalStateException p_203752_, String p_203753_) -
prepareEntityTickingChunk
public CompletableFuture<com.mojang.datafixers.util.Either<LevelChunk,ChunkHolder.ChunkLoadingFailure>> prepareEntityTickingChunk(ChunkPos p_143118_) -
updateChunkScheduling
@Nullable ChunkHolder updateChunkScheduling(long p_140177_, int p_140178_, @Nullable ChunkHolder p_140179_, int p_140180_) -
close
- Specified by:
closein interfaceAutoCloseable- Overrides:
closein classChunkStorage- Throws:
IOException
-
saveAllChunks
protected void saveAllChunks(boolean p_140319_) -
tick
-
hasWork
public boolean hasWork() -
processUnloads
-
scheduleUnload
-
promoteChunkMap
protected boolean promoteChunkMap() -
schedule
public CompletableFuture<com.mojang.datafixers.util.Either<ChunkAccess,ChunkHolder.ChunkLoadingFailure>> schedule(ChunkHolder p_140293_, ChunkStatus p_140294_) -
scheduleChunkLoad
private CompletableFuture<com.mojang.datafixers.util.Either<ChunkAccess,ChunkHolder.ChunkLoadingFailure>> scheduleChunkLoad(ChunkPos p_140418_) -
markPositionReplaceable
-
markPosition
-
scheduleChunkGeneration
private CompletableFuture<com.mojang.datafixers.util.Either<ChunkAccess,ChunkHolder.ChunkLoadingFailure>> scheduleChunkGeneration(ChunkHolder p_140361_, ChunkStatus p_140362_) -
releaseLightTicket
-
getDependencyStatus
-
postLoadProtoChunk
-
protoChunkToFullChunk
private CompletableFuture<com.mojang.datafixers.util.Either<ChunkAccess,ChunkHolder.ChunkLoadingFailure>> protoChunkToFullChunk(ChunkHolder p_140384_) -
prepareTickingChunk
public CompletableFuture<com.mojang.datafixers.util.Either<LevelChunk,ChunkHolder.ChunkLoadingFailure>> prepareTickingChunk(ChunkHolder p_143054_) -
prepareAccessibleChunk
public CompletableFuture<com.mojang.datafixers.util.Either<LevelChunk,ChunkHolder.ChunkLoadingFailure>> prepareAccessibleChunk(ChunkHolder p_143110_) -
getTickingGenerated
public int getTickingGenerated() -
saveChunkIfNeeded
-
save
-
isExistingChunkFull
-
setViewDistance
protected void setViewDistance(int p_140168_) -
updateChunkTracking
protected void updateChunkTracking(ServerPlayer p_183755_, ChunkPos p_183756_, org.apache.commons.lang3.mutable.MutableObject<ClientboundLevelChunkWithLightPacket> p_183757_, boolean p_183758_, boolean p_183759_) -
size
public int size() -
getDistanceManager
-
getChunks
-
dumpChunks
- Throws:
IOException
-
printFuture
private static String printFuture(CompletableFuture<com.mojang.datafixers.util.Either<LevelChunk, ChunkHolder.ChunkLoadingFailure>> p_140279_) -
readChunk
- Throws:
IOException
-
anyPlayerCloseEnoughForSpawning
-
getPlayersCloseForSpawning
-
playerIsCloseEnoughForSpawning
-
skipPlayer
-
updatePlayerStatus
-
updatePlayerPos
-
move
-
getPlayers
- Specified by:
getPlayersin interfaceChunkHolder.PlayerProvider
-
addEntity
-
removeEntity
-
tick
protected void tick() -
broadcast
-
broadcastAndSend
-
playerLoadedChunk
private void playerLoadedChunk(ServerPlayer p_183761_, org.apache.commons.lang3.mutable.MutableObject<ClientboundLevelChunkWithLightPacket> p_183762_, LevelChunk p_183763_) -
getPoiManager
-
getStorageName
-
onFullChunkStatusChange
-