ArmadilloModel.java

net.minecraft.client.model.animal.armadillo.ArmadilloModel

信息

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

    TODO

字段/常量

  • MAX_DOWN_HEAD_ROTATION_EXTENT

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

      TODO

  • MAX_UP_HEAD_ROTATION_EXTENT

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

      TODO

  • MAX_WALK_ANIMATION_SPEED

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

      TODO

  • WALK_ANIMATION_SCALE_FACTOR

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

      TODO

  • HEAD_CUBE

    • 类型: String
    • 修饰符: protected static final
    • 源码定位: L18
    • 说明:

      TODO

  • RIGHT_EAR_CUBE

    • 类型: String
    • 修饰符: protected static final
    • 源码定位: L19
    • 说明:

      TODO

  • LEFT_EAR_CUBE

    • 类型: String
    • 修饰符: protected static final
    • 源码定位: L20
    • 说明:

      TODO

  • body

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

      TODO

  • rightHindLeg

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

      TODO

  • leftHindLeg

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

      TODO

  • cube

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

      TODO

  • head

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

      TODO

  • tail

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

      TODO

  • walkAnimation

    • 类型: KeyframeAnimation
    • 修饰符: private final
    • 源码定位: L27
    • 说明:

      TODO

  • rollOutAnimation

    • 类型: KeyframeAnimation
    • 修饰符: private final
    • 源码定位: L28
    • 说明:

      TODO

  • rollUpAnimation

    • 类型: KeyframeAnimation
    • 修饰符: private final
    • 源码定位: L29
    • 说明:

      TODO

  • peekAnimation

    • 类型: KeyframeAnimation
    • 修饰符: private final
    • 源码定位: L30
    • 说明:

      TODO

内部类/嵌套类型

构造器

public ArmadilloModel(ModelPart root, AnimationDefinition walk, AnimationDefinition rollOut, AnimationDefinition rollUp, AnimationDefinition peek) @ L32

  • 构造器名:ArmadilloModel
  • 源码定位:L32
  • 修饰符:public

参数:

  • root: ModelPart
  • walk: AnimationDefinition
  • rollOut: AnimationDefinition
  • rollUp: AnimationDefinition
  • peek: AnimationDefinition

说明:

TODO

方法

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

public void setupAnim(ArmadilloRenderState state) @ L46

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

参数:

  • state: ArmadilloRenderState

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public abstract class ArmadilloModel extends EntityModel<ArmadilloRenderState> {
    private static final float MAX_DOWN_HEAD_ROTATION_EXTENT = 25.0F;
    private static final float MAX_UP_HEAD_ROTATION_EXTENT = 22.5F;
    private static final float MAX_WALK_ANIMATION_SPEED = 16.5F;
    private static final float WALK_ANIMATION_SCALE_FACTOR = 2.5F;
    protected static final String HEAD_CUBE = "head_cube";
    protected static final String RIGHT_EAR_CUBE = "right_ear_cube";
    protected static final String LEFT_EAR_CUBE = "left_ear_cube";
    private final ModelPart body;
    private final ModelPart rightHindLeg;
    private final ModelPart leftHindLeg;
    private final ModelPart cube;
    private final ModelPart head;
    private final ModelPart tail;
    private final KeyframeAnimation walkAnimation;
    private final KeyframeAnimation rollOutAnimation;
    private final KeyframeAnimation rollUpAnimation;
    private final KeyframeAnimation peekAnimation;
 
    public ArmadilloModel(ModelPart root, AnimationDefinition walk, AnimationDefinition rollOut, AnimationDefinition rollUp, AnimationDefinition peek) {
        super(root);
        this.body = root.getChild("body");
        this.rightHindLeg = root.getChild("right_hind_leg");
        this.leftHindLeg = root.getChild("left_hind_leg");
        this.head = this.body.getChild("head");
        this.tail = this.body.getChild("tail");
        this.cube = root.getChild("cube");
        this.walkAnimation = walk.bake(root);
        this.rollOutAnimation = rollOut.bake(root);
        this.rollUpAnimation = rollUp.bake(root);
        this.peekAnimation = peek.bake(root);
    }
 
    public void setupAnim(ArmadilloRenderState state) {
        super.setupAnim(state);
        if (state.isHidingInShell) {
            this.body.skipDraw = true;
            this.leftHindLeg.visible = false;
            this.rightHindLeg.visible = false;
            this.tail.visible = false;
            this.cube.visible = true;
        } else {
            this.body.skipDraw = false;
            this.leftHindLeg.visible = true;
            this.rightHindLeg.visible = true;
            this.tail.visible = true;
            this.cube.visible = false;
            this.head.xRot = Mth.clamp(state.xRot, -22.5F, 25.0F) * (float) (Math.PI / 180.0);
            this.head.yRot = Mth.clamp(state.yRot, -32.5F, 32.5F) * (float) (Math.PI / 180.0);
        }
 
        if (!state.isHidingInShell) {
            this.walkAnimation.applyWalk(state.walkAnimationPos, state.walkAnimationSpeed, 16.5F, 2.5F);
        }
 
        this.rollOutAnimation.apply(state.rollOutAnimationState, state.ageInTicks);
        this.rollUpAnimation.apply(state.rollUpAnimationState, state.ageInTicks);
        this.peekAnimation.apply(state.peekAnimationState, state.ageInTicks);
    }
}

引用的其他类