StriderRenderer.java

net.minecraft.client.renderer.entity.StriderRenderer

信息

  • 全限定名:net.minecraft.client.renderer.entity.StriderRenderer
  • 类型:public class
  • 包:net.minecraft.client.renderer.entity
  • 源码路径:src/main/java/net/minecraft/client/renderer/entity/StriderRenderer.java
  • 起始行号:L17
  • 继承:AgeableMobRenderer<Strider,StriderRenderState,StriderModel>
  • 职责:

    TODO

字段/常量

  • STRIDER_LOCATION

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

      TODO

  • STRIDER_BABY_LOCATION

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

      TODO

  • COLD_LOCATION

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

      TODO

  • COLD_BABY_LOCATION

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

      TODO

  • SHADOW_RADIUS

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

      TODO

内部类/嵌套类型

构造器

public StriderRenderer(EntityRendererProvider.Context context) @ L24

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

参数:

  • context: EntityRendererProvider.Context

说明:

TODO

方法

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

public Identifier getTextureLocation(StriderRenderState state) @ L38

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

参数:

  • state: StriderRenderState

说明:

TODO

protected float getShadowRadius(StriderRenderState state) @ L46

  • 方法名:getShadowRadius
  • 源码定位:L46
  • 返回类型:float
  • 修饰符:protected

参数:

  • state: StriderRenderState

说明:

TODO

public StriderRenderState createRenderState() @ L51

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

参数:

说明:

TODO

public void extractRenderState(Strider entity, StriderRenderState state, float partialTicks) @ L55

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

参数:

  • entity: Strider
  • state: StriderRenderState
  • partialTicks: float

说明:

TODO

protected boolean isShaking(StriderRenderState state) @ L62

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

参数:

  • state: StriderRenderState

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class StriderRenderer extends AgeableMobRenderer<Strider, StriderRenderState, StriderModel> {
    private static final Identifier STRIDER_LOCATION = Identifier.withDefaultNamespace("textures/entity/strider/strider.png");
    private static final Identifier STRIDER_BABY_LOCATION = Identifier.withDefaultNamespace("textures/entity/strider/strider_baby.png");
    private static final Identifier COLD_LOCATION = Identifier.withDefaultNamespace("textures/entity/strider/strider_cold.png");
    private static final Identifier COLD_BABY_LOCATION = Identifier.withDefaultNamespace("textures/entity/strider/strider_cold_baby.png");
    private static final float SHADOW_RADIUS = 0.5F;
 
    public StriderRenderer(EntityRendererProvider.Context context) {
        super(context, new AdultStriderModel(context.bakeLayer(ModelLayers.STRIDER)), new BabyStriderModel(context.bakeLayer(ModelLayers.STRIDER_BABY)), 0.5F);
        this.addLayer(
            new SimpleEquipmentLayer<>(
                this,
                context.getEquipmentRenderer(),
                EquipmentClientInfo.LayerType.STRIDER_SADDLE,
                state -> state.saddle,
                new AdultStriderModel(context.bakeLayer(ModelLayers.STRIDER_SADDLE)),
                null
            )
        );
    }
 
    public Identifier getTextureLocation(StriderRenderState state) {
        if (state.isSuffocating) {
            return state.isBaby ? COLD_BABY_LOCATION : COLD_LOCATION;
        } else {
            return state.isBaby ? STRIDER_BABY_LOCATION : STRIDER_LOCATION;
        }
    }
 
    protected float getShadowRadius(StriderRenderState state) {
        float radius = super.getShadowRadius(state);
        return state.isBaby ? radius * 0.5F : radius;
    }
 
    public StriderRenderState createRenderState() {
        return new StriderRenderState();
    }
 
    public void extractRenderState(Strider entity, StriderRenderState state, float partialTicks) {
        super.extractRenderState(entity, state, partialTicks);
        state.saddle = entity.getItemBySlot(EquipmentSlot.SADDLE).copy();
        state.isSuffocating = entity.isSuffocating();
        state.isRidden = entity.isVehicle();
    }
 
    protected boolean isShaking(StriderRenderState state) {
        return super.isShaking(state) || state.isSuffocating;
    }
}

引用的其他类