LerpingBossEvent.java

net.minecraft.client.gui.components.LerpingBossEvent

信息

  • 全限定名:net.minecraft.client.gui.components.LerpingBossEvent
  • 类型:public class
  • 包:net.minecraft.client.gui.components
  • 源码路径:src/main/java/net/minecraft/client/gui/components/LerpingBossEvent.java
  • 起始行号:L12
  • 继承:BossEvent
  • 职责:

    TODO

字段/常量

  • LERP_MILLISECONDS

    • 类型: long
    • 修饰符: private static final
    • 源码定位: L13
    • 说明:

      TODO

  • targetPercent

    • 类型: float
    • 修饰符: protected
    • 源码定位: L14
    • 说明:

      TODO

  • setTime

    • 类型: long
    • 修饰符: protected
    • 源码定位: L15
    • 说明:

      TODO

内部类/嵌套类型

构造器

public LerpingBossEvent(UUID id, Component name, float progress, BossEvent.BossBarColor color, BossEvent.BossBarOverlay overlay, boolean darkenScreen, boolean playMusic, boolean createWorldFog) @ L17

  • 构造器名:LerpingBossEvent
  • 源码定位:L17
  • 修饰符:public

参数:

  • id: UUID
  • name: Component
  • progress: float
  • color: BossEvent.BossBarColor
  • overlay: BossEvent.BossBarOverlay
  • darkenScreen: boolean
  • playMusic: boolean
  • createWorldFog: boolean

说明:

TODO

方法

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

public void setProgress(float progress) @ L36

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

参数:

  • progress: float

说明:

TODO

public float getProgress() @ L43

  • 方法名:getProgress
  • 源码定位:L43
  • 返回类型:float
  • 修饰符:public

参数:

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class LerpingBossEvent extends BossEvent {
    private static final long LERP_MILLISECONDS = 100L;
    protected float targetPercent;
    protected long setTime;
 
    public LerpingBossEvent(
        UUID id,
        Component name,
        float progress,
        BossEvent.BossBarColor color,
        BossEvent.BossBarOverlay overlay,
        boolean darkenScreen,
        boolean playMusic,
        boolean createWorldFog
    ) {
        super(id, name, color, overlay);
        this.targetPercent = progress;
        this.progress = progress;
        this.setTime = Util.getMillis();
        this.setDarkenScreen(darkenScreen);
        this.setPlayBossMusic(playMusic);
        this.setCreateWorldFog(createWorldFog);
    }
 
    @Override
    public void setProgress(float progress) {
        this.progress = this.getProgress();
        this.targetPercent = progress;
        this.setTime = Util.getMillis();
    }
 
    @Override
    public float getProgress() {
        long timeSinceSet = Util.getMillis() - this.setTime;
        float lerpPercent = Mth.clamp((float)timeSinceSet / 100.0F, 0.0F, 1.0F);
        return Mth.lerp(lerpPercent, this.progress, this.targetPercent);
    }
}

引用的其他类

  • Component

    • 引用位置: 参数
  • Mth

    • 引用位置: 方法调用
    • 关联成员: Mth.clamp(), Mth.lerp()
  • Util

    • 引用位置: 方法调用
    • 关联成员: Util.getMillis()
  • BossEvent

    • 引用位置: 参数/继承