Package net.minecraft.server.level
Class ServerChunkCache
java.lang.Object
net.minecraft.world.level.chunk.ChunkSource
net.minecraft.server.level.ServerChunkCache
- All Implemented Interfaces:
AutoCloseable,LightChunkGetter,IServerChunkCacheExtension
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static final record(package private) final class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final intprivate static final List<ChunkStatus> final ChunkMapprivate final DimensionDataStorageprivate final DistanceManagerprivate final ChunkAccess[]private final long[]private final ChunkStatus[]private longprivate NaturalSpawner.SpawnStatefinal ServerLevel(package private) final ThreadedLevelLightEngine(package private) final Threadprivate final ServerChunkCache.MainThreadExecutorprivate booleanprivate boolean -
Constructor Summary
ConstructorsConstructorDescriptionServerChunkCache(ServerLevel level, LevelStorageSource.LevelStorageAccess levelStorageAccess, com.mojang.datafixers.DataFixer fixerUpper, StructureTemplateManager structureManager, Executor dispatcher, ChunkGenerator generator, int viewDistance, int simulationDistance, boolean sync, ChunkProgressListener progressListener, ChunkStatusUpdateListener chunkStatusListener, Supplier<DimensionDataStorage> overworldDataStorage) -
Method Summary
Modifier and TypeMethodDescriptionvoid<T> voidaddRegionTicket(TicketType<T> type, ChunkPos pos, int distance, T value) <T> voidaddRegionTicket(TicketType<T> type, ChunkPos pos, int distance, T value, boolean forceTicks) voidblockChanged(BlockPos pos) voidvoidbroadcastAndSend(Entity entity, Packet<?> packet) private booleanchunkAbsent(ChunkHolder chunkHolder, int status) private voidvoidclose()getChunk(int x, int z, ChunkStatus chunkStatus, boolean requireChunk) getChunkDebugData(ChunkPos chunkPos) getChunkForLighting(int chunkX, int chunkZ) getChunkFuture(int x, int z, ChunkStatus chunkStatus, boolean requireChunk) private CompletableFuture<ChunkResult<ChunkAccess>> getChunkFutureMainThread(int x, int z, ChunkStatus chunkStatus, boolean requireChunk) getChunkNow(int chunkX, int chunkZ) private voidgetFullChunk(long chunkPos, Consumer<LevelChunk> fullChunkGetter) getLevel()intintintprivate ChunkHoldergetVisibleChunkIfPresent(long chunkPos) booleanhasChunk(int x, int z) Checks to see if a chunk exists at x, zbooleanisPositionTicking(long chunkPos) voidmove(ServerPlayer player) voidonLightUpdate(LightLayer type, SectionPos pos) booleanpollTask()voidremoveEntity(Entity entity) <T> voidremoveRegionTicket(TicketType<T> type, ChunkPos pos, int distance, T value) <T> voidremoveRegionTicket(TicketType<T> type, ChunkPos pos, int distance, T value, boolean forceTicks) void(package private) booleanvoidsave(boolean flush) voidsetSimulationDistance(int simulationDistance) voidsetSpawnSettings(boolean hostile, boolean peaceful) voidsetViewDistance(int viewDistance) private voidstoreInCache(long chunkPos, ChunkAccess chunk, ChunkStatus chunkStatus) voidtick(BooleanSupplier hasTimeLeft, boolean tickChunks) private voidvoidupdateChunkForced(ChunkPos pos, boolean add) Methods inherited from class net.minecraft.world.level.chunk.ChunkSource
getChunkMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.neoforged.neoforge.common.extensions.IServerChunkCacheExtension
broadcast, broadcastAndSend, self
-
Field Details
-
CHUNK_STATUSES
-
distanceManager
-
level
-
mainThread
-
lightEngine
-
mainThreadProcessor
-
chunkMap
-
dataStorage
-
lastInhabitedUpdate
private long lastInhabitedUpdate -
spawnEnemies
private boolean spawnEnemies -
spawnFriendlies
private boolean spawnFriendlies -
CACHE_SIZE
private static final int CACHE_SIZE- See Also:
-
lastChunkPos
private final long[] lastChunkPos -
lastChunkStatus
-
lastChunk
-
lastSpawnState
-
-
Constructor Details
-
ServerChunkCache
public ServerChunkCache(ServerLevel level, LevelStorageSource.LevelStorageAccess levelStorageAccess, com.mojang.datafixers.DataFixer fixerUpper, StructureTemplateManager structureManager, Executor dispatcher, ChunkGenerator generator, int viewDistance, int simulationDistance, boolean sync, ChunkProgressListener progressListener, ChunkStatusUpdateListener chunkStatusListener, Supplier<DimensionDataStorage> overworldDataStorage)
-
-
Method Details
-
getLightEngine
- Specified by:
getLightEnginein classChunkSource
-
getVisibleChunkIfPresent
-
getTickingGenerated
public int getTickingGenerated() -
storeInCache
-
getChunk
- Specified by:
getChunkin classChunkSource
-
getChunkNow
- Overrides:
getChunkNowin classChunkSource
-
clearCache
private void clearCache() -
getChunkFuture
public CompletableFuture<ChunkResult<ChunkAccess>> getChunkFuture(int x, int z, ChunkStatus chunkStatus, boolean requireChunk) -
getChunkFutureMainThread
private CompletableFuture<ChunkResult<ChunkAccess>> getChunkFutureMainThread(int x, int z, ChunkStatus chunkStatus, boolean requireChunk) -
chunkAbsent
-
hasChunk
public boolean hasChunk(int x, int z) Checks to see if a chunk exists at x, z- Overrides:
hasChunkin classChunkSource- Returns:
trueif a chunk is loaded at the provided position, without forcing a chunk load.
-
getChunkForLighting
- Specified by:
getChunkForLightingin interfaceLightChunkGetter- Overrides:
getChunkForLightingin classChunkSource
-
getLevel
- Specified by:
getLevelin interfaceLightChunkGetter
-
pollTask
public boolean pollTask() -
runDistanceManagerUpdates
boolean runDistanceManagerUpdates() -
isPositionTicking
public boolean isPositionTicking(long chunkPos) -
save
public void save(boolean flush) -
close
- Specified by:
closein interfaceAutoCloseable- Overrides:
closein classChunkSource- Throws:
IOException
-
tick
- Specified by:
tickin classChunkSource
-
tickChunks
private void tickChunks() -
getFullChunk
-
gatherStats
- Specified by:
gatherStatsin classChunkSource
-
getPendingTasksCount
public int getPendingTasksCount() -
getGenerator
-
getGeneratorState
-
randomState
-
getLoadedChunksCount
public int getLoadedChunksCount()- Specified by:
getLoadedChunksCountin classChunkSource
-
blockChanged
-
onLightUpdate
- Specified by:
onLightUpdatein interfaceLightChunkGetter
-
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) -
updateChunkForced
- Overrides:
updateChunkForcedin classChunkSource
-
move
-
removeEntity
-
addEntity
-
broadcastAndSend
-
broadcast
-
setViewDistance
public void setViewDistance(int viewDistance) -
setSimulationDistance
public void setSimulationDistance(int simulationDistance) -
setSpawnSettings
public void setSpawnSettings(boolean hostile, boolean peaceful) - Overrides:
setSpawnSettingsin classChunkSource
-
getChunkDebugData
-
getDataStorage
-
getPoiManager
-
chunkScanner
-
getLastSpawnState
-
removeTicketsOnClosing
public void removeTicketsOnClosing()
-