AbstractBoatModel.java

net.minecraft.client.model.object.boat.AbstractBoatModel

信息

  • 全限定名:net.minecraft.client.model.object.boat.AbstractBoatModel
  • 类型:public abstract class
  • 包:net.minecraft.client.model.object.boat
  • 源码路径:src/main/java/net/minecraft/client/model/object/boat/AbstractBoatModel.java
  • 起始行号:L11
  • 继承:EntityModel
  • 职责:

    TODO

字段/常量

  • leftPaddle

    • 类型: ModelPart
    • 修饰符: private final
    • 源码定位: L12
    • 说明:

      TODO

  • rightPaddle

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

      TODO

内部类/嵌套类型

构造器

public AbstractBoatModel(ModelPart root) @ L15

  • 构造器名:AbstractBoatModel
  • 源码定位:L15
  • 修饰符:public

参数:

  • root: ModelPart

说明:

TODO

方法

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

public void setupAnim(BoatRenderState state) @ L21

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

参数:

  • state: BoatRenderState

说明:

TODO

private static void animatePaddle(float time, int side, ModelPart paddle) @ L27

  • 方法名:animatePaddle
  • 源码定位:L27
  • 返回类型:void
  • 修饰符:private static

参数:

  • time: float
  • side: int
  • paddle: ModelPart

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public abstract class AbstractBoatModel extends EntityModel<BoatRenderState> {
    private final ModelPart leftPaddle;
    private final ModelPart rightPaddle;
 
    public AbstractBoatModel(ModelPart root) {
        super(root);
        this.leftPaddle = root.getChild("left_paddle");
        this.rightPaddle = root.getChild("right_paddle");
    }
 
    public void setupAnim(BoatRenderState state) {
        super.setupAnim(state);
        animatePaddle(state.rowingTimeLeft, 0, this.leftPaddle);
        animatePaddle(state.rowingTimeRight, 1, this.rightPaddle);
    }
 
    private static void animatePaddle(float time, int side, ModelPart paddle) {
        paddle.xRot = Mth.clampedLerp((Mth.sin(-time) + 1.0F) / 2.0F, (float) (-Math.PI / 3), (float) (-Math.PI / 12));
        paddle.yRot = Mth.clampedLerp((Mth.sin(-time + 1.0F) + 1.0F) / 2.0F, (float) (-Math.PI / 4), (float) (Math.PI / 4));
        if (side == 1) {
            paddle.yRot = (float) Math.PI - paddle.yRot;
        }
    }
}

引用的其他类