CatRenderer.java

net.minecraft.client.renderer.entity.CatRenderer

信息

  • 全限定名:net.minecraft.client.renderer.entity.CatRenderer
  • 类型:public class
  • 包:net.minecraft.client.renderer.entity
  • 源码路径:src/main/java/net/minecraft/client/renderer/entity/CatRenderer.java
  • 起始行号:L18
  • 继承:AgeableMobRenderer<Cat,CatRenderState,AbstractFelineModel>
  • 职责:

    TODO

字段/常量

内部类/嵌套类型

构造器

public CatRenderer(EntityRendererProvider.Context context) @ L19

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

参数:

  • context: EntityRendererProvider.Context

说明:

TODO

方法

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

public Identifier getTextureLocation(CatRenderState state) @ L24

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

参数:

  • state: CatRenderState

说明:

TODO

public CatRenderState createRenderState() @ L28

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

参数:

说明:

TODO

public void extractRenderState(Cat entity, CatRenderState state, float partialTicks) @ L32

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

参数:

  • entity: Cat
  • state: CatRenderState
  • partialTicks: float

说明:

TODO

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

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

参数:

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

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class CatRenderer extends AgeableMobRenderer<Cat, CatRenderState, AbstractFelineModel<CatRenderState>> {
    public CatRenderer(EntityRendererProvider.Context context) {
        super(context, new AdultCatModel(context.bakeLayer(ModelLayers.CAT)), new BabyCatModel(context.bakeLayer(ModelLayers.CAT_BABY)), 0.4F);
        this.addLayer(new CatCollarLayer(this, context.getModelSet()));
    }
 
    public Identifier getTextureLocation(CatRenderState state) {
        return state.texture;
    }
 
    public CatRenderState createRenderState() {
        return new CatRenderState();
    }
 
    public void extractRenderState(Cat entity, CatRenderState state, float partialTicks) {
        super.extractRenderState(entity, state, partialTicks);
        state.texture = entity.getVariant().value().assetInfo(state.isBaby).texturePath();
        state.isCrouching = entity.isCrouching();
        state.isSprinting = entity.isSprinting();
        state.isSitting = entity.isInSittingPose();
        state.lieDownAmount = entity.getLieDownAmount(partialTicks);
        state.lieDownAmountTail = entity.getLieDownAmountTail(partialTicks);
        state.relaxStateOneAmount = entity.getRelaxStateOneAmount(partialTicks);
        state.isLyingOnTopOfSleepingPlayer = entity.isLyingOnTopOfSleepingPlayer();
        state.collarColor = entity.isTame() ? entity.getCollarColor() : null;
    }
 
    protected void setupRotations(CatRenderState state, PoseStack poseStack, float bodyRot, float entityScale) {
        super.setupRotations(state, poseStack, bodyRot, entityScale);
        float lieDownAmount = state.lieDownAmount;
        if (lieDownAmount > 0.0F) {
            poseStack.translate(0.4F * lieDownAmount, 0.15F * lieDownAmount, 0.1F * lieDownAmount);
            poseStack.mulPose(Axis.ZP.rotationDegrees(Mth.rotLerp(lieDownAmount, 0.0F, 90.0F)));
            if (state.isLyingOnTopOfSleepingPlayer) {
                poseStack.translate(0.15F * lieDownAmount, 0.0F, 0.0F);
            }
        }
    }
}

引用的其他类