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
private final ConsecutiveExecutor
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 ChunkTaskDispatcher
private final int
Fields inherited from class net.minecraft.world.level.lighting.LevelLightEngine
EMPTY, levelHeightAccessor, LIGHT_SECTION_PADDING
-
Constructor Summary
ConstructorsConstructorDescriptionThreadedLevelLightEngine
(LightChunkGetter pLightChunkGetter, ChunkMap pChunkMap, boolean pSkyLight, ConsecutiveExecutor pConsecutiveExecutor, ChunkTaskDispatcher pTaskDispatcher) -
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 p_9357_) void
close()
initializeLight
(ChunkAccess pChunk, boolean pLightEnabled) lightChunk
(ChunkAccess pChunk, boolean pIsLighted) void
propagateLightSources
(ChunkPos p_285029_) void
queueSectionData
(LightLayer p_285046_, SectionPos p_285496_, DataLayer p_285495_) void
retainData
(ChunkPos pPos, boolean pRetain) int
private void
void
setLightEnabled
(ChunkPos p_9336_, boolean p_9337_) 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, lightOnInColumn
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 -
consecutiveExecutor
-
lightTasks
private final it.unimi.dsi.fastutil.objects.ObjectList<com.mojang.datafixers.util.Pair<ThreadedLevelLightEngine.TaskType,Runnable>> lightTasks -
chunkMap
-
taskDispatcher
-
taskPerBatch
private final int taskPerBatch- See Also:
-
scheduled
-
-
Constructor Details
-
ThreadedLevelLightEngine
public ThreadedLevelLightEngine(LightChunkGetter pLightChunkGetter, ChunkMap pChunkMap, boolean pSkyLight, ConsecutiveExecutor pConsecutiveExecutor, ChunkTaskDispatcher pTaskDispatcher)
-
-
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 p_285046_, SectionPos p_285496_, @Nullable DataLayer p_285495_) - 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
-