OptionsSubScreen.java
net.minecraft.client.gui.screens.options.OptionsSubScreen
信息
- 全限定名:net.minecraft.client.gui.screens.options.OptionsSubScreen
- 类型:public abstract class
- 包:net.minecraft.client.gui.screens.options
- 源码路径:src/main/java/net/minecraft/client/gui/screens/options/OptionsSubScreen.java
- 起始行号:L18
- 继承:Screen
- 职责:
TODO
字段/常量
-
lastScreen- 类型:
Screen - 修饰符:
protected final - 源码定位:
L19 - 说明:
TODO
- 类型:
-
options- 类型:
Options - 修饰符:
protected final - 源码定位:
L20 - 说明:
TODO
- 类型:
-
list- 类型:
OptionsList - 修饰符:
protected - 源码定位:
L21 - 说明:
TODO
- 类型:
-
layout- 类型:
HeaderAndFooterLayout - 修饰符:
public final - 源码定位:
L22 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public OptionsSubScreen(Screen lastScreen, Options options, Component title) @ L24
- 构造器名:OptionsSubScreen
- 源码定位:L24
- 修饰符:public
参数:
- lastScreen: Screen
- options: Options
- title: Component
说明:
TODO
方法
下面的方法块按源码顺序生成。
protected void init() @ L30
- 方法名:init
- 源码定位:L30
- 返回类型:void
- 修饰符:protected
参数:
- 无
说明:
TODO
protected void addTitle() @ L39
- 方法名:addTitle
- 源码定位:L39
- 返回类型:void
- 修饰符:protected
参数:
- 无
说明:
TODO
protected void addContents() @ L43
- 方法名:addContents
- 源码定位:L43
- 返回类型:void
- 修饰符:protected
参数:
- 无
说明:
TODO
protected abstract void addOptions() @ L52
- 方法名:addOptions
- 源码定位:L52
- 返回类型:void
- 修饰符:protected abstract
参数:
- 无
说明:
TODO
protected void addFooter() @ L54
- 方法名:addFooter
- 源码定位:L54
- 返回类型:void
- 修饰符:protected
参数:
- 无
说明:
TODO
protected void repositionElements() @ L58
- 方法名:repositionElements
- 源码定位:L58
- 返回类型:void
- 修饰符:protected
参数:
- 无
说明:
TODO
public void removed() @ L66
- 方法名:removed
- 源码定位:L66
- 返回类型:void
- 修饰符:public
参数:
- 无
说明:
TODO
public void onClose() @ L71
- 方法名:onClose
- 源码定位:L71
- 返回类型:void
- 修饰符:public
参数:
- 无
说明:
TODO
public void resetOption(OptionInstance<?> option) @ L80
- 方法名:resetOption
- 源码定位:L80
- 返回类型:void
- 修饰符:public
参数:
- option: OptionInstance<?>
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public abstract class OptionsSubScreen extends Screen {
protected final Screen lastScreen;
protected final Options options;
protected @Nullable OptionsList list;
public final HeaderAndFooterLayout layout = new HeaderAndFooterLayout(this);
public OptionsSubScreen(Screen lastScreen, Options options, Component title) {
super(title);
this.lastScreen = lastScreen;
this.options = options;
}
@Override
protected void init() {
this.addTitle();
this.addContents();
this.addFooter();
this.layout.visitWidgets(x$0 -> this.addRenderableWidget(x$0));
this.repositionElements();
}
protected void addTitle() {
this.layout.addTitleHeader(this.title, this.font);
}
protected void addContents() {
this.list = this.layout.addToContents(new OptionsList(this.minecraft, this.width, this));
this.addOptions();
if (this.list.findOption(this.options.narrator()) instanceof CycleButton<?> cycleButton) {
this.narratorButton = (CycleButton<NarratorStatus>)cycleButton;
this.narratorButton.active = this.minecraft.getNarrator().isActive();
}
}
protected abstract void addOptions();
protected void addFooter() {
this.layout.addToFooter(Button.builder(CommonComponents.GUI_DONE, button -> this.onClose()).width(200).build());
}
@Override
protected void repositionElements() {
this.layout.arrangeElements();
if (this.list != null) {
this.list.updateSize(this.width, this.layout);
}
}
@Override
public void removed() {
this.minecraft.options.save();
}
@Override
public void onClose() {
if (this.list != null) {
this.list.applyUnsavedChanges();
}
this.minecraft.setScreen(this.lastScreen);
}
public void resetOption(OptionInstance<?> option) {
if (this.list != null) {
this.list.resetOption(option);
}
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Button.builder()
- 引用位置:
-
- 引用位置:
字段/构造调用 - 关联成员:
OptionsList()
- 引用位置:
-
- 引用位置:
字段/构造调用 - 关联成员:
HeaderAndFooterLayout()
- 引用位置:
-
- 引用位置:
参数/字段/继承
- 引用位置:
-
- 引用位置:
参数
- 引用位置: