HotbarManager.java
net.minecraft.client.HotbarManager
信息
- 全限定名:net.minecraft.client.HotbarManager
- 类型:public class
- 包:net.minecraft.client
- 源码路径:src/main/java/net/minecraft/client/HotbarManager.java
- 起始行号:L19
- 职责:
TODO
字段/常量
-
LOGGER- 类型:
Logger - 修饰符:
private static final - 源码定位:
L20 - 说明:
TODO
- 类型:
-
NUM_HOTBAR_GROUPS- 类型:
int - 修饰符:
public static final - 源码定位:
L21 - 说明:
TODO
- 类型:
-
optionsFile- 类型:
Path - 修饰符:
private final - 源码定位:
L22 - 说明:
TODO
- 类型:
-
fixerUpper- 类型:
DataFixer - 修饰符:
private final - 源码定位:
L23 - 说明:
TODO
- 类型:
-
hotbars- 类型:
Hotbar[] - 修饰符:
private final - 源码定位:
L24 - 说明:
TODO
- 类型:
-
loaded- 类型:
boolean - 修饰符:
private - 源码定位:
L25 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public HotbarManager(Path workingDirectory, DataFixer fixerUpper) @ L27
- 构造器名:HotbarManager
- 源码定位:L27
- 修饰符:public
参数:
- workingDirectory: Path
- fixerUpper: DataFixer
说明:
TODO
方法
下面的方法块按源码顺序生成。
private void load() @ L36
- 方法名:load
- 源码定位:L36
- 返回类型:void
- 修饰符:private
参数:
- 无
说明:
TODO
public void save() @ L57
- 方法名:save
- 源码定位:L57
- 返回类型:void
- 修饰符:public
参数:
- 无
说明:
TODO
public Hotbar get(int id) @ L73
- 方法名:get
- 源码定位:L73
- 返回类型:Hotbar
- 修饰符:public
参数:
- id: int
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class HotbarManager {
private static final Logger LOGGER = LogUtils.getLogger();
public static final int NUM_HOTBAR_GROUPS = 9;
private final Path optionsFile;
private final DataFixer fixerUpper;
private final Hotbar[] hotbars = new Hotbar[9];
private boolean loaded;
public HotbarManager(Path workingDirectory, DataFixer fixerUpper) {
this.optionsFile = workingDirectory.resolve("hotbar.nbt");
this.fixerUpper = fixerUpper;
for (int i = 0; i < 9; i++) {
this.hotbars[i] = new Hotbar();
}
}
private void load() {
try {
CompoundTag tag = NbtIo.read(this.optionsFile);
if (tag == null) {
return;
}
int version = NbtUtils.getDataVersion(tag, 1343);
tag = DataFixTypes.HOTBAR.updateToCurrentVersion(this.fixerUpper, tag, version);
for (int i = 0; i < 9; i++) {
this.hotbars[i] = Hotbar.CODEC
.parse(NbtOps.INSTANCE, tag.get(String.valueOf(i)))
.resultOrPartial(error -> LOGGER.warn("Failed to parse hotbar: {}", error))
.orElseGet(Hotbar::new);
}
} catch (Exception var4) {
LOGGER.error("Failed to load creative mode options", (Throwable)var4);
}
}
public void save() {
try {
CompoundTag tag = NbtUtils.addCurrentDataVersion(new CompoundTag());
for (int i = 0; i < 9; i++) {
Hotbar hotbar = this.get(i);
DataResult<Tag> result = Hotbar.CODEC.encodeStart(NbtOps.INSTANCE, hotbar);
tag.put(String.valueOf(i), result.getOrThrow());
}
NbtIo.write(tag, this.optionsFile);
} catch (Exception var5) {
LOGGER.error("Failed to save creative mode options", (Throwable)var5);
}
}
public Hotbar get(int id) {
if (!this.loaded) {
this.load();
this.loaded = true;
}
return this.hotbars[id];
}
}引用的其他类
-
- 引用位置:
字段/构造调用/返回值 - 关联成员:
Hotbar()
- 引用位置:
-
- 引用位置:
构造调用 - 关联成员:
CompoundTag()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
NbtIo.read(), NbtIo.write()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
NbtUtils.addCurrentDataVersion(), NbtUtils.getDataVersion()
- 引用位置: