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 ClassesNested classes/interfaces inherited from interface net.minecraft.world.level.lighting.LayerLightEventListener
LayerLightEventListener.DummyLightLayerEventListener -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final it.unimi.dsi.fastutil.longs.LongOpenHashSetprivate static final intprotected final LightChunkGetterprivate final it.unimi.dsi.fastutil.longs.LongArrayFIFOQueueprivate final it.unimi.dsi.fastutil.longs.LongArrayFIFOQueueprivate final LightChunk[]private final long[]static final intprotected static final intprivate static final intprotected static final Direction[]protected static final longprotected final S -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcheckBlock(BlockPos pPos) protected abstract voidcheckNode(long pPackedPos) private voidprotected voidenqueueDecrease(long pPackedPos1, long pPackedPos2) protected voidenqueueIncrease(long pPackedPos1, long pPackedPos2) protected LightChunkgetChunk(int pX, int pZ) getDataLayerData(SectionPos pSectionPos) getDebugData(long pSectionPos) getDebugSectionType(long pSectionPos) static intgetLightBlockInto(BlockState pState1, BlockState pState2, Direction pDirection, int pDefaultReturnValue) intgetLightValue(BlockPos pLevelPos) static VoxelShapegetOcclusionShape(BlockState pState, Direction pDirection) protected intgetOpacity(BlockState pState) protected BlockStatestatic booleanhasDifferentLightProperties(BlockState pState1, BlockState pState2) Deprecated.Neo: use overload with level context insteadstatic booleanhasDifferentLightProperties(BlockGetter level, BlockPos pos, BlockState p_285110_, BlockState p_285372_) booleanprotected static booleanisEmptyShape(BlockState pState) protected abstract voidpropagateDecrease(long pPackedPos, long pLightLevel) private intprotected abstract voidpropagateIncrease(long pPackedPos, long pQueueEntry, int pLightLevel) private intvoidqueueSectionData(long pSectionPos, DataLayer pData) voidretainData(ChunkPos pChunkPos, boolean pRetainData) intvoidsetLightEnabled(ChunkPos pChunkPos, boolean pLightEnabled) protected booleanshapeOccludes(BlockState pState1, BlockState pState2, Direction pDirection) voidupdateSectionStatus(SectionPos pPos, boolean pIsQueueEmpty) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods 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 -
CACHE_SIZE
private static final int CACHE_SIZE- See Also:
-
lastChunkPos
private final long[] lastChunkPos -
lastChunk
-
-
Constructor Details
-
LightEngine
-
-
Method Details
-
hasDifferentLightProperties
@Deprecated public static boolean hasDifferentLightProperties(BlockState pState1, BlockState pState2) Deprecated.Neo: use overload with level context instead -
hasDifferentLightProperties
public static boolean hasDifferentLightProperties(BlockGetter level, BlockPos pos, BlockState p_285110_, BlockState p_285372_) -
getLightBlockInto
public static int getLightBlockInto(BlockState pState1, BlockState pState2, Direction pDirection, int pDefaultReturnValue) -
getOcclusionShape
-
isEmptyShape
-
getState
-
getOpacity
-
shapeOccludes
-
getChunk
-
clearChunkCache
private void clearChunkCache() -
checkBlock
- Specified by:
checkBlockin interfaceLightEventListener
-
queueSectionData
-
retainData
-
updateSectionStatus
- Specified by:
updateSectionStatusin interfaceLightEventListener
-
setLightEnabled
- Specified by:
setLightEnabledin interfaceLightEventListener
-
runLightUpdates
public int runLightUpdates()- Specified by:
runLightUpdatesin interfaceLightEventListener
-
propagateIncreases
private int propagateIncreases() -
propagateDecreases
private int propagateDecreases() -
enqueueDecrease
protected void enqueueDecrease(long pPackedPos1, long pPackedPos2) -
enqueueIncrease
protected void enqueueIncrease(long pPackedPos1, long pPackedPos2) -
hasLightWork
public boolean hasLightWork()- Specified by:
hasLightWorkin interfaceLightEventListener
-
getDataLayerData
- Specified by:
getDataLayerDatain interfaceLayerLightEventListener
-
getLightValue
- Specified by:
getLightValuein interfaceLayerLightEventListener
-
getDebugData
-
getDebugSectionType
-
checkNode
protected abstract void checkNode(long pPackedPos) -
propagateIncrease
protected abstract void propagateIncrease(long pPackedPos, long pQueueEntry, int pLightLevel) -
propagateDecrease
protected abstract void propagateDecrease(long pPackedPos, long pLightLevel)
-