public abstract class LightStorage<M extends ChunkToNibbleArrayMap<M>> extends SectionDistanceLevelPropagator
Modifier and Type | Field and Description |
---|---|
private ChunkProvider |
chunkProvider |
private static Direction[] |
DIRECTIONS |
protected it.unimi.dsi.fastutil.longs.LongSet |
dirtySections |
protected static ChunkNibbleArray |
EMPTY |
protected it.unimi.dsi.fastutil.longs.LongSet |
field_15797 |
protected it.unimi.dsi.fastutil.longs.LongSet |
field_15802 |
protected it.unimi.dsi.fastutil.longs.LongSet |
field_15804 |
private it.unimi.dsi.fastutil.longs.LongSet |
field_19342 |
protected boolean |
hasLightUpdates |
protected M |
lightArrays |
protected it.unimi.dsi.fastutil.longs.Long2ObjectMap<ChunkNibbleArray> |
lightArraysToAdd |
private it.unimi.dsi.fastutil.longs.LongSet |
lightArraysToRemove |
private LightType |
lightType |
protected it.unimi.dsi.fastutil.longs.LongSet |
nonEmptySections |
protected M |
uncachedLightArrays |
Modifier | Constructor and Description |
---|---|
protected |
LightStorage(LightType lightType,
ChunkProvider chunkProvider,
M lightData) |
Modifier and Type | Method and Description |
---|---|
protected ChunkNibbleArray |
createLightArray(long pos) |
protected int |
get(long blockPos) |
protected int |
getInitialLevel(long id) |
protected int |
getLevel(long id) |
protected abstract int |
getLight(long blockPos) |
ChunkNibbleArray |
getLightArray(long sectionPos) |
protected ChunkNibbleArray |
getLightArray(long sectionPos,
boolean cached) |
protected ChunkNibbleArray |
getLightArray(M storage,
long sectionPos) |
protected boolean |
hasLight(long sectionPos) |
protected boolean |
hasLightUpdates() |
protected void |
notifyChunkProvider() |
protected void |
onChunkRemoved(long long2) |
protected void |
onLightArrayCreated(long blockPos) |
protected void |
removeChunkData(ChunkLightProvider<?,?> storage,
long blockChunkPos) |
protected void |
set(long blockPos,
int value) |
protected void |
setLevel(long id,
int level) |
protected void |
setLightArray(long pos,
ChunkNibbleArray array) |
protected void |
setLightEnabled(long long2,
boolean bool) |
void |
setRetainData(long long2,
boolean bool) |
protected void |
updateAll() |
protected void |
updateLightArrays(ChunkLightProvider<M,?> lightProvider,
boolean doSkylight,
boolean skipEdgeLightPropagation) |
protected void |
updateSectionStatus(long pos,
boolean empty) |
getPropagatedLevel, isMarker, propagateLevel, recalculateLevel, update
applyPendingUpdates, hasPendingUpdates, method_24206, method_24208, propagateLevel, removePendingUpdate, resetLevel, updateLevel
protected static final ChunkNibbleArray EMPTY
private static final Direction[] DIRECTIONS
private final LightType lightType
private final ChunkProvider chunkProvider
protected final it.unimi.dsi.fastutil.longs.LongSet nonEmptySections
protected final it.unimi.dsi.fastutil.longs.LongSet field_15797
protected final it.unimi.dsi.fastutil.longs.LongSet field_15804
protected volatile M extends ChunkToNibbleArrayMap<M> uncachedLightArrays
protected final M extends ChunkToNibbleArrayMap<M> lightArrays
protected final it.unimi.dsi.fastutil.longs.LongSet field_15802
protected final it.unimi.dsi.fastutil.longs.LongSet dirtySections
protected final it.unimi.dsi.fastutil.longs.Long2ObjectMap<ChunkNibbleArray> lightArraysToAdd
private final it.unimi.dsi.fastutil.longs.LongSet field_19342
private final it.unimi.dsi.fastutil.longs.LongSet lightArraysToRemove
protected volatile boolean hasLightUpdates
protected LightStorage(LightType lightType, ChunkProvider chunkProvider, M lightData)
protected boolean hasLight(long sectionPos)
@Nullable protected ChunkNibbleArray getLightArray(long sectionPos, boolean cached)
@Nullable protected ChunkNibbleArray getLightArray(M storage, long sectionPos)
@Nullable public ChunkNibbleArray getLightArray(long sectionPos)
protected abstract int getLight(long blockPos)
protected int get(long blockPos)
protected void set(long blockPos, int value)
protected int getLevel(long id)
getLevel
in class LevelPropagator
protected int getInitialLevel(long id)
getInitialLevel
in class SectionDistanceLevelPropagator
protected void setLevel(long id, int level)
setLevel
in class LevelPropagator
protected ChunkNibbleArray createLightArray(long pos)
protected void removeChunkData(ChunkLightProvider<?,?> storage, long blockChunkPos)
protected boolean hasLightUpdates()
protected void updateLightArrays(ChunkLightProvider<M,?> lightProvider, boolean doSkylight, boolean skipEdgeLightPropagation)
protected void onLightArrayCreated(long blockPos)
protected void onChunkRemoved(long long2)
protected void setLightEnabled(long long2, boolean bool)
public void setRetainData(long long2, boolean bool)
protected void setLightArray(long pos, @Nullable ChunkNibbleArray array)
protected void updateSectionStatus(long pos, boolean empty)
protected void updateAll()
protected void notifyChunkProvider()