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 dsxintermediary 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 aLdsx;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 bLdsx;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 cLdsx;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 dLdsx;d:Ldat;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 nLdsx;n:[Lgv;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 oLdsx;o:Lckd;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 pLdsx;p:Ldba;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 eLdsx;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 fLdsx;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 gLdsx;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 hLdsx;h:Ldst;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 iLdsx;i:Ldst;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 jLdsx;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 kLdsx;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 lLdsx;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 qLdsx;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 rLdsx;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 sLdsx;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 mLdsx;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>Ldsx;<init>(Lckd;Ldba;Ldst;)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 gLdsx;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 aLdsx;a(JZ)Ldat;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 aLdsx;a(Ldst;J)Ldat;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 hLdsx;h(J)Ldat;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 dLdsx;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 iLdsx;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 bLdsx;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 cLdsu;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 bLahj;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 aLdsu;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 jLdsx;j(J)Ldat;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 aLdsx;a(Ldsv;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 aLdsx;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 aLdsx;a(Ldsv;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 bLdsx;b(Ldsv;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 kLdsx;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 lLdsx;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 bLdsx;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 cLdsx;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 aLdsx;a(JLdat;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 dLdsx;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 dLdsx;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 eLdsx;e()Vintermediary method_15530Lnet/minecraft/class_3560;method_15530()Vnamed notifyChangesLnet/minecraft/world/chunk/light/LightStorage;notifyChanges()V
-