Class LightEngine<M extends DataLayerStorageMap<M>,S extends LayerLightSectionStorage<M>>
java.lang.Object
net.minecraft.world.level.lighting.LightEngine<M,S>
- All Implemented Interfaces:
LayerLightEventListener
,LightEventListener
- Direct Known Subclasses:
BlockLightEngine
,SkyLightEngine
public abstract class LightEngine<M extends DataLayerStorageMap<M>,S extends LayerLightSectionStorage<M>>
extends Object
implements LayerLightEventListener
-
Nested Class Summary
Nested classes/interfaces inherited from interface net.minecraft.world.level.lighting.LayerLightEventListener
LayerLightEventListener.DummyLightLayerEventListener
-
Field Summary
Modifier and TypeFieldDescriptionprivate final it.unimi.dsi.fastutil.longs.LongOpenHashSet
private static final int
protected final LightChunkGetter
private final it.unimi.dsi.fastutil.longs.LongArrayFIFOQueue
private final it.unimi.dsi.fastutil.longs.LongArrayFIFOQueue
private final LightChunk[]
private final long[]
static final int
protected static final int
private static final int
private final BlockPos.MutableBlockPos
protected static final Direction[]
protected static final long
protected final S
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
checkBlock
(BlockPos p_285352_) protected abstract void
checkNode
(long p_285507_) private void
protected void
enqueueDecrease
(long p_285228_, long p_285464_) protected void
enqueueIncrease
(long p_285223_, long p_285022_) protected LightChunk
getChunk
(int p_284967_, int p_285447_) getDataLayerData
(SectionPos p_285093_) getDebugData
(long p_285363_) getDebugSectionType
(long p_285320_) static int
getLightBlockInto
(BlockGetter p_285330_, BlockState p_285453_, BlockPos p_285187_, BlockState p_285318_, BlockPos p_285240_, Direction p_285196_, int p_285248_) int
getLightValue
(BlockPos p_285149_) protected VoxelShape
getOcclusionShape
(BlockState p_285136_, long p_285517_, Direction p_285376_) static VoxelShape
getOcclusionShape
(BlockGetter p_285472_, BlockPos p_285229_, BlockState p_285020_, Direction p_285455_) protected int
getOpacity
(BlockState p_285084_, BlockPos p_285057_) protected BlockState
static boolean
hasDifferentLightProperties
(BlockGetter p_285159_, BlockPos p_284985_, BlockState p_285110_, BlockState p_285372_) boolean
protected static boolean
isEmptyShape
(BlockState p_285133_) protected abstract void
propagateDecrease
(long p_284941_, long p_285213_) private int
protected abstract void
propagateIncrease
(long p_285325_, long p_285026_, int p_285197_) private int
void
queueSectionData
(long p_285221_, DataLayer p_285427_) void
retainData
(ChunkPos p_285314_, boolean p_284937_) int
void
setLightEnabled
(ChunkPos p_285116_, boolean p_285522_) protected boolean
shapeOccludes
(long p_285115_, BlockState p_285154_, long p_284957_, BlockState p_285155_, Direction p_285327_) void
updateSectionStatus
(SectionPos p_285167_, boolean p_284934_) 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
propagateLightSources, updateSectionStatus
-
Field Details
-
MAX_LEVEL
public static final int MAX_LEVEL- See Also:
-
MIN_OPACITY
protected static final int MIN_OPACITY- See Also:
-
PULL_LIGHT_IN_ENTRY
protected static final long PULL_LIGHT_IN_ENTRY -
MIN_QUEUE_SIZE
private static final int MIN_QUEUE_SIZE- See Also:
-
PROPAGATION_DIRECTIONS
-
chunkSource
-
storage
-
blockNodesToCheck
private final it.unimi.dsi.fastutil.longs.LongOpenHashSet blockNodesToCheck -
decreaseQueue
private final it.unimi.dsi.fastutil.longs.LongArrayFIFOQueue decreaseQueue -
increaseQueue
private final it.unimi.dsi.fastutil.longs.LongArrayFIFOQueue increaseQueue -
mutablePos
-
CACHE_SIZE
private static final int CACHE_SIZE- See Also:
-
lastChunkPos
private final long[] lastChunkPos -
lastChunk
-
-
Constructor Details
-
LightEngine
-
-
Method Details
-
hasDifferentLightProperties
public static boolean hasDifferentLightProperties(BlockGetter p_285159_, BlockPos p_284985_, BlockState p_285110_, BlockState p_285372_) -
getLightBlockInto
public static int getLightBlockInto(BlockGetter p_285330_, BlockState p_285453_, BlockPos p_285187_, BlockState p_285318_, BlockPos p_285240_, Direction p_285196_, int p_285248_) -
getOcclusionShape
public static VoxelShape getOcclusionShape(BlockGetter p_285472_, BlockPos p_285229_, BlockState p_285020_, Direction p_285455_) -
isEmptyShape
-
getState
-
getOpacity
-
shapeOccludes
protected boolean shapeOccludes(long p_285115_, BlockState p_285154_, long p_284957_, BlockState p_285155_, Direction p_285327_) -
getOcclusionShape
-
getChunk
-
clearChunkCache
private void clearChunkCache() -
checkBlock
- Specified by:
checkBlock
in interfaceLightEventListener
-
queueSectionData
-
retainData
-
updateSectionStatus
- Specified by:
updateSectionStatus
in interfaceLightEventListener
-
setLightEnabled
- Specified by:
setLightEnabled
in interfaceLightEventListener
-
runLightUpdates
public int runLightUpdates()- Specified by:
runLightUpdates
in interfaceLightEventListener
-
propagateIncreases
private int propagateIncreases() -
propagateDecreases
private int propagateDecreases() -
enqueueDecrease
protected void enqueueDecrease(long p_285228_, long p_285464_) -
enqueueIncrease
protected void enqueueIncrease(long p_285223_, long p_285022_) -
hasLightWork
public boolean hasLightWork()- Specified by:
hasLightWork
in interfaceLightEventListener
-
getDataLayerData
- Specified by:
getDataLayerData
in interfaceLayerLightEventListener
-
getLightValue
- Specified by:
getLightValue
in interfaceLayerLightEventListener
-
getDebugData
-
getDebugSectionType
-
checkNode
protected abstract void checkNode(long p_285507_) -
propagateIncrease
protected abstract void propagateIncrease(long p_285325_, long p_285026_, int p_285197_) -
propagateDecrease
protected abstract void propagateDecrease(long p_284941_, long p_285213_)
-