Package net.minecraft.server.level
Class ThreadedLevelLightEngine
java.lang.Object
net.minecraft.world.level.lighting.LevelLightEngine
net.minecraft.server.level.ThreadedLevelLightEngine
- All Implemented Interfaces:
AutoCloseable
,LightEventListener
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ChunkMap
static final int
private final it.unimi.dsi.fastutil.objects.ObjectList
<com.mojang.datafixers.util.Pair<ThreadedLevelLightEngine.TaskType, Runnable>> private static final org.slf4j.Logger
private final AtomicBoolean
private final ProcessorHandle
<ChunkTaskPriorityQueueSorter.Message<Runnable>> private final ProcessorMailbox
<Runnable> private final int
Fields inherited from class net.minecraft.world.level.lighting.LevelLightEngine
levelHeightAccessor, LIGHT_SECTION_PADDING
-
Constructor Summary
ConstructorsConstructorDescriptionThreadedLevelLightEngine
(LightChunkGetter pLightChunk, ChunkMap pChunkMap, boolean pSkyLight, ProcessorMailbox<Runnable> pTaskMailbox, ProcessorHandle<ChunkTaskPriorityQueueSorter.Message<Runnable>> pSorterMailbox) -
Method Summary
Modifier and TypeMethodDescriptionprivate void
addTask
(int pChunkX, int pChunkZ, IntSupplier pQueueLevelSupplier, ThreadedLevelLightEngine.TaskType pType, Runnable pTask) private void
addTask
(int pChunkX, int pChunkZ, ThreadedLevelLightEngine.TaskType pType, Runnable pTask) void
checkBlock
(BlockPos pPos) void
close()
initializeLight
(ChunkAccess pChunk, boolean pLightEnabled) lightChunk
(ChunkAccess pChunk, boolean pIsLighted) void
propagateLightSources
(ChunkPos pChunkPos) void
queueSectionData
(LightLayer pLightLayer, SectionPos pSectionPos, DataLayer pDataLayer) void
retainData
(ChunkPos pPos, boolean pRetain) int
private void
void
setLightEnabled
(ChunkPos pChunkPos, boolean pLightEnabled) void
protected void
updateChunkStatus
(ChunkPos pChunkPos) void
updateSectionStatus
(SectionPos pPos, boolean pIsEmpty) waitForPendingTasks
(int pX, int pZ) Methods inherited from class net.minecraft.world.level.lighting.LevelLightEngine
getDebugData, getDebugSectionType, getLayerListener, getLightSectionCount, getMaxLightSection, getMinLightSection, getRawBrightness, hasLightWork, lightOnInSection
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface net.minecraft.world.level.lighting.LightEventListener
updateSectionStatus
-
Field Details
-
DEFAULT_BATCH_SIZE
public static final int DEFAULT_BATCH_SIZE- See Also:
-
LOGGER
private static final org.slf4j.Logger LOGGER -
taskMailbox
-
lightTasks
private final it.unimi.dsi.fastutil.objects.ObjectList<com.mojang.datafixers.util.Pair<ThreadedLevelLightEngine.TaskType,Runnable>> lightTasks -
chunkMap
-
sorterMailbox
-
taskPerBatch
private final int taskPerBatch- See Also:
-
scheduled
-
-
Constructor Details
-
ThreadedLevelLightEngine
public ThreadedLevelLightEngine(LightChunkGetter pLightChunk, ChunkMap pChunkMap, boolean pSkyLight, ProcessorMailbox<Runnable> pTaskMailbox, ProcessorHandle<ChunkTaskPriorityQueueSorter.Message<Runnable>> pSorterMailbox)
-
-
Method Details
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
-
runLightUpdates
public int runLightUpdates()- Specified by:
runLightUpdates
in interfaceLightEventListener
- Overrides:
runLightUpdates
in classLevelLightEngine
-
checkBlock
- Specified by:
checkBlock
in interfaceLightEventListener
- Overrides:
checkBlock
in classLevelLightEngine
-
updateChunkStatus
-
updateSectionStatus
- Specified by:
updateSectionStatus
in interfaceLightEventListener
- Overrides:
updateSectionStatus
in classLevelLightEngine
-
propagateLightSources
- Specified by:
propagateLightSources
in interfaceLightEventListener
- Overrides:
propagateLightSources
in classLevelLightEngine
-
setLightEnabled
- Specified by:
setLightEnabled
in interfaceLightEventListener
- Overrides:
setLightEnabled
in classLevelLightEngine
-
queueSectionData
public void queueSectionData(LightLayer pLightLayer, SectionPos pSectionPos, @Nullable DataLayer pDataLayer) - Overrides:
queueSectionData
in classLevelLightEngine
-
addTask
private void addTask(int pChunkX, int pChunkZ, ThreadedLevelLightEngine.TaskType pType, Runnable pTask) -
addTask
private void addTask(int pChunkX, int pChunkZ, IntSupplier pQueueLevelSupplier, ThreadedLevelLightEngine.TaskType pType, Runnable pTask) -
retainData
- Overrides:
retainData
in classLevelLightEngine
-
initializeLight
-
lightChunk
-
tryScheduleUpdate
public void tryScheduleUpdate() -
runUpdate
private void runUpdate() -
waitForPendingTasks
-