RealmsLongRunningMcoConnectTaskScreen.java

com.mojang.realmsclient.gui.screens.RealmsLongRunningMcoConnectTaskScreen

信息

  • 全限定名:com.mojang.realmsclient.gui.screens.RealmsLongRunningMcoConnectTaskScreen
  • 类型:public class
  • 包:com.mojang.realmsclient.gui.screens
  • 源码路径:src/main/java/com/mojang/realmsclient/gui/screens/RealmsLongRunningMcoConnectTaskScreen.java
  • 起始行号:L19
  • 继承:RealmsLongRunningMcoTaskScreen
  • 职责:

    TODO

字段/常量

  • task

    • 类型: LongRunningTask
    • 修饰符: private final
    • 源码定位: L20
    • 说明:

      TODO

  • serverAddress

    • 类型: RealmsJoinInformation
    • 修饰符: private final
    • 源码定位: L21
    • 说明:

      TODO

  • footer

    • 类型: LinearLayout
    • 修饰符: private final
    • 源码定位: L22
    • 说明:

      TODO

内部类/嵌套类型

构造器

public RealmsLongRunningMcoConnectTaskScreen(Screen lastScreen, RealmsJoinInformation serverAddress, LongRunningTask task) @ L24

  • 构造器名:RealmsLongRunningMcoConnectTaskScreen
  • 源码定位:L24
  • 修饰符:public

参数:

  • lastScreen: Screen
  • serverAddress: RealmsJoinInformation
  • task: LongRunningTask

说明:

TODO

方法

下面的方法块按源码顺序生成。

public void init() @ L30

  • 方法名:init
  • 源码定位:L30
  • 返回类型:void
  • 修饰符:public

参数:

说明:

TODO

protected void repositionElements() @ L49

  • 方法名:repositionElements
  • 源码定位:L49
  • 返回类型:void
  • 修饰符:protected

参数:

说明:

TODO

public void tick() @ L58

  • 方法名:tick
  • 源码定位:L58
  • 返回类型:void
  • 修饰符:public

参数:

说明:

TODO

protected void cancel() @ L64

  • 方法名:cancel
  • 源码定位:L64
  • 返回类型:void
  • 修饰符:protected

参数:

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class RealmsLongRunningMcoConnectTaskScreen extends RealmsLongRunningMcoTaskScreen {
    private final LongRunningTask task;
    private final RealmsJoinInformation serverAddress;
    private final LinearLayout footer = LinearLayout.vertical();
 
    public RealmsLongRunningMcoConnectTaskScreen(Screen lastScreen, RealmsJoinInformation serverAddress, LongRunningTask task) {
        super(lastScreen, task);
        this.task = task;
        this.serverAddress = serverAddress;
    }
 
    @Override
    public void init() {
        super.init();
        if (this.serverAddress.regionData() != null && this.serverAddress.regionData().region() != null) {
            LinearLayout regionInfo = LinearLayout.horizontal().spacing(10);
            StringWidget region = new StringWidget(
                Component.translatable("mco.connect.region", Component.translatable(this.serverAddress.regionData().region().translationKey)), this.font
            );
            regionInfo.addChild(region);
            Identifier icon = this.serverAddress.regionData().serviceQuality() != null
                ? this.serverAddress.regionData().serviceQuality().getIcon()
                : ServiceQuality.UNKNOWN.getIcon();
            regionInfo.addChild(ImageWidget.sprite(10, 8, icon), LayoutSettings::alignVerticallyTop);
            this.footer.addChild(regionInfo, layoutSettings -> layoutSettings.paddingTop(40));
            this.footer.visitWidgets(x$0 -> this.addRenderableWidget(x$0));
            this.repositionElements();
        }
    }
 
    @Override
    protected void repositionElements() {
        super.repositionElements();
        int contentBottom = this.layout.getY() + this.layout.getHeight();
        ScreenRectangle footerRectangle = new ScreenRectangle(0, contentBottom, this.width, this.height - contentBottom);
        this.footer.arrangeElements();
        FrameLayout.alignInRectangle(this.footer, footerRectangle, 0.5F, 0.0F);
    }
 
    @Override
    public void tick() {
        super.tick();
        this.task.tick();
    }
 
    @Override
    protected void cancel() {
        this.task.abortTask();
        super.cancel();
    }
}

引用的其他类