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 p_285352_) 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 p_285093_) getDebugData(long pSectionPos) getDebugSectionType(long pSectionPos) static intgetLightBlockInto(BlockState pState1, BlockState pState2, Direction pDirection, int pDefaultReturnValue) intgetLightValue(BlockPos p_285149_) 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 p_285116_, boolean p_285522_) protected booleanshapeOccludes(BlockState pState1, BlockState pState2, Direction pDirection) voidupdateSectionStatus(SectionPos p_285167_, boolean p_284934_) 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)
-