WardenRenderer.java
net.minecraft.client.renderer.entity.WardenRenderer
信息
- 全限定名:net.minecraft.client.renderer.entity.WardenRenderer
- 类型:public class
- 包:net.minecraft.client.renderer.entity
- 源码路径:src/main/java/net/minecraft/client/renderer/entity/WardenRenderer.java
- 起始行号:L15
- 继承:MobRenderer<Warden,WardenRenderState,WardenModel>
- 职责:
TODO
字段/常量
-
TEXTURE- 类型:
Identifier - 修饰符:
private static final - 源码定位:
L16 - 说明:
TODO
- 类型:
-
BIOLUMINESCENT_LAYER_TEXTURE- 类型:
Identifier - 修饰符:
private static final - 源码定位:
L17 - 说明:
TODO
- 类型:
-
HEART_TEXTURE- 类型:
Identifier - 修饰符:
private static final - 源码定位:
L18 - 说明:
TODO
- 类型:
-
PULSATING_SPOTS_TEXTURE_1- 类型:
Identifier - 修饰符:
private static final - 源码定位:
L19 - 说明:
TODO
- 类型:
-
PULSATING_SPOTS_TEXTURE_2- 类型:
Identifier - 修饰符:
private static final - 源码定位:
L20 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public WardenRenderer(EntityRendererProvider.Context context) @ L22
- 构造器名:WardenRenderer
- 源码定位:L22
- 修饰符:public
参数:
- context: EntityRendererProvider.Context
说明:
TODO
方法
下面的方法块按源码顺序生成。
public Identifier getTextureLocation(WardenRenderState state) @ L70
- 方法名:getTextureLocation
- 源码定位:L70
- 返回类型:Identifier
- 修饰符:public
参数:
- state: WardenRenderState
说明:
TODO
public WardenRenderState createRenderState() @ L74
- 方法名:createRenderState
- 源码定位:L74
- 返回类型:WardenRenderState
- 修饰符:public
参数:
- 无
说明:
TODO
public void extractRenderState(Warden entity, WardenRenderState state, float partialTicks) @ L78
- 方法名:extractRenderState
- 源码定位:L78
- 返回类型:void
- 修饰符:public
参数:
- entity: Warden
- state: WardenRenderState
- partialTicks: float
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class WardenRenderer extends MobRenderer<Warden, WardenRenderState, WardenModel> {
private static final Identifier TEXTURE = Identifier.withDefaultNamespace("textures/entity/warden/warden.png");
private static final Identifier BIOLUMINESCENT_LAYER_TEXTURE = Identifier.withDefaultNamespace("textures/entity/warden/warden_bioluminescent_layer.png");
private static final Identifier HEART_TEXTURE = Identifier.withDefaultNamespace("textures/entity/warden/warden_heart.png");
private static final Identifier PULSATING_SPOTS_TEXTURE_1 = Identifier.withDefaultNamespace("textures/entity/warden/warden_pulsating_spots_1.png");
private static final Identifier PULSATING_SPOTS_TEXTURE_2 = Identifier.withDefaultNamespace("textures/entity/warden/warden_pulsating_spots_2.png");
public WardenRenderer(EntityRendererProvider.Context context) {
super(context, new WardenModel(context.bakeLayer(ModelLayers.WARDEN)), 0.9F);
WardenModel bioluminescentModel = new WardenModel(context.bakeLayer(ModelLayers.WARDEN_BIOLUMINESCENT));
WardenModel pulsatingSpotsModel = new WardenModel(context.bakeLayer(ModelLayers.WARDEN_PULSATING_SPOTS));
WardenModel tendrilsModel = new WardenModel(context.bakeLayer(ModelLayers.WARDEN_TENDRILS));
WardenModel heartModel = new WardenModel(context.bakeLayer(ModelLayers.WARDEN_HEART));
this.addLayer(
new LivingEntityEmissiveLayer<>(
this,
renderState -> BIOLUMINESCENT_LAYER_TEXTURE,
(warden, ageInTicks) -> 1.0F,
bioluminescentModel,
RenderTypes::entityTranslucentEmissive,
false
)
);
this.addLayer(
new LivingEntityEmissiveLayer<>(
this,
renderState -> PULSATING_SPOTS_TEXTURE_1,
(warden, ageInTicks) -> Math.max(0.0F, Mth.cos(ageInTicks * 0.045F) * 0.25F),
pulsatingSpotsModel,
RenderTypes::entityTranslucentEmissive,
false
)
);
this.addLayer(
new LivingEntityEmissiveLayer<>(
this,
renderState -> PULSATING_SPOTS_TEXTURE_2,
(warden, ageInTicks) -> Math.max(0.0F, Mth.cos(ageInTicks * 0.045F + (float) Math.PI) * 0.25F),
pulsatingSpotsModel,
RenderTypes::entityTranslucentEmissive,
false
)
);
this.addLayer(
new LivingEntityEmissiveLayer<>(
this, renderState -> TEXTURE, (warden, ageInTicks) -> warden.tendrilAnimation, tendrilsModel, RenderTypes::entityTranslucentEmissive, false
)
);
this.addLayer(
new LivingEntityEmissiveLayer<>(
this, renderState -> HEART_TEXTURE, (warden, ageInTicks) -> warden.heartAnimation, heartModel, RenderTypes::entityTranslucentEmissive, false
)
);
}
public Identifier getTextureLocation(WardenRenderState state) {
return TEXTURE;
}
public WardenRenderState createRenderState() {
return new WardenRenderState();
}
public void extractRenderState(Warden entity, WardenRenderState state, float partialTicks) {
super.extractRenderState(entity, state, partialTicks);
state.tendrilAnimation = entity.getTendrilAnimation(partialTicks);
state.heartAnimation = entity.getHeartAnimation(partialTicks);
state.roarAnimationState.copyFrom(entity.roarAnimationState);
state.sniffAnimationState.copyFrom(entity.sniffAnimationState);
state.emergeAnimationState.copyFrom(entity.emergeAnimationState);
state.diggingAnimationState.copyFrom(entity.diggingAnimationState);
state.attackAnimationState.copyFrom(entity.attackAnimationState);
state.sonicBoomAnimationState.copyFrom(entity.sonicBoomAnimationState);
}
}引用的其他类
-
- 引用位置:
构造调用 - 关联成员:
WardenModel()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
继承
- 引用位置:
-
- 引用位置:
参数/构造调用/返回值 - 关联成员:
WardenRenderState()
- 引用位置:
-
- 引用位置:
字段/方法调用/返回值 - 关联成员:
Identifier.withDefaultNamespace()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Mth.cos()
- 引用位置:
-
- 引用位置:
参数
- 引用位置: