LoadingChunkTracker.java
net.minecraft.server.level.LoadingChunkTracker
信息
- 全限定名:net.minecraft.server.level.LoadingChunkTracker
- 类型:package-private class
- 包:net.minecraft.server.level
- 源码路径:src/main/java/net/minecraft/server/level/LoadingChunkTracker.java
- 起始行号:L5
- 继承:ChunkTracker
- 职责:
TODO
字段/常量
-
MAX_LEVEL- 类型:
int - 修饰符:
private static final - 源码定位:
L6 - 说明:
TODO
- 类型:
-
distanceManager- 类型:
DistanceManager - 修饰符:
private final - 源码定位:
L7 - 说明:
TODO
- 类型:
-
ticketStorage- 类型:
TicketStorage - 修饰符:
private final - 源码定位:
L8 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public LoadingChunkTracker(DistanceManager distanceManager, TicketStorage ticketStorage) @ L10
- 构造器名:LoadingChunkTracker
- 源码定位:L10
- 修饰符:public
参数:
- distanceManager: DistanceManager
- ticketStorage: TicketStorage
说明:
TODO
方法
下面的方法块按源码顺序生成。
protected int getLevelFromSource(long to) @ L17
- 方法名:getLevelFromSource
- 源码定位:L17
- 返回类型:int
- 修饰符:protected
参数:
- to: long
说明:
TODO
protected int getLevel(long node) @ L22
- 方法名:getLevel
- 源码定位:L22
- 返回类型:int
- 修饰符:protected
参数:
- node: long
说明:
TODO
protected void setLevel(long node, int level) @ L34
- 方法名:setLevel
- 源码定位:L34
- 返回类型:void
- 修饰符:protected
参数:
- node: long
- level: int
说明:
TODO
public int runDistanceUpdates(int count) @ L46
- 方法名:runDistanceUpdates
- 源码定位:L46
- 返回类型:int
- 修饰符:public
参数:
- count: int
说明:
TODO
代码
class LoadingChunkTracker extends ChunkTracker {
private static final int MAX_LEVEL = ChunkLevel.MAX_LEVEL + 1;
private final DistanceManager distanceManager;
private final TicketStorage ticketStorage;
public LoadingChunkTracker(DistanceManager distanceManager, TicketStorage ticketStorage) {
super(MAX_LEVEL + 1, 16, 256);
this.distanceManager = distanceManager;
this.ticketStorage = ticketStorage;
ticketStorage.setLoadingChunkUpdatedListener(this::update);
}
@Override
protected int getLevelFromSource(long to) {
return this.ticketStorage.getTicketLevelAt(to, false);
}
@Override
protected int getLevel(long node) {
if (!this.distanceManager.isChunkToRemove(node)) {
ChunkHolder chunk = this.distanceManager.getChunk(node);
if (chunk != null) {
return chunk.getTicketLevel();
}
}
return MAX_LEVEL;
}
@Override
protected void setLevel(long node, int level) {
ChunkHolder chunk = this.distanceManager.getChunk(node);
int oldLevel = chunk == null ? MAX_LEVEL : chunk.getTicketLevel();
if (oldLevel != level) {
chunk = this.distanceManager.updateChunkScheduling(node, level, chunk, oldLevel);
if (chunk != null) {
this.distanceManager.chunksToUpdateFutures.add(chunk);
}
}
}
public int runDistanceUpdates(int count) {
return this.runUpdates(count);
}
}引用的其他类
-
- 引用位置:
继承
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置: