AbstractZombieRenderer.java

net.minecraft.client.renderer.entity.AbstractZombieRenderer

信息

  • 全限定名:net.minecraft.client.renderer.entity.AbstractZombieRenderer
  • 类型:public abstract class
  • 包:net.minecraft.client.renderer.entity
  • 源码路径:src/main/java/net/minecraft/client/renderer/entity/AbstractZombieRenderer.java
  • 起始行号:L17
  • 继承:HumanoidMobRenderer<T,S,M>
  • 职责:

    TODO

字段/常量

  • ZOMBIE_LOCATION

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

      TODO

  • BABY_ZOMBIE_LOCATION

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

      TODO

内部类/嵌套类型

构造器

protected AbstractZombieRenderer(EntityRendererProvider.Context context, M model, M babyModel, ArmorModelSet<M> armorSet, ArmorModelSet<M> babyArmorSet) @ L21

  • 构造器名:AbstractZombieRenderer
  • 源码定位:L21
  • 修饰符:protected

参数:

  • context: EntityRendererProvider.Context
  • model: M
  • babyModel: M
  • armorSet: ArmorModelSet
  • babyArmorSet: ArmorModelSet

说明:

TODO

方法

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

public Identifier getTextureLocation(S state) @ L26

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

参数:

  • state: S

说明:

TODO

public void extractRenderState(T entity, S state, float partialTicks) @ L30

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

参数:

  • entity: T
  • state: S
  • partialTicks: float

说明:

TODO

protected boolean isShaking(S state) @ L36

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

参数:

  • state: S

说明:

TODO

protected HumanoidModel.ArmPose getArmPose(T mob, HumanoidArm arm) @ L40

  • 方法名:getArmPose
  • 源码定位:L40
  • 返回类型:HumanoidModel.ArmPose
  • 修饰符:protected

参数:

  • mob: T
  • arm: HumanoidArm

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public abstract class AbstractZombieRenderer<T extends Zombie, S extends ZombieRenderState, M extends ZombieModel<S>> extends HumanoidMobRenderer<T, S, M> {
    private static final Identifier ZOMBIE_LOCATION = Identifier.withDefaultNamespace("textures/entity/zombie/zombie.png");
    private static final Identifier BABY_ZOMBIE_LOCATION = Identifier.withDefaultNamespace("textures/entity/zombie/zombie_baby.png");
 
    protected AbstractZombieRenderer(EntityRendererProvider.Context context, M model, M babyModel, ArmorModelSet<M> armorSet, ArmorModelSet<M> babyArmorSet) {
        super(context, model, babyModel, 0.5F);
        this.addLayer(new HumanoidArmorLayer<>(this, armorSet, babyArmorSet, context.getEquipmentRenderer()));
    }
 
    public Identifier getTextureLocation(S state) {
        return state.isBaby ? BABY_ZOMBIE_LOCATION : ZOMBIE_LOCATION;
    }
 
    public void extractRenderState(T entity, S state, float partialTicks) {
        super.extractRenderState(entity, state, partialTicks);
        state.isAggressive = entity.isAggressive();
        state.isConverting = entity.isUnderWaterConverting();
    }
 
    protected boolean isShaking(S state) {
        return super.isShaking(state) || state.isConverting;
    }
 
    protected HumanoidModel.ArmPose getArmPose(T mob, HumanoidArm arm) {
        SwingAnimation otherAnim = mob.getItemHeldByArm(arm.getOpposite()).get(DataComponents.SWING_ANIMATION);
        return otherAnim != null && otherAnim.type() == SwingAnimationType.STAB ? HumanoidModel.ArmPose.SPEAR : super.getArmPose(mob, arm);
    }
}

引用的其他类