BreezeModel.java

net.minecraft.client.model.monster.breeze.BreezeModel

信息

  • 全限定名:net.minecraft.client.model.monster.breeze.BreezeModel
  • 类型:public class
  • 包:net.minecraft.client.model.monster.breeze
  • 源码路径:src/main/java/net/minecraft/client/model/monster/breeze/BreezeModel.java
  • 起始行号:L20
  • 继承:EntityModel
  • 职责:

    TODO

字段/常量

  • WIND_TOP_SPEED

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

      TODO

  • WIND_MIDDLE_SPEED

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

      TODO

  • WIND_BOTTOM_SPEED

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

      TODO

  • head

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

      TODO

  • eyes

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

      TODO

  • wind

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

      TODO

  • windTop

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

      TODO

  • windMid

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

      TODO

  • windBottom

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

      TODO

  • rods

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

      TODO

  • idleAnimation

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

      TODO

  • shootAnimation

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

      TODO

  • slideAnimation

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

      TODO

  • slideBackAnimation

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

      TODO

  • inhaleAnimation

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

      TODO

  • jumpAnimation

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

      TODO

内部类/嵌套类型

构造器

public BreezeModel(ModelPart root) @ L38

  • 构造器名:BreezeModel
  • 源码定位:L38
  • 修饰符:public

参数:

  • root: ModelPart

说明:

TODO

方法

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

private static MeshDefinition createBaseMesh() @ L55

  • 方法名:createBaseMesh
  • 源码定位:L55
  • 返回类型:MeshDefinition
  • 修饰符:private static

参数:

说明:

TODO

public static LayerDefinition createBodyLayer() @ L124

  • 方法名:createBodyLayer
  • 源码定位:L124
  • 返回类型:LayerDefinition
  • 修饰符:public static

参数:

说明:

TODO

public static LayerDefinition createWindLayer() @ L130

  • 方法名:createWindLayer
  • 源码定位:L130
  • 返回类型:LayerDefinition
  • 修饰符:public static

参数:

说明:

TODO

public static LayerDefinition createEyesLayer() @ L136

  • 方法名:createEyesLayer
  • 源码定位:L136
  • 返回类型:LayerDefinition
  • 修饰符:public static

参数:

说明:

TODO

public void setupAnim(BreezeRenderState state) @ L142

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

参数:

  • state: BreezeRenderState

说明:

TODO

public ModelPart head() @ L152

  • 方法名:head
  • 源码定位:L152
  • 返回类型:ModelPart
  • 修饰符:public

参数:

说明:

TODO

public ModelPart eyes() @ L156

  • 方法名:eyes
  • 源码定位:L156
  • 返回类型:ModelPart
  • 修饰符:public

参数:

说明:

TODO

public ModelPart rods() @ L160

  • 方法名:rods
  • 源码定位:L160
  • 返回类型:ModelPart
  • 修饰符:public

参数:

说明:

TODO

public ModelPart wind() @ L164

  • 方法名:wind
  • 源码定位:L164
  • 返回类型:ModelPart
  • 修饰符:public

参数:

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class BreezeModel extends EntityModel<BreezeRenderState> {
    private static final float WIND_TOP_SPEED = 0.6F;
    private static final float WIND_MIDDLE_SPEED = 0.8F;
    private static final float WIND_BOTTOM_SPEED = 1.0F;
    private final ModelPart head;
    private final ModelPart eyes;
    private final ModelPart wind;
    private final ModelPart windTop;
    private final ModelPart windMid;
    private final ModelPart windBottom;
    private final ModelPart rods;
    private final KeyframeAnimation idleAnimation;
    private final KeyframeAnimation shootAnimation;
    private final KeyframeAnimation slideAnimation;
    private final KeyframeAnimation slideBackAnimation;
    private final KeyframeAnimation inhaleAnimation;
    private final KeyframeAnimation jumpAnimation;
 
    public BreezeModel(ModelPart root) {
        super(root, RenderTypes::entityTranslucent);
        this.wind = root.getChild("wind_body");
        this.windBottom = this.wind.getChild("wind_bottom");
        this.windMid = this.windBottom.getChild("wind_mid");
        this.windTop = this.windMid.getChild("wind_top");
        this.head = root.getChild("body").getChild("head");
        this.eyes = this.head.getChild("eyes");
        this.rods = root.getChild("body").getChild("rods");
        this.idleAnimation = BreezeAnimation.IDLE.bake(root);
        this.shootAnimation = BreezeAnimation.SHOOT.bake(root);
        this.slideAnimation = BreezeAnimation.SLIDE.bake(root);
        this.slideBackAnimation = BreezeAnimation.SLIDE_BACK.bake(root);
        this.inhaleAnimation = BreezeAnimation.INHALE.bake(root);
        this.jumpAnimation = BreezeAnimation.JUMP.bake(root);
    }
 
    private static MeshDefinition createBaseMesh() {
        MeshDefinition meshdefinition = new MeshDefinition();
        PartDefinition partdefinition = meshdefinition.getRoot();
        PartDefinition body = partdefinition.addOrReplaceChild("body", CubeListBuilder.create(), PartPose.offset(0.0F, 0.0F, 0.0F));
        PartDefinition rods = body.addOrReplaceChild("rods", CubeListBuilder.create(), PartPose.offset(0.0F, 8.0F, 0.0F));
        rods.addOrReplaceChild(
            "rod_1",
            CubeListBuilder.create().texOffs(0, 17).addBox(-1.0F, 0.0F, -3.0F, 2.0F, 8.0F, 2.0F, new CubeDeformation(0.0F)),
            PartPose.offsetAndRotation(2.5981F, -3.0F, 1.5F, -2.7489F, -1.0472F, 3.1416F)
        );
        rods.addOrReplaceChild(
            "rod_2",
            CubeListBuilder.create().texOffs(0, 17).addBox(-1.0F, 0.0F, -3.0F, 2.0F, 8.0F, 2.0F, new CubeDeformation(0.0F)),
            PartPose.offsetAndRotation(-2.5981F, -3.0F, 1.5F, -2.7489F, 1.0472F, 3.1416F)
        );
        rods.addOrReplaceChild(
            "rod_3",
            CubeListBuilder.create().texOffs(0, 17).addBox(-1.0F, 0.0F, -3.0F, 2.0F, 8.0F, 2.0F, new CubeDeformation(0.0F)),
            PartPose.offsetAndRotation(0.0F, -3.0F, -3.0F, 0.3927F, 0.0F, 0.0F)
        );
        PartDefinition head = body.addOrReplaceChild(
            "head",
            CubeListBuilder.create()
                .texOffs(4, 24)
                .addBox(-5.0F, -5.0F, -4.2F, 10.0F, 3.0F, 4.0F, new CubeDeformation(0.0F))
                .texOffs(0, 0)
                .addBox(-4.0F, -8.0F, -4.0F, 8.0F, 8.0F, 8.0F, new CubeDeformation(0.0F)),
            PartPose.offset(0.0F, 4.0F, 0.0F)
        );
        head.addOrReplaceChild(
            "eyes",
            CubeListBuilder.create()
                .texOffs(4, 24)
                .addBox(-5.0F, -5.0F, -4.2F, 10.0F, 3.0F, 4.0F, new CubeDeformation(0.0F))
                .texOffs(0, 0)
                .addBox(-4.0F, -8.0F, -4.0F, 8.0F, 8.0F, 8.0F, new CubeDeformation(0.0F)),
            PartPose.offset(0.0F, 0.0F, 0.0F)
        );
        PartDefinition windBody = partdefinition.addOrReplaceChild("wind_body", CubeListBuilder.create(), PartPose.offset(0.0F, 0.0F, 0.0F));
        PartDefinition windBottom = windBody.addOrReplaceChild(
            "wind_bottom",
            CubeListBuilder.create().texOffs(1, 83).addBox(-2.5F, -7.0F, -2.5F, 5.0F, 7.0F, 5.0F, new CubeDeformation(0.0F)),
            PartPose.offset(0.0F, 24.0F, 0.0F)
        );
        PartDefinition windMid = windBottom.addOrReplaceChild(
            "wind_mid",
            CubeListBuilder.create()
                .texOffs(74, 28)
                .addBox(-6.0F, -6.0F, -6.0F, 12.0F, 6.0F, 12.0F, new CubeDeformation(0.0F))
                .texOffs(78, 32)
                .addBox(-4.0F, -6.0F, -4.0F, 8.0F, 6.0F, 8.0F, new CubeDeformation(0.0F))
                .texOffs(49, 71)
                .addBox(-2.5F, -6.0F, -2.5F, 5.0F, 6.0F, 5.0F, new CubeDeformation(0.0F)),
            PartPose.offset(0.0F, -7.0F, 0.0F)
        );
        windMid.addOrReplaceChild(
            "wind_top",
            CubeListBuilder.create()
                .texOffs(0, 0)
                .addBox(-9.0F, -8.0F, -9.0F, 18.0F, 8.0F, 18.0F, new CubeDeformation(0.0F))
                .texOffs(6, 6)
                .addBox(-6.0F, -8.0F, -6.0F, 12.0F, 8.0F, 12.0F, new CubeDeformation(0.0F))
                .texOffs(105, 57)
                .addBox(-2.5F, -8.0F, -2.5F, 5.0F, 8.0F, 5.0F, new CubeDeformation(0.0F)),
            PartPose.offset(0.0F, -6.0F, 0.0F)
        );
        return meshdefinition;
    }
 
    public static LayerDefinition createBodyLayer() {
        MeshDefinition mesh = createBaseMesh();
        mesh.getRoot().retainPartsAndChildren(Set.of("head", "rods"));
        return LayerDefinition.create(mesh, 32, 32);
    }
 
    public static LayerDefinition createWindLayer() {
        MeshDefinition mesh = createBaseMesh();
        mesh.getRoot().retainPartsAndChildren(Set.of("wind_body"));
        return LayerDefinition.create(mesh, 128, 128);
    }
 
    public static LayerDefinition createEyesLayer() {
        MeshDefinition mesh = createBaseMesh();
        mesh.getRoot().retainPartsAndChildren(Set.of("eyes"));
        return LayerDefinition.create(mesh, 32, 32);
    }
 
    public void setupAnim(BreezeRenderState state) {
        super.setupAnim(state);
        this.idleAnimation.apply(state.idle, state.ageInTicks);
        this.shootAnimation.apply(state.shoot, state.ageInTicks);
        this.slideAnimation.apply(state.slide, state.ageInTicks);
        this.slideBackAnimation.apply(state.slideBack, state.ageInTicks);
        this.inhaleAnimation.apply(state.inhale, state.ageInTicks);
        this.jumpAnimation.apply(state.longJump, state.ageInTicks);
    }
 
    public ModelPart head() {
        return this.head;
    }
 
    public ModelPart eyes() {
        return this.eyes;
    }
 
    public ModelPart rods() {
        return this.rods;
    }
 
    public ModelPart wind() {
        return this.wind;
    }
}

引用的其他类