Package net.minecraft.world.chunk.light
Class LightStorage<M extends ChunkToNibbleArrayMap<M>>
java.lang.Object
net.minecraft.world.chunk.light.LevelPropagator
net.minecraft.world.SectionDistanceLevelPropagator
net.minecraft.world.chunk.light.LightStorage<M>
- Direct Known Subclasses:
BlockLightStorage,SkyLightStorage
public abstract class LightStorage<M extends ChunkToNibbleArrayMap<M>>
extends SectionDistanceLevelPropagator
LightStorage handles the access, storage and propagation of a specific kind of light within the world.
For example, separate instances will be used to store block light as opposed to sky light.
The smallest unit within LightStorage is the section. Sections represent a cube of 16x16x16 blocks and their lighting data. In turn, 16 sections stacked on top of each other form a column, which are analogous to the standard 16x256x16 world chunks.
To avoid allocations, LightStorage packs all the coordinate arguments into single long values. Extra care should be taken to ensure that the relevant types are being used where appropriate.
- See Also:
- Mappings:
Namespace Name official doqintermediary net/minecraft/class_3560named net/minecraft/world/chunk/light/LightStorage
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ChunkProviderprivate final LongSetprivate static final Direction[]protected final LongSetprotected static final ChunkNibbleArrayprotected static final intprotected static final intprotected static final intprotected booleanprivate final LightTypeprotected final LongSetprotected final LongSetprotected final LongSetprivate final LongSetprotected final Long2ObjectMap<ChunkNibbleArray>protected final LongSetprivate final LongSetprotected final Mprotected M -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedLightStorage(LightType lightType, ChunkProvider chunkProvider, M lightData) -
Method Summary
Modifier and TypeMethodDescriptionprotected ChunkNibbleArraycreateSection(long sectionPos) protected voidenqueueSectionData(long sectionPos, @Nullable ChunkNibbleArray array, boolean nonEdge) protected intget(long blockPos) protected intgetInitialLevel(long id) protected intgetLevel(long id) protected abstract intgetLight(long blockPos) getLightSection(long sectionPos) protected @Nullable ChunkNibbleArraygetLightSection(long sectionPos, boolean cached) protected @Nullable ChunkNibbleArraygetLightSection(M storage, long sectionPos) protected booleanprotected booleanhasSection(long sectionPos) protected voidprotected voidonLoadSection(long sectionPos) protected voidonUnloadSection(long sectionPos) protected voidremoveSection(ChunkLightProvider<?, ?> storage, long sectionPos) protected voidset(long blockPos, int value) protected voidsetColumnEnabled(long columnPos, boolean enabled) protected voidsetLevel(long id, int level) voidsetRetainColumn(long sectionPos, boolean retain) protected voidsetSectionStatus(long sectionPos, boolean notReady) protected voidprotected voidupdateLight(ChunkLightProvider<M, ?> lightProvider, boolean doSkylight, boolean skipEdgeLightPropagation) private voidupdateSection(ChunkLightProvider<M, ?> lightProvider, long sectionPos) Methods inherited from class net.minecraft.world.SectionDistanceLevelPropagator
getPropagatedLevel, isMarker, propagateLevel, recalculateLevel, updateMethods inherited from class net.minecraft.world.chunk.light.LevelPropagator
applyPendingUpdates, getPendingUpdateCount, hasPendingUpdates, propagateLevel, removePendingUpdate, removePendingUpdateIf, resetLevel, updateLevel
-
Field Details
-
field_31710
protected static final int field_31710- See Also:
- Mappings:
Namespace Name Mixin selector official aLdoq;a:Iintermediary field_31710Lnet/minecraft/class_3560;field_31710:Inamed field_31710Lnet/minecraft/world/chunk/light/LightStorage;field_31710:I
-
field_31711
protected static final int field_31711- See Also:
- Mappings:
Namespace Name Mixin selector official bLdoq;b:Iintermediary field_31711Lnet/minecraft/class_3560;field_31711:Inamed field_31711Lnet/minecraft/world/chunk/light/LightStorage;field_31711:I
-
field_31712
protected static final int field_31712- See Also:
- Mappings:
Namespace Name Mixin selector official cLdoq;c:Iintermediary field_31712Lnet/minecraft/class_3560;field_31712:Inamed field_31712Lnet/minecraft/world/chunk/light/LightStorage;field_31712:I
-
EMPTY
- Mappings:
Namespace Name Mixin selector official dLdoq;d:Lcwt;intermediary field_15801Lnet/minecraft/class_3560;field_15801:Lnet/minecraft/class_2804;named EMPTYLnet/minecraft/world/chunk/light/LightStorage;EMPTY:Lnet/minecraft/world/chunk/ChunkNibbleArray;
-
DIRECTIONS
- Mappings:
Namespace Name Mixin selector official nLdoq;n:[Lgy;intermediary field_15799Lnet/minecraft/class_3560;field_15799:[Lnet/minecraft/class_2350;named DIRECTIONSLnet/minecraft/world/chunk/light/LightStorage;DIRECTIONS:[Lnet/minecraft/util/math/Direction;
-
lightType
- Mappings:
Namespace Name Mixin selector official oLdoq;o:Lcgl;intermediary field_15805Lnet/minecraft/class_3560;field_15805:Lnet/minecraft/class_1944;named lightTypeLnet/minecraft/world/chunk/light/LightStorage;lightType:Lnet/minecraft/world/LightType;
-
chunkProvider
- Mappings:
Namespace Name Mixin selector official pLdoq;p:Lcxa;intermediary field_15803Lnet/minecraft/class_3560;field_15803:Lnet/minecraft/class_2823;named chunkProviderLnet/minecraft/world/chunk/light/LightStorage;chunkProvider:Lnet/minecraft/world/chunk/ChunkProvider;
-
readySections
- Mappings:
Namespace Name Mixin selector official eLdoq;e:Lit/unimi/dsi/fastutil/longs/LongSet;intermediary field_15808Lnet/minecraft/class_3560;field_15808:Lit/unimi/dsi/fastutil/longs/LongSet;named readySectionsLnet/minecraft/world/chunk/light/LightStorage;readySections:Lit/unimi/dsi/fastutil/longs/LongSet;
-
markedNotReadySections
- Mappings:
Namespace Name Mixin selector official fLdoq;f:Lit/unimi/dsi/fastutil/longs/LongSet;intermediary field_15797Lnet/minecraft/class_3560;field_15797:Lit/unimi/dsi/fastutil/longs/LongSet;named markedNotReadySectionsLnet/minecraft/world/chunk/light/LightStorage;markedNotReadySections:Lit/unimi/dsi/fastutil/longs/LongSet;
-
markedReadySections
- Mappings:
Namespace Name Mixin selector official gLdoq;g:Lit/unimi/dsi/fastutil/longs/LongSet;intermediary field_15804Lnet/minecraft/class_3560;field_15804:Lit/unimi/dsi/fastutil/longs/LongSet;named markedReadySectionsLnet/minecraft/world/chunk/light/LightStorage;markedReadySections:Lit/unimi/dsi/fastutil/longs/LongSet;
-
uncachedStorage
- Mappings:
Namespace Name Mixin selector official hLdoq;h:Ldom;intermediary field_15806Lnet/minecraft/class_3560;field_15806:Lnet/minecraft/class_3556;named uncachedStorageLnet/minecraft/world/chunk/light/LightStorage;uncachedStorage:Lnet/minecraft/world/chunk/ChunkToNibbleArrayMap;
-
storage
- Mappings:
Namespace Name Mixin selector official iLdoq;i:Ldom;intermediary field_15796Lnet/minecraft/class_3560;field_15796:Lnet/minecraft/class_3556;named storageLnet/minecraft/world/chunk/light/LightStorage;storage:Lnet/minecraft/world/chunk/ChunkToNibbleArrayMap;
-
dirtySections
- Mappings:
Namespace Name Mixin selector official jLdoq;j:Lit/unimi/dsi/fastutil/longs/LongSet;intermediary field_15802Lnet/minecraft/class_3560;field_15802:Lit/unimi/dsi/fastutil/longs/LongSet;named dirtySectionsLnet/minecraft/world/chunk/light/LightStorage;dirtySections:Lit/unimi/dsi/fastutil/longs/LongSet;
-
notifySections
- Mappings:
Namespace Name Mixin selector official kLdoq;k:Lit/unimi/dsi/fastutil/longs/LongSet;intermediary field_16448Lnet/minecraft/class_3560;field_16448:Lit/unimi/dsi/fastutil/longs/LongSet;named notifySectionsLnet/minecraft/world/chunk/light/LightStorage;notifySections:Lit/unimi/dsi/fastutil/longs/LongSet;
-
queuedSections
- Mappings:
Namespace Name Mixin selector official lLdoq;l:Lit/unimi/dsi/fastutil/longs/Long2ObjectMap;intermediary field_15807Lnet/minecraft/class_3560;field_15807:Lit/unimi/dsi/fastutil/longs/Long2ObjectMap;named queuedSectionsLnet/minecraft/world/chunk/light/LightStorage;queuedSections:Lit/unimi/dsi/fastutil/longs/Long2ObjectMap;
-
queuedEdgeSections
- Mappings:
Namespace Name Mixin selector official qLdoq;q:Lit/unimi/dsi/fastutil/longs/LongSet;intermediary field_25621Lnet/minecraft/class_3560;field_25621:Lit/unimi/dsi/fastutil/longs/LongSet;named queuedEdgeSectionsLnet/minecraft/world/chunk/light/LightStorage;queuedEdgeSections:Lit/unimi/dsi/fastutil/longs/LongSet;
-
columnsToRetain
- Mappings:
Namespace Name Mixin selector official rLdoq;r:Lit/unimi/dsi/fastutil/longs/LongSet;intermediary field_19342Lnet/minecraft/class_3560;field_19342:Lit/unimi/dsi/fastutil/longs/LongSet;named columnsToRetainLnet/minecraft/world/chunk/light/LightStorage;columnsToRetain:Lit/unimi/dsi/fastutil/longs/LongSet;
-
sectionsToRemove
- Mappings:
Namespace Name Mixin selector official sLdoq;s:Lit/unimi/dsi/fastutil/longs/LongSet;intermediary field_15798Lnet/minecraft/class_3560;field_15798:Lit/unimi/dsi/fastutil/longs/LongSet;named sectionsToRemoveLnet/minecraft/world/chunk/light/LightStorage;sectionsToRemove:Lit/unimi/dsi/fastutil/longs/LongSet;
-
hasLightUpdates
protected volatile boolean hasLightUpdates- Mappings:
Namespace Name Mixin selector official mLdoq;m:Zintermediary field_15800Lnet/minecraft/class_3560;field_15800:Znamed hasLightUpdatesLnet/minecraft/world/chunk/light/LightStorage;hasLightUpdates:Z
-
-
Constructor Details
-
LightStorage
- Mappings:
Namespace Name Mixin selector official <init>Ldoq;<init>(Lcgl;Lcxa;Ldom;)Vintermediary <init>Lnet/minecraft/class_3560;<init>(Lnet/minecraft/class_1944;Lnet/minecraft/class_2823;Lnet/minecraft/class_3556;)Vnamed <init>Lnet/minecraft/world/chunk/light/LightStorage;<init>(Lnet/minecraft/world/LightType;Lnet/minecraft/world/chunk/ChunkProvider;Lnet/minecraft/world/chunk/ChunkToNibbleArrayMap;)V
-
-
Method Details
-
hasSection
protected boolean hasSection(long sectionPos) - Mappings:
Namespace Name Mixin selector official gLdoq;g(J)Zintermediary method_15524Lnet/minecraft/class_3560;method_15524(J)Znamed hasSectionLnet/minecraft/world/chunk/light/LightStorage;hasSection(J)Z
-
getLightSection
- Mappings:
Namespace Name Mixin selector official aLdoq;a(JZ)Lcwt;intermediary method_15522Lnet/minecraft/class_3560;method_15522(JZ)Lnet/minecraft/class_2804;named getLightSectionLnet/minecraft/world/chunk/light/LightStorage;getLightSection(JZ)Lnet/minecraft/world/chunk/ChunkNibbleArray;
-
getLightSection
- Mappings:
Namespace Name Mixin selector official aLdoq;a(Ldom;J)Lcwt;intermediary method_15533Lnet/minecraft/class_3560;method_15533(Lnet/minecraft/class_3556;J)Lnet/minecraft/class_2804;named getLightSectionLnet/minecraft/world/chunk/light/LightStorage;getLightSection(Lnet/minecraft/world/chunk/ChunkToNibbleArrayMap;J)Lnet/minecraft/world/chunk/ChunkNibbleArray;
-
getLightSection
- Mappings:
Namespace Name Mixin selector official hLdoq;h(J)Lcwt;intermediary method_20533Lnet/minecraft/class_3560;method_20533(J)Lnet/minecraft/class_2804;named getLightSectionLnet/minecraft/world/chunk/light/LightStorage;getLightSection(J)Lnet/minecraft/world/chunk/ChunkNibbleArray;
-
getLight
protected abstract int getLight(long blockPos) - Mappings:
Namespace Name Mixin selector official dLdoq;d(J)Iintermediary method_15538Lnet/minecraft/class_3560;method_15538(J)Inamed getLightLnet/minecraft/world/chunk/light/LightStorage;getLight(J)I
-
get
protected int get(long blockPos) - Mappings:
Namespace Name Mixin selector official iLdoq;i(J)Iintermediary method_15537Lnet/minecraft/class_3560;method_15537(J)Inamed getLnet/minecraft/world/chunk/light/LightStorage;get(J)I
-
set
protected void set(long blockPos, int value) - Mappings:
Namespace Name Mixin selector official bLdoq;b(JI)Vintermediary method_15525Lnet/minecraft/class_3560;method_15525(JI)Vnamed setLnet/minecraft/world/chunk/light/LightStorage;set(JI)V
-
getLevel
protected int getLevel(long id) - Specified by:
getLevelin classLevelPropagator- Mappings:
Namespace Name Mixin selector official cLdon;c(J)Iintermediary method_15480Lnet/minecraft/class_3554;method_15480(J)Inamed getLevelLnet/minecraft/world/chunk/light/LevelPropagator;getLevel(J)I
-
getInitialLevel
protected int getInitialLevel(long id) - Specified by:
getInitialLevelin classSectionDistanceLevelPropagator- Mappings:
Namespace Name Mixin selector official bLafk;b(J)Iintermediary method_18749Lnet/minecraft/class_4079;method_18749(J)Inamed getInitialLevelLnet/minecraft/world/SectionDistanceLevelPropagator;getInitialLevel(J)I
-
setLevel
protected void setLevel(long id, int level) - Specified by:
setLevelin classLevelPropagator- Mappings:
Namespace Name Mixin selector official aLdon;a(JI)Vintermediary method_15485Lnet/minecraft/class_3554;method_15485(JI)Vnamed setLevelLnet/minecraft/world/chunk/light/LevelPropagator;setLevel(JI)V
-
createSection
- Mappings:
Namespace Name Mixin selector official jLdoq;j(J)Lcwt;intermediary method_15529Lnet/minecraft/class_3560;method_15529(J)Lnet/minecraft/class_2804;named createSectionLnet/minecraft/world/chunk/light/LightStorage;createSection(J)Lnet/minecraft/world/chunk/ChunkNibbleArray;
-
removeSection
- Mappings:
Namespace Name Mixin selector official aLdoq;a(Ldoo;J)Vintermediary method_15536Lnet/minecraft/class_3560;method_15536(Lnet/minecraft/class_3558;J)Vnamed removeSectionLnet/minecraft/world/chunk/light/LightStorage;removeSection(Lnet/minecraft/world/chunk/light/ChunkLightProvider;J)V
-
hasLightUpdates
protected boolean hasLightUpdates()- Mappings:
Namespace Name Mixin selector official aLdoq;a()Zintermediary method_15528Lnet/minecraft/class_3560;method_15528()Znamed hasLightUpdatesLnet/minecraft/world/chunk/light/LightStorage;hasLightUpdates()Z
-
updateLight
protected void updateLight(ChunkLightProvider<M, ?> lightProvider, boolean doSkylight, boolean skipEdgeLightPropagation) - Mappings:
Namespace Name Mixin selector official aLdoq;a(Ldoo;ZZ)Vintermediary method_15527Lnet/minecraft/class_3560;method_15527(Lnet/minecraft/class_3558;ZZ)Vnamed updateLightLnet/minecraft/world/chunk/light/LightStorage;updateLight(Lnet/minecraft/world/chunk/light/ChunkLightProvider;ZZ)V
-
updateSection
- Mappings:
Namespace Name Mixin selector official bLdoq;b(Ldoo;J)Vintermediary method_29967Lnet/minecraft/class_3560;method_29967(Lnet/minecraft/class_3558;J)Vnamed updateSectionLnet/minecraft/world/chunk/light/LightStorage;updateSection(Lnet/minecraft/world/chunk/light/ChunkLightProvider;J)V
-
onLoadSection
protected void onLoadSection(long sectionPos) - Mappings:
Namespace Name Mixin selector official kLdoq;k(J)Vintermediary method_15523Lnet/minecraft/class_3560;method_15523(J)Vnamed onLoadSectionLnet/minecraft/world/chunk/light/LightStorage;onLoadSection(J)V
-
onUnloadSection
protected void onUnloadSection(long sectionPos) - Mappings:
Namespace Name Mixin selector official lLdoq;l(J)Vintermediary method_15534Lnet/minecraft/class_3560;method_15534(J)Vnamed onUnloadSectionLnet/minecraft/world/chunk/light/LightStorage;onUnloadSection(J)V
-
setColumnEnabled
protected void setColumnEnabled(long columnPos, boolean enabled) - Mappings:
Namespace Name Mixin selector official bLdoq;b(JZ)Vintermediary method_15535Lnet/minecraft/class_3560;method_15535(JZ)Vnamed setColumnEnabledLnet/minecraft/world/chunk/light/LightStorage;setColumnEnabled(JZ)V
-
setRetainColumn
public void setRetainColumn(long sectionPos, boolean retain) - Mappings:
Namespace Name Mixin selector official cLdoq;c(JZ)Vintermediary method_20600Lnet/minecraft/class_3560;method_20600(JZ)Vnamed setRetainColumnLnet/minecraft/world/chunk/light/LightStorage;setRetainColumn(JZ)V
-
enqueueSectionData
protected void enqueueSectionData(long sectionPos, @Nullable @Nullable ChunkNibbleArray array, boolean nonEdge) - Mappings:
Namespace Name Mixin selector official aLdoq;a(JLcwt;Z)Vintermediary method_15532Lnet/minecraft/class_3560;method_15532(JLnet/minecraft/class_2804;Z)Vnamed enqueueSectionDataLnet/minecraft/world/chunk/light/LightStorage;enqueueSectionData(JLnet/minecraft/world/chunk/ChunkNibbleArray;Z)V
-
setSectionStatus
protected void setSectionStatus(long sectionPos, boolean notReady) - Mappings:
Namespace Name Mixin selector official dLdoq;d(JZ)Vintermediary method_15526Lnet/minecraft/class_3560;method_15526(JZ)Vnamed setSectionStatusLnet/minecraft/world/chunk/light/LightStorage;setSectionStatus(JZ)V
-
updateAll
protected void updateAll()- Mappings:
Namespace Name Mixin selector official dLdoq;d()Vintermediary method_15539Lnet/minecraft/class_3560;method_15539()Vnamed updateAllLnet/minecraft/world/chunk/light/LightStorage;updateAll()V
-
notifyChanges
protected void notifyChanges()- Mappings:
Namespace Name Mixin selector official eLdoq;e()Vintermediary method_15530Lnet/minecraft/class_3560;method_15530()Vnamed notifyChangesLnet/minecraft/world/chunk/light/LightStorage;notifyChanges()V
-