public class ChunkHolder extends Object
Modifier and Type | Class and Description |
---|---|
static class |
ChunkHolder.LevelType |
static interface |
ChunkHolder.LevelUpdateListener |
static interface |
ChunkHolder.PlayersWatchingChunkProvider |
static interface |
ChunkHolder.Unloaded |
Constructor and Description |
---|
ChunkHolder(ChunkPos pos,
int level,
LightingProvider lightingProvider,
ChunkHolder.LevelUpdateListener levelUpdateListener,
ChunkHolder.PlayersWatchingChunkProvider playersWatchingChunkProvider) |
public static final com.mojang.datafixers.util.Either<Chunk,ChunkHolder.Unloaded> UNLOADED_CHUNK
public static final CompletableFuture<com.mojang.datafixers.util.Either<Chunk,ChunkHolder.Unloaded>> UNLOADED_CHUNK_FUTURE
public static final com.mojang.datafixers.util.Either<WorldChunk,ChunkHolder.Unloaded> UNLOADED_WORLD_CHUNK
private static final CompletableFuture<com.mojang.datafixers.util.Either<WorldChunk,ChunkHolder.Unloaded>> UNLOADED_WORLD_CHUNK_FUTURE
private static final List<ChunkStatus> CHUNK_STATUSES
private static final ChunkHolder.LevelType[] LEVEL_TYPES
private final AtomicReferenceArray<CompletableFuture<com.mojang.datafixers.util.Either<Chunk,ChunkHolder.Unloaded>>> futuresByStatus
private volatile CompletableFuture<com.mojang.datafixers.util.Either<WorldChunk,ChunkHolder.Unloaded>> borderFuture
private volatile CompletableFuture<com.mojang.datafixers.util.Either<WorldChunk,ChunkHolder.Unloaded>> tickingFuture
private volatile CompletableFuture<com.mojang.datafixers.util.Either<WorldChunk,ChunkHolder.Unloaded>> entityTickingFuture
private CompletableFuture<Chunk> future
private int lastTickLevel
private int level
private int completedLevel
private final ChunkPos pos
private final short[] blockUpdatePositions
private int blockUpdateCount
private int sectionsNeedingUpdateMask
private int lightSentWithBlocksBits
private int blockLightUpdateBits
private int skyLightUpdateBits
private final LightingProvider lightingProvider
private final ChunkHolder.LevelUpdateListener levelUpdateListener
private final ChunkHolder.PlayersWatchingChunkProvider playersWatchingChunkProvider
private boolean ticking
public ChunkHolder(ChunkPos pos, int level, LightingProvider lightingProvider, ChunkHolder.LevelUpdateListener levelUpdateListener, ChunkHolder.PlayersWatchingChunkProvider playersWatchingChunkProvider)
public CompletableFuture<com.mojang.datafixers.util.Either<Chunk,ChunkHolder.Unloaded>> getFuture(ChunkStatus leastStatus)
public CompletableFuture<com.mojang.datafixers.util.Either<Chunk,ChunkHolder.Unloaded>> getNowFuture(ChunkStatus leastStatus)
public CompletableFuture<com.mojang.datafixers.util.Either<WorldChunk,ChunkHolder.Unloaded>> getTickingFuture()
public CompletableFuture<com.mojang.datafixers.util.Either<WorldChunk,ChunkHolder.Unloaded>> getEntityTickingFuture()
public CompletableFuture<com.mojang.datafixers.util.Either<WorldChunk,ChunkHolder.Unloaded>> getBorderFuture()
@Nullable public WorldChunk getWorldChunk()
@Environment(value=CLIENT) @Nullable public ChunkStatus method_23270()
public CompletableFuture<Chunk> getFuture()
public void markForBlockUpdate(int x, int y, int z)
public void markForLightUpdate(LightType type, int y)
public void flushUpdates(WorldChunk worldChunk)
private void sendPacketToPlayersWatching(Packet<?> packet, boolean onlyOnWatchDistanceEdge)
public CompletableFuture<com.mojang.datafixers.util.Either<Chunk,ChunkHolder.Unloaded>> createFuture(ChunkStatus targetStatus, ThreadedAnvilChunkStorage chunkStorage)
private void updateFuture(CompletableFuture<? extends com.mojang.datafixers.util.Either<? extends Chunk,ChunkHolder.Unloaded>> newChunkFuture)
@Environment(value=CLIENT) public ChunkHolder.LevelType getLevelType()
public ChunkPos getPos()
public int getLevel()
public int getCompletedLevel()
private void setCompletedLevel(int level)
public void setLevel(int level)
protected void tick(ThreadedAnvilChunkStorage chunkStorage)
public static ChunkStatus getTargetGenerationStatus(int level)
public static ChunkHolder.LevelType getLevelType(int distance)
public boolean isTicking()
public void updateTickingStatus()
public void method_20456(ReadOnlyChunk readOnlyChunk)