DialogControlSet.java
net.minecraft.client.gui.screens.dialog.DialogControlSet
信息
- 全限定名:net.minecraft.client.gui.screens.dialog.DialogControlSet
- 类型:public class
- 包:net.minecraft.client.gui.screens.dialog
- 源码路径:src/main/java/net/minecraft/client/gui/screens/dialog/DialogControlSet.java
- 起始行号:L21
- 职责:
TODO
字段/常量
-
EMPTY_ACTION- 类型:
Supplier<Optional<ClickEvent>> - 修饰符:
public static final - 源码定位:
L22 - 说明:
TODO
- 类型:
-
screen- 类型:
DialogScreen<?> - 修饰符:
private final - 源码定位:
L23 - 说明:
TODO
- 类型:
-
valueGetters- 类型:
Map<String,Action.ValueGetter> - 修饰符:
private final - 源码定位:
L24 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public DialogControlSet(DialogScreen<?> screen) @ L26
- 构造器名:DialogControlSet
- 源码定位:L26
- 修饰符:public
参数:
- screen: DialogScreen<?>
说明:
TODO
方法
下面的方法块按源码顺序生成。
public void addInput(Input data, Consumer<LayoutElement> output) @ L30
- 方法名:addInput
- 源码定位:L30
- 返回类型:void
- 修饰符:public
参数:
- data: Input
- output: Consumer
说明:
TODO
private static Button.Builder createDialogButton(CommonButtonData data, Button.OnPress clickAction) @ L38
- 方法名:createDialogButton
- 源码定位:L38
- 返回类型:Button.Builder
- 修饰符:private static
参数:
- data: CommonButtonData
- clickAction: Button.OnPress
说明:
TODO
public Supplier<Optional<ClickEvent>> bindAction(Optional<Action> maybeAction) @ L48
- 方法名:bindAction
- 源码定位:L48
- 返回类型:Supplier<Optional
> - 修饰符:public
参数:
- maybeAction: Optional
说明:
TODO
public Button.Builder createActionButton(ActionButton actionButton) @ L57
- 方法名:createActionButton
- 源码定位:L57
- 返回类型:Button.Builder
- 修饰符:public
参数:
- actionButton: ActionButton
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class DialogControlSet {
public static final Supplier<Optional<ClickEvent>> EMPTY_ACTION = Optional::empty;
private final DialogScreen<?> screen;
private final Map<String, Action.ValueGetter> valueGetters = new HashMap<>();
public DialogControlSet(DialogScreen<?> screen) {
this.screen = screen;
}
public void addInput(Input data, Consumer<LayoutElement> output) {
String key = data.key();
InputControlHandlers.createHandler(data.control(), this.screen, (element, valueGetter) -> {
this.valueGetters.put(key, valueGetter);
output.accept(element);
});
}
private static Button.Builder createDialogButton(CommonButtonData data, Button.OnPress clickAction) {
Button.Builder result = Button.builder(data.label(), clickAction);
result.width(data.width());
if (data.tooltip().isPresent()) {
result = result.tooltip(Tooltip.create(data.tooltip().get()));
}
return result;
}
public Supplier<Optional<ClickEvent>> bindAction(Optional<Action> maybeAction) {
if (maybeAction.isPresent()) {
Action action = maybeAction.get();
return () -> action.createAction(this.valueGetters);
} else {
return EMPTY_ACTION;
}
}
public Button.Builder createActionButton(ActionButton actionButton) {
Supplier<Optional<ClickEvent>> action = this.bindAction(actionButton.action());
return createDialogButton(actionButton.button(), button -> this.screen.runAction(action.get()));
}
}引用的其他类
-
- 引用位置:
参数/方法调用/返回值 - 关联成员:
Button.builder()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Tooltip.create()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
InputControlHandlers.createHandler()
- 引用位置:
-
- 引用位置:
字段/返回值
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置: