Class LevelChunk
java.lang.Object
net.minecraft.world.level.chunk.ChunkAccess
net.minecraft.world.level.chunk.LevelChunk
- All Implemented Interfaces:
DebugValueSource, BiomeManager.NoiseBiomeSource, BlockGetter, LightChunk, StructureAccess, LevelHeightAccessor, IAttachmentHolder, IBlockGetterExtension
- Direct Known Subclasses:
EmptyLevelChunk
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate classstatic enumstatic interfaceprivate static classstatic interfaceNested classes/interfaces inherited from class ChunkAccess
ChunkAccess.PackedTicksNested classes/interfaces inherited from interface BlockGetter
BlockGetter.BlockStepVisitorNested classes/interfaces inherited from interface DebugValueSource
DebugValueSource.Registration, DebugValueSource.ValueGetter<T> -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final LevelChunkAuxiliaryLightManagerprivate final LevelChunkTicks<Block> private final LevelChunkTicks<Fluid> private @Nullable Supplier<FullChunkStatus> private final it.unimi.dsi.fastutil.ints.Int2ObjectMap<GameEventListenerRegistry> private final Levelprivate booleanprivate static final org.slf4j.Loggerprivate static final TickingBlockEntityprivate @Nullable LevelChunk.PostLoadProcessorprivate final Map<BlockPos, LevelChunk.RebindableTickingBlockEntityWrapper> private LevelChunk.UnsavedListenerFields inherited from class ChunkAccess
blendingData, blockEntities, chunkPos, heightmaps, levelHeightAccessor, NO_FILLED_SECTION, noiseChunk, pendingBlockEntities, postProcessing, sections, skyLightSources, upgradeData -
Constructor Summary
ConstructorsConstructorDescriptionLevelChunk(ServerLevel level, ProtoChunk protoChunk, @Nullable LevelChunk.PostLoadProcessor postLoad) LevelChunk(Level level, ChunkPos pos) LevelChunk(Level level, ChunkPos pos, UpgradeData upgradeData, LevelChunkTicks<Block> blockTicks, LevelChunkTicks<Fluid> fluidTicks, long inhabitedTime, LevelChunkSection @Nullable [] sections, @Nullable LevelChunk.PostLoadProcessor postLoad, @Nullable BlendingData blendingData) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddAndRegisterBlockEntity(BlockEntity blockEntity) voidDeprecated.private <T extends BlockEntity>
voidaddGameEventListener(T blockEntity, ServerLevel level) voidprivate @Nullable BlockEntityprivate <T extends BlockEntity>
TickingBlockEntitycreateTicker(T blockEntity, BlockEntityTicker<T> ticker) Get theAuxiliaryLightManagerof the chunk at the givenChunkPos.@Nullable BlockEntitygetBlockEntity(BlockPos pos) @Nullable BlockEntitygetBlockEntity(BlockPos pos, LevelChunk.EntityCreationType creationType) @Nullable CompoundTaggetBlockEntityNbtForSaving(BlockPos blockPos, HolderLookup.Provider registryAccess) getBlockState(BlockPos pos) getFluidState(int x, int y, int z) getFluidState(BlockPos pos) getLevel()getListenerRegistry(int section) getTicksForSerialization(long currentTick) booleanisEmpty()private booleanprivate booleanvoidvoidpostProcessGeneration(ServerLevel level) private @Nullable BlockEntitypromotePendingBlockEntity(BlockPos pos, CompoundTag tag) voidvoidregisterDebugValues(ServerLevel level, DebugValueSource.Registration registration) voidvoidprivate voidprivate <T extends BlockEntity>
voidremoveGameEventListener(T blockEntity, ServerLevel level) private voidremoveGameEventListenerRegistry(int sectionY) voidreplaceBiomes(FriendlyByteBuf buffer) voidreplaceWithPacketData(FriendlyByteBuf buffer, Map<Heightmap.Types, long[]> heightmaps, Consumer<ClientboundLevelChunkPacketData.BlockEntityTagOutput> blockEntities) voidvoidsetBlockEntity(BlockEntity blockEntity) @Nullable BlockStatesetBlockState(BlockPos pos, BlockState state, int flags) voidsetFullStatus(Supplier<FullChunkStatus> fullStatus) voidsetLoaded(boolean loaded) voidsetUnsavedListener(LevelChunk.UnsavedListener unsavedListener) final voidsyncData(AttachmentType<?> type) Syncs a data attachment of the given type with all relevant clients.voidunpackTicks(long currentTick) voidprivate <T extends BlockEntity>
voidupdateBlockEntityTicker(T blockEntity) Methods inherited from class ChunkAccess
addPackedPostProcess, addReferenceForStructure, canBeSerialized, carverBiome, fillBiomesFromNoise, findBlockLightSources, findBlocks, findBlocks, getAllReferences, getAllStarts, getAttachmentHolder, getBelowZeroRetrogen, getBlendingData, getBlockEntitiesPos, getBlockEntityNbt, getData, getExistingDataOrNull, getHeight, getHeight, getHeightAccessorForGeneration, getHeightmaps, getHighestFilledSectionIndex, getHighestGeneratedStatus, getHighestSectionPosition, getInhabitedTime, getMinY, getNoiseBiome, getOrCreateHeightmapUnprimed, getOrCreateNoiseChunk, getOrCreateOffsetList, getPos, getPostProcessing, getReferencesForStructure, getSection, getSections, getSkyLightSources, getStartForStructure, getUpgradeData, hasAnyStructureReferences, hasAttachments, hasData, hasPrimedHeightmap, incrementInhabitedTime, initializeLightSources, isLightCorrect, isOldNoiseGeneration, isUnsaved, isUpgrading, isYSpaceEmpty, markPosForPostprocessing, problemPath, problemPath, readAttachmentsFromNBT, removeData, setAllReferences, setAllStarts, setBlockEntityNbt, setBlockState, setData, setHeightmap, setInhabitedTime, setLightCorrect, setStartForStructure, tryMarkSaved, writeAttachmentsToNBTMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface BlockGetter
clip, clipWithInteractionOverride, getBlockEntity, getBlockFloorHeight, getBlockFloorHeight, getBlockStates, getLightEmission, isBlockInLineMethods inherited from interface IAttachmentHolder
getData, getData, getExistingData, getExistingData, getExistingDataOrNull, getExistingDataOrNull, hasAttachments, hasData, hasData, removeData, removeData, setData, setData, syncDataMethods inherited from interface IBlockGetterExtension
getAuxLightManager, getModelDataMethods inherited from interface LevelHeightAccessor
getMaxSectionY, getMaxY, getMinSectionY, getSectionIndex, getSectionIndexFromSectionY, getSectionsCount, getSectionYFromSectionIndex, isInsideBuildHeight, isOutsideBuildHeight, isOutsideBuildHeight
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
NULL_TICKER
-
tickersInLevel
-
loaded
private boolean loaded -
level
-
fullStatus
-
postLoad
-
gameEventListenerRegistrySections
private final it.unimi.dsi.fastutil.ints.Int2ObjectMap<GameEventListenerRegistry> gameEventListenerRegistrySections -
blockTicks
-
fluidTicks
-
unsavedListener
-
auxLightManager
-
-
Constructor Details
-
LevelChunk
-
LevelChunk
public LevelChunk(Level level, ChunkPos pos, UpgradeData upgradeData, LevelChunkTicks<Block> blockTicks, LevelChunkTicks<Fluid> fluidTicks, long inhabitedTime, LevelChunkSection @Nullable [] sections, @Nullable LevelChunk.PostLoadProcessor postLoad, @Nullable BlendingData blendingData) -
LevelChunk
public LevelChunk(ServerLevel level, ProtoChunk protoChunk, @Nullable LevelChunk.PostLoadProcessor postLoad)
-
-
Method Details
-
setUnsavedListener
-
markUnsaved
public void markUnsaved()- Overrides:
markUnsavedin classChunkAccess
-
getBlockTicks
- Specified by:
getBlockTicksin classChunkAccess
-
getFluidTicks
- Specified by:
getFluidTicksin classChunkAccess
-
getTicksForSerialization
- Specified by:
getTicksForSerializationin classChunkAccess
-
getListenerRegistry
- Overrides:
getListenerRegistryin classChunkAccess
-
getBlockState
- Specified by:
getBlockStatein interfaceBlockGetter
-
getFluidState
- Specified by:
getFluidStatein interfaceBlockGetter
-
getFluidState
-
setBlockState
- Specified by:
setBlockStatein classChunkAccess
-
addEntity
Deprecated.- Specified by:
addEntityin classChunkAccess
-
createBlockEntity
-
getBlockEntity
- Specified by:
getBlockEntityin interfaceBlockGetter
-
getBlockEntity
public @Nullable BlockEntity getBlockEntity(BlockPos pos, LevelChunk.EntityCreationType creationType) -
addAndRegisterBlockEntity
-
isInLevel
private boolean isInLevel() -
isTicking
-
setBlockEntity
- Specified by:
setBlockEntityin classChunkAccess
-
getBlockEntityNbtForSaving
public @Nullable CompoundTag getBlockEntityNbtForSaving(BlockPos blockPos, HolderLookup.Provider registryAccess) - Specified by:
getBlockEntityNbtForSavingin classChunkAccess
-
removeBlockEntity
- Specified by:
removeBlockEntityin classChunkAccess
-
removeGameEventListener
-
removeGameEventListenerRegistry
private void removeGameEventListenerRegistry(int sectionY) -
removeBlockEntityTicker
-
runPostLoad
public void runPostLoad() -
isEmpty
public boolean isEmpty() -
replaceWithPacketData
public void replaceWithPacketData(FriendlyByteBuf buffer, Map<Heightmap.Types, long[]> heightmaps, Consumer<ClientboundLevelChunkPacketData.BlockEntityTagOutput> blockEntities) -
replaceBiomes
-
setLoaded
public void setLoaded(boolean loaded) -
getLevel
- Overrides:
getLevelin classChunkAccess
-
getBlockEntities
-
postProcessGeneration
-
promotePendingBlockEntity
-
unpackTicks
public void unpackTicks(long currentTick) -
registerTickContainerInLevel
-
unregisterTickContainerFromLevel
-
registerDebugValues
- Specified by:
registerDebugValuesin interfaceDebugValueSource
-
getPersistedStatus
- Specified by:
getPersistedStatusin classChunkAccess
-
getFullStatus
-
setFullStatus
-
clearAllBlockEntities
public void clearAllBlockEntities() -
registerAllBlockEntitiesAfterLevelLoad
public void registerAllBlockEntitiesAfterLevelLoad() -
addGameEventListener
-
updateBlockEntityTicker
-
createTicker
private <T extends BlockEntity> TickingBlockEntity createTicker(T blockEntity, BlockEntityTicker<T> ticker) -
getAuxLightManager
Description copied from interface:IBlockGetterExtensionGet theAuxiliaryLightManagerof the chunk at the givenChunkPos.The light manager must be used to hold light values controlled by dynamic data from
BlockEntitys to ensure access to the light data is thread-safe and the data is available during chunk load from disk whereBlockEntitys are not yet added to the chunk.- Specified by:
getAuxLightManagerin interfaceIBlockGetterExtension- Parameters:
pos- The position of the chunk from which the light manager is requested- Returns:
- the light manager or
nullif the chunk is not accessible (ChunkSource.getChunkForLighting(int, int)returnednull) or the given implementation ofBlockGetterdoes not implement this method
-
syncData
Description copied from interface:IAttachmentHolderSyncs a data attachment of the given type with all relevant clients.If there is currently no attachment of the given type, the removal of the attachment is synced to the client.
- Specified by:
syncDatain interfaceIAttachmentHolder- See Also:
-