DrownedRenderer.java

net.minecraft.client.renderer.entity.DrownedRenderer

信息

  • 全限定名:net.minecraft.client.renderer.entity.DrownedRenderer
  • 类型:public class
  • 包:net.minecraft.client.renderer.entity
  • 源码路径:src/main/java/net/minecraft/client/renderer/entity/DrownedRenderer.java
  • 起始行号:L21
  • 继承:AbstractZombieRenderer<Drowned,ZombieRenderState,DrownedModel>
  • 职责:

    TODO

字段/常量

  • DROWNED_LOCATION

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

      TODO

  • BABY_DROWNED_LOCATION

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

      TODO

内部类/嵌套类型

构造器

public DrownedRenderer(EntityRendererProvider.Context context) @ L25

  • 构造器名:DrownedRenderer
  • 源码定位:L25
  • 修饰符:public

参数:

  • context: EntityRendererProvider.Context

说明:

TODO

方法

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

public ZombieRenderState createRenderState() @ L36

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

参数:

说明:

TODO

public Identifier getTextureLocation(ZombieRenderState state) @ L40

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

参数:

  • state: ZombieRenderState

说明:

TODO

protected void setupRotations(ZombieRenderState state, PoseStack poseStack, float bodyRot, float entityScale) @ L45

  • 方法名:setupRotations
  • 源码定位:L45
  • 返回类型:void
  • 修饰符:protected

参数:

  • state: ZombieRenderState
  • poseStack: PoseStack
  • bodyRot: float
  • entityScale: float

说明:

TODO

protected HumanoidModel.ArmPose getArmPose(Drowned mob, HumanoidArm arm) @ L55

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

参数:

  • mob: Drowned
  • arm: HumanoidArm

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class DrownedRenderer extends AbstractZombieRenderer<Drowned, ZombieRenderState, DrownedModel> {
    private static final Identifier DROWNED_LOCATION = Identifier.withDefaultNamespace("textures/entity/zombie/drowned.png");
    private static final Identifier BABY_DROWNED_LOCATION = Identifier.withDefaultNamespace("textures/entity/zombie/drowned_baby.png");
 
    public DrownedRenderer(EntityRendererProvider.Context context) {
        super(
            context,
            new DrownedModel(context.bakeLayer(ModelLayers.DROWNED)),
            new BabyDrownedModel(context.bakeLayer(ModelLayers.DROWNED_BABY)),
            ArmorModelSet.bake(ModelLayers.DROWNED_ARMOR, context.getModelSet(), DrownedModel::new),
            ArmorModelSet.bake(ModelLayers.DROWNED_BABY_ARMOR, context.getModelSet(), BabyDrownedModel::new)
        );
        this.addLayer(new DrownedOuterLayer(this, context.getModelSet()));
    }
 
    public ZombieRenderState createRenderState() {
        return new ZombieRenderState();
    }
 
    @Override
    public Identifier getTextureLocation(ZombieRenderState state) {
        return state.isBaby ? BABY_DROWNED_LOCATION : DROWNED_LOCATION;
    }
 
    protected void setupRotations(ZombieRenderState state, PoseStack poseStack, float bodyRot, float entityScale) {
        super.setupRotations(state, poseStack, bodyRot, entityScale);
        float swimAmount = state.swimAmount;
        if (swimAmount > 0.0F) {
            float targetRotationX = -10.0F - state.xRot;
            float rotationX = Mth.lerp(swimAmount, 0.0F, targetRotationX);
            poseStack.rotateAround(Axis.XP.rotationDegrees(rotationX), 0.0F, state.boundingBoxHeight / 2.0F / entityScale, 0.0F);
        }
    }
 
    protected HumanoidModel.ArmPose getArmPose(Drowned mob, HumanoidArm arm) {
        ItemStack item = mob.getItemHeldByArm(arm);
        return mob.getMainArm() == arm && mob.isAggressive() && item.is(Items.TRIDENT) ? HumanoidModel.ArmPose.THROW_TRIDENT : super.getArmPose(mob, arm);
    }
}

引用的其他类