PiglinRenderer.java

net.minecraft.client.renderer.entity.PiglinRenderer

信息

  • 全限定名:net.minecraft.client.renderer.entity.PiglinRenderer
  • 类型:public class
  • 包:net.minecraft.client.renderer.entity
  • 源码路径:src/main/java/net/minecraft/client/renderer/entity/PiglinRenderer.java
  • 起始行号:L18
  • 继承:HumanoidMobRenderer<AbstractPiglin,PiglinRenderState,PiglinModel>
  • 职责:

    TODO

字段/常量

  • PIGLIN_LOCATION

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

      TODO

  • PIGLIN_BABY_LOCATION

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

      TODO

  • PIGLIN_BRUTE_LOCATION

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

      TODO

  • PIGLIN_CUSTOM_HEAD_TRANSFORMS

    • 类型: CustomHeadLayer.Transforms
    • 修饰符: public static final
    • 源码定位: L22
    • 说明:

      TODO

内部类/嵌套类型

构造器

public PiglinRenderer(EntityRendererProvider.Context context, ModelLayerLocation body, ModelLayerLocation babyBody, ArmorModelSet<ModelLayerLocation> armorSet, ArmorModelSet<ModelLayerLocation> babyArmorSet) @ L24

  • 构造器名:PiglinRenderer
  • 源码定位:L24
  • 修饰符:public

参数:

  • context: EntityRendererProvider.Context
  • body: ModelLayerLocation
  • babyBody: ModelLayerLocation
  • armorSet: ArmorModelSet
  • babyArmorSet: ArmorModelSet

说明:

TODO

方法

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

public Identifier getTextureLocation(PiglinRenderState state) @ L42

  • 方法名:getTextureLocation
  • 源码定位:L42
  • 返回类型:Identifier
  • 修饰符:public

参数:

  • state: PiglinRenderState

说明:

TODO

public PiglinRenderState createRenderState() @ L46

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

参数:

说明:

TODO

public void extractRenderState(AbstractPiglin entity, PiglinRenderState state, float partialTicks) @ L50

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

参数:

  • entity: AbstractPiglin
  • state: PiglinRenderState
  • partialTicks: float

说明:

TODO

protected boolean isShaking(PiglinRenderState state) @ L58

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

参数:

  • state: PiglinRenderState

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class PiglinRenderer extends HumanoidMobRenderer<AbstractPiglin, PiglinRenderState, PiglinModel> {
    private static final Identifier PIGLIN_LOCATION = Identifier.withDefaultNamespace("textures/entity/piglin/piglin.png");
    private static final Identifier PIGLIN_BABY_LOCATION = Identifier.withDefaultNamespace("textures/entity/piglin/piglin_baby.png");
    private static final Identifier PIGLIN_BRUTE_LOCATION = Identifier.withDefaultNamespace("textures/entity/piglin/piglin_brute.png");
    public static final CustomHeadLayer.Transforms PIGLIN_CUSTOM_HEAD_TRANSFORMS = new CustomHeadLayer.Transforms(0.0F, 0.0F, 1.0019531F);
 
    public PiglinRenderer(
        EntityRendererProvider.Context context,
        ModelLayerLocation body,
        ModelLayerLocation babyBody,
        ArmorModelSet<ModelLayerLocation> armorSet,
        ArmorModelSet<ModelLayerLocation> babyArmorSet
    ) {
        super(context, new AdultPiglinModel(context.bakeLayer(body)), new BabyPiglinModel(context.bakeLayer(babyBody)), 0.5F, PIGLIN_CUSTOM_HEAD_TRANSFORMS);
        this.addLayer(
            new HumanoidArmorLayer<>(
                this,
                ArmorModelSet.bake(armorSet, context.getModelSet(), AdultPiglinModel::new),
                ArmorModelSet.bake(babyArmorSet, context.getModelSet(), BabyPiglinModel::new),
                context.getEquipmentRenderer()
            )
        );
    }
 
    public Identifier getTextureLocation(PiglinRenderState state) {
        return state.isBrute ? PIGLIN_BRUTE_LOCATION : (state.isBaby ? PIGLIN_BABY_LOCATION : PIGLIN_LOCATION);
    }
 
    public PiglinRenderState createRenderState() {
        return new PiglinRenderState();
    }
 
    public void extractRenderState(AbstractPiglin entity, PiglinRenderState state, float partialTicks) {
        super.extractRenderState(entity, state, partialTicks);
        state.isBrute = entity.is(EntityType.PIGLIN_BRUTE);
        state.armPose = entity.getArmPose();
        state.maxCrossbowChageDuration = CrossbowItem.getChargeDuration(entity.getUseItem(), entity);
        state.isConverting = entity.isConverting();
    }
 
    protected boolean isShaking(PiglinRenderState state) {
        return super.isShaking(state) || state.isConverting;
    }
}

引用的其他类