ProgressScreen.java

net.minecraft.client.gui.screens.ProgressScreen

信息

  • 全限定名:net.minecraft.client.gui.screens.ProgressScreen
  • 类型:public class
  • 包:net.minecraft.client.gui.screens
  • 源码路径:src/main/java/net/minecraft/client/gui/screens/ProgressScreen.java
  • 起始行号:L12
  • 继承:Screen
  • 实现:ProgressListener
  • 职责:

    TODO

字段/常量

  • header

    • 类型: Component
    • 修饰符: private
    • 源码定位: L13
    • 说明:

      TODO

  • stage

    • 类型: Component
    • 修饰符: private
    • 源码定位: L14
    • 说明:

      TODO

  • progress

    • 类型: int
    • 修饰符: private
    • 源码定位: L15
    • 说明:

      TODO

  • stop

    • 类型: boolean
    • 修饰符: private
    • 源码定位: L16
    • 说明:

      TODO

  • clearScreenAfterStop

    • 类型: boolean
    • 修饰符: private final
    • 源码定位: L17
    • 说明:

      TODO

内部类/嵌套类型

构造器

public ProgressScreen(boolean clearScreenAfterStop) @ L19

  • 构造器名:ProgressScreen
  • 源码定位:L19
  • 修饰符:public

参数:

  • clearScreenAfterStop: boolean

说明:

TODO

方法

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

public boolean shouldCloseOnEsc() @ L24

  • 方法名:shouldCloseOnEsc
  • 源码定位:L24
  • 返回类型:boolean
  • 修饰符:public

参数:

说明:

TODO

protected boolean shouldNarrateNavigation() @ L29

  • 方法名:shouldNarrateNavigation
  • 源码定位:L29
  • 返回类型:boolean
  • 修饰符:protected

参数:

说明:

TODO

public void progressStartNoAbort(Component string) @ L34

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

参数:

  • string: Component

说明:

TODO

public void progressStart(Component string) @ L39

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

参数:

  • string: Component

说明:

TODO

public void progressStage(Component string) @ L45

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

参数:

  • string: Component

说明:

TODO

public void progressStagePercentage(int i) @ L51

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

参数:

  • i: int

说明:

TODO

public void stop() @ L56

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

参数:

说明:

TODO

public void extractRenderState(GuiGraphicsExtractor graphics, int mouseX, int mouseY, float a) @ L61

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

参数:

  • graphics: GuiGraphicsExtractor
  • mouseX: int
  • mouseY: int
  • a: float

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class ProgressScreen extends Screen implements ProgressListener {
    private @Nullable Component header;
    private @Nullable Component stage;
    private int progress;
    private boolean stop;
    private final boolean clearScreenAfterStop;
 
    public ProgressScreen(boolean clearScreenAfterStop) {
        super(GameNarrator.NO_TITLE);
        this.clearScreenAfterStop = clearScreenAfterStop;
    }
 
    @Override
    public boolean shouldCloseOnEsc() {
        return false;
    }
 
    @Override
    protected boolean shouldNarrateNavigation() {
        return false;
    }
 
    @Override
    public void progressStartNoAbort(Component string) {
        this.progressStart(string);
    }
 
    @Override
    public void progressStart(Component string) {
        this.header = string;
        this.progressStage(Component.translatable("menu.working"));
    }
 
    @Override
    public void progressStage(Component string) {
        this.stage = string;
        this.progressStagePercentage(0);
    }
 
    @Override
    public void progressStagePercentage(int i) {
        this.progress = i;
    }
 
    @Override
    public void stop() {
        this.stop = true;
    }
 
    @Override
    public void extractRenderState(GuiGraphicsExtractor graphics, int mouseX, int mouseY, float a) {
        if (this.stop) {
            if (this.clearScreenAfterStop) {
                this.minecraft.setScreen(null);
            }
        } else {
            super.extractRenderState(graphics, mouseX, mouseY, a);
            if (this.header != null) {
                graphics.centeredText(this.font, this.header, this.width / 2, 70, -1);
            }
 
            if (this.stage != null && this.progress != 0) {
                graphics.centeredText(this.font, Component.empty().append(this.stage).append(" " + this.progress + "%"), this.width / 2, 90, -1);
            }
        }
    }
}

引用的其他类