ZombieVillagerRenderer.java

net.minecraft.client.renderer.entity.ZombieVillagerRenderer

信息

  • 全限定名:net.minecraft.client.renderer.entity.ZombieVillagerRenderer
  • 类型:public class
  • 包:net.minecraft.client.renderer.entity
  • 源码路径:src/main/java/net/minecraft/client/renderer/entity/ZombieVillagerRenderer.java
  • 起始行号:L15
  • 继承:HumanoidMobRenderer<ZombieVillager,ZombieVillagerRenderState,ZombieVillagerModel>
  • 职责:

    TODO

字段/常量

  • ZOMBIE_VILLAGER_LOCATION

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

      TODO

  • BABY_ZOMBIE_VILLAGER_LOCATION

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

      TODO

内部类/嵌套类型

构造器

public ZombieVillagerRenderer(EntityRendererProvider.Context context) @ L19

  • 构造器名:ZombieVillagerRenderer
  • 源码定位:L19
  • 修饰符:public

参数:

  • context: EntityRendererProvider.Context

说明:

TODO

方法

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

public Identifier getTextureLocation(ZombieVillagerRenderState state) @ L46

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

参数:

  • state: ZombieVillagerRenderState

说明:

TODO

public ZombieVillagerRenderState createRenderState() @ L50

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

参数:

说明:

TODO

public void extractRenderState(ZombieVillager entity, ZombieVillagerRenderState state, float partialTicks) @ L54

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

参数:

  • entity: ZombieVillager
  • state: ZombieVillagerRenderState
  • partialTicks: float

说明:

TODO

protected boolean isShaking(ZombieVillagerRenderState state) @ L61

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

参数:

  • state: ZombieVillagerRenderState

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class ZombieVillagerRenderer extends HumanoidMobRenderer<ZombieVillager, ZombieVillagerRenderState, ZombieVillagerModel<ZombieVillagerRenderState>> {
    private static final Identifier ZOMBIE_VILLAGER_LOCATION = Identifier.withDefaultNamespace("textures/entity/zombie_villager/zombie_villager.png");
    private static final Identifier BABY_ZOMBIE_VILLAGER_LOCATION = Identifier.withDefaultNamespace("textures/entity/zombie_villager/zombie_villager_baby.png");
 
    public ZombieVillagerRenderer(EntityRendererProvider.Context context) {
        super(
            context,
            new ZombieVillagerModel<ZombieVillagerRenderState>(context.bakeLayer(ModelLayers.ZOMBIE_VILLAGER)),
            new BabyZombieVillagerModel<>(context.bakeLayer(ModelLayers.ZOMBIE_VILLAGER_BABY)),
            0.5F,
            VillagerRenderer.CUSTOM_HEAD_TRANSFORMS
        );
        this.addLayer(
            new HumanoidArmorLayer<>(
                this,
                ArmorModelSet.bake(ModelLayers.ZOMBIE_VILLAGER_ARMOR, context.getModelSet(), ZombieVillagerModel::new),
                ArmorModelSet.bake(ModelLayers.ZOMBIE_VILLAGER_BABY_ARMOR, context.getModelSet(), BabyZombieVillagerModel::new),
                context.getEquipmentRenderer()
            )
        );
        this.addLayer(
            new VillagerProfessionLayer<>(
                this,
                context.getResourceManager(),
                "zombie_villager",
                new ZombieVillagerModel<ZombieVillagerRenderState>(context.bakeLayer(ModelLayers.ZOMBIE_VILLAGER_NO_HAT)),
                new BabyZombieVillagerModel<>(context.bakeLayer(ModelLayers.ZOMBIE_VILLAGER_BABY_NO_HAT))
            )
        );
    }
 
    public Identifier getTextureLocation(ZombieVillagerRenderState state) {
        return state.isBaby ? BABY_ZOMBIE_VILLAGER_LOCATION : ZOMBIE_VILLAGER_LOCATION;
    }
 
    public ZombieVillagerRenderState createRenderState() {
        return new ZombieVillagerRenderState();
    }
 
    public void extractRenderState(ZombieVillager entity, ZombieVillagerRenderState state, float partialTicks) {
        super.extractRenderState(entity, state, partialTicks);
        state.isConverting = entity.isConverting();
        state.villagerData = entity.getVillagerData();
        state.isAggressive = entity.isAggressive();
    }
 
    protected boolean isShaking(ZombieVillagerRenderState state) {
        return super.isShaking(state) || state.isConverting;
    }
}

引用的其他类