Class SectionStorage<R,P>
java.lang.Object
net.minecraft.world.level.chunk.storage.SectionStorage<R,P>
- All Implemented Interfaces:
AutoCloseable
- Direct Known Subclasses:
PoiManager
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static final record
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final com.mojang.serialization.Codec
<P> private final it.unimi.dsi.fastutil.longs.LongLinkedOpenHashSet
private final ChunkIOErrorReporter
protected final LevelHeightAccessor
private final it.unimi.dsi.fastutil.longs.LongSet
private final Object
(package private) static final org.slf4j.Logger
private final it.unimi.dsi.fastutil.longs.Long2ObjectMap
<CompletableFuture<Optional<SectionStorage.PackedChunk<P>>>> private final RegistryAccess
private static final String
private final SimpleRegionStorage
private final BiFunction
<P, Runnable, R> -
Constructor Summary
ConstructorsConstructorDescriptionSectionStorage
(SimpleRegionStorage p_321814_, com.mojang.serialization.Codec<P> p_363117_, Function<R, P> p_223510_, BiFunction<P, Runnable, R> p_360520_, Function<Runnable, R> p_223511_, RegistryAccess p_223515_, ChunkIOErrorReporter p_352357_, LevelHeightAccessor p_223516_) -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
void
void
flushAll()
get
(long p_63819_) private static long
protected R
getOrCreate
(long p_63828_) getOrLoad
(long p_63824_) (package private) static int
getVersion
(com.mojang.serialization.Dynamic<?> p_63806_) boolean
hasWork()
protected void
onSectionLoad
(long p_63813_) protected boolean
outsideStoredRange
(long p_156631_) void
Neo: Removes the data for the given chunk position.protected void
setDirty
(long p_63788_) protected void
tick
(BooleanSupplier p_63812_) private CompletableFuture
<Optional<SectionStorage.PackedChunk<P>>> private void
unpackChunk
(ChunkPos p_365521_) private void
unpackChunk
(ChunkPos p_365130_, SectionStorage.PackedChunk<P> p_361845_) private void
private void
writeChunk
(ChunkPos p_361540_) private <T> com.mojang.serialization.Dynamic
<T> writeChunk
(ChunkPos p_362535_, com.mojang.serialization.DynamicOps<T> p_360921_)
-
Field Details
-
LOGGER
static final org.slf4j.Logger LOGGER -
SECTIONS_TAG
- See Also:
-
simpleRegionStorage
-
storage
-
dirtyChunks
private final it.unimi.dsi.fastutil.longs.LongLinkedOpenHashSet dirtyChunks -
codec
-
packer
-
unpacker
-
factory
-
registryAccess
-
errorReporter
-
levelHeightAccessor
-
loadedChunks
private final it.unimi.dsi.fastutil.longs.LongSet loadedChunks -
pendingLoads
private final it.unimi.dsi.fastutil.longs.Long2ObjectMap<CompletableFuture<Optional<SectionStorage.PackedChunk<P>>>> pendingLoads -
loadLock
-
-
Constructor Details
-
SectionStorage
public SectionStorage(SimpleRegionStorage p_321814_, com.mojang.serialization.Codec<P> p_363117_, Function<R, P> p_223510_, BiFunction<P, Runnable, R> p_360520_, Function<Runnable, R> p_223511_, RegistryAccess p_223515_, ChunkIOErrorReporter p_352357_, LevelHeightAccessor p_223516_)
-
-
Method Details
-
tick
-
unpackPendingLoads
private void unpackPendingLoads() -
flushAll
public void flushAll() -
hasWork
public boolean hasWork() -
get
-
getOrLoad
-
outsideStoredRange
protected boolean outsideStoredRange(long p_156631_) -
getOrCreate
-
prefetch
-
unpackChunk
-
tryRead
-
unpackChunk
-
writeChunk
-
writeChunk
private <T> com.mojang.serialization.Dynamic<T> writeChunk(ChunkPos p_362535_, com.mojang.serialization.DynamicOps<T> p_360921_) -
getKey
-
onSectionLoad
protected void onSectionLoad(long p_63813_) -
setDirty
protected void setDirty(long p_63788_) -
getVersion
static int getVersion(com.mojang.serialization.Dynamic<?> p_63806_) -
flush
-
close
- Specified by:
close
in interfaceAutoCloseable
- Throws:
IOException
-
remove
Neo: Removes the data for the given chunk position. See PR #937
-