FoxRenderer.java
net.minecraft.client.renderer.entity.FoxRenderer
信息
- 全限定名:net.minecraft.client.renderer.entity.FoxRenderer
- 类型:public class
- 包:net.minecraft.client.renderer.entity
- 源码路径:src/main/java/net/minecraft/client/renderer/entity/FoxRenderer.java
- 起始行号:L21
- 继承:AgeableMobRenderer<Fox,FoxRenderState,FoxModel>
- 职责:
TODO
字段/常量
-
RED_FOX_TEXTURE- 类型:
Identifier - 修饰符:
private static final - 源码定位:
L22 - 说明:
TODO
- 类型:
-
RED_FOX_SLEEP_TEXTURE- 类型:
Identifier - 修饰符:
private static final - 源码定位:
L23 - 说明:
TODO
- 类型:
-
SNOW_FOX_TEXTURE- 类型:
Identifier - 修饰符:
private static final - 源码定位:
L24 - 说明:
TODO
- 类型:
-
SNOW_FOX_SLEEP_TEXTURE- 类型:
Identifier - 修饰符:
private static final - 源码定位:
L25 - 说明:
TODO
- 类型:
-
BABY_RED_FOX_TEXTURE- 类型:
Identifier - 修饰符:
private static final - 源码定位:
L26 - 说明:
TODO
- 类型:
-
BABY_RED_FOX_SLEEP_TEXTURE- 类型:
Identifier - 修饰符:
private static final - 源码定位:
L27 - 说明:
TODO
- 类型:
-
BABY_SNOW_FOX_TEXTURE- 类型:
Identifier - 修饰符:
private static final - 源码定位:
L28 - 说明:
TODO
- 类型:
-
BABY_SNOW_FOX_SLEEP_TEXTURE- 类型:
Identifier - 修饰符:
private static final - 源码定位:
L29 - 说明:
TODO
- 类型:
-
TEXTURES_BY_VARIANT- 类型:
EnumMap<Fox.Variant,FoxRenderer.FoxTexturesByState> - 修饰符:
private static final - 源码定位:
L30 - 说明:
TODO
- 类型:
内部类/嵌套类型
-
net.minecraft.client.renderer.entity.FoxRenderer.FoxTexturesByAge- 类型:
record - 修饰符:
private - 源码定位:
L85 - 说明:
TODO
- 类型:
-
net.minecraft.client.renderer.entity.FoxRenderer.FoxTexturesByState- 类型:
record - 修饰符:
private - 源码定位:
L89 - 说明:
TODO
- 类型:
构造器
public FoxRenderer(EntityRendererProvider.Context context) @ L45
- 构造器名:FoxRenderer
- 源码定位:L45
- 修饰符:public
参数:
- context: EntityRendererProvider.Context
说明:
TODO
方法
下面的方法块按源码顺序生成。
protected void setupRotations(FoxRenderState state, PoseStack poseStack, float bodyRot, float entityScale) @ L50
- 方法名:setupRotations
- 源码定位:L50
- 返回类型:void
- 修饰符:protected
参数:
- state: FoxRenderState
- poseStack: PoseStack
- bodyRot: float
- entityScale: float
说明:
TODO
public Identifier getTextureLocation(FoxRenderState state) @ L57
- 方法名:getTextureLocation
- 源码定位:L57
- 返回类型:Identifier
- 修饰符:public
参数:
- state: FoxRenderState
说明:
TODO
public FoxRenderState createRenderState() @ L67
- 方法名:createRenderState
- 源码定位:L67
- 返回类型:FoxRenderState
- 修饰符:public
参数:
- 无
说明:
TODO
public void extractRenderState(Fox entity, FoxRenderState state, float partialTicks) @ L71
- 方法名:extractRenderState
- 源码定位:L71
- 返回类型:void
- 修饰符:public
参数:
- entity: Fox
- state: FoxRenderState
- partialTicks: float
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class FoxRenderer extends AgeableMobRenderer<Fox, FoxRenderState, FoxModel> {
private static final Identifier RED_FOX_TEXTURE = Identifier.withDefaultNamespace("textures/entity/fox/fox.png");
private static final Identifier RED_FOX_SLEEP_TEXTURE = Identifier.withDefaultNamespace("textures/entity/fox/fox_sleep.png");
private static final Identifier SNOW_FOX_TEXTURE = Identifier.withDefaultNamespace("textures/entity/fox/fox_snow.png");
private static final Identifier SNOW_FOX_SLEEP_TEXTURE = Identifier.withDefaultNamespace("textures/entity/fox/fox_snow_sleep.png");
private static final Identifier BABY_RED_FOX_TEXTURE = Identifier.withDefaultNamespace("textures/entity/fox/fox_baby.png");
private static final Identifier BABY_RED_FOX_SLEEP_TEXTURE = Identifier.withDefaultNamespace("textures/entity/fox/fox_sleep_baby.png");
private static final Identifier BABY_SNOW_FOX_TEXTURE = Identifier.withDefaultNamespace("textures/entity/fox/fox_snow_baby.png");
private static final Identifier BABY_SNOW_FOX_SLEEP_TEXTURE = Identifier.withDefaultNamespace("textures/entity/fox/fox_snow_sleep_baby.png");
private static final EnumMap<Fox.Variant, FoxRenderer.FoxTexturesByState> TEXTURES_BY_VARIANT = Maps.newEnumMap(
Map.of(
Fox.Variant.RED,
new FoxRenderer.FoxTexturesByState(
new FoxRenderer.FoxTexturesByAge(RED_FOX_TEXTURE, BABY_RED_FOX_TEXTURE),
new FoxRenderer.FoxTexturesByAge(RED_FOX_SLEEP_TEXTURE, BABY_RED_FOX_SLEEP_TEXTURE)
),
Fox.Variant.SNOW,
new FoxRenderer.FoxTexturesByState(
new FoxRenderer.FoxTexturesByAge(SNOW_FOX_TEXTURE, BABY_SNOW_FOX_TEXTURE),
new FoxRenderer.FoxTexturesByAge(SNOW_FOX_SLEEP_TEXTURE, BABY_SNOW_FOX_SLEEP_TEXTURE)
)
)
);
public FoxRenderer(EntityRendererProvider.Context context) {
super(context, new AdultFoxModel(context.bakeLayer(ModelLayers.FOX)), new BabyFoxModel(context.bakeLayer(ModelLayers.FOX_BABY)), 0.4F);
this.addLayer(new FoxHeldItemLayer(this));
}
protected void setupRotations(FoxRenderState state, PoseStack poseStack, float bodyRot, float entityScale) {
super.setupRotations(state, poseStack, bodyRot, entityScale);
if (state.isPouncing || state.isFaceplanted) {
poseStack.mulPose(Axis.XP.rotationDegrees(-state.xRot));
}
}
public Identifier getTextureLocation(FoxRenderState state) {
FoxRenderer.FoxTexturesByState byState = TEXTURES_BY_VARIANT.get(state.variant);
if (byState == null) {
return RED_FOX_TEXTURE;
} else {
FoxRenderer.FoxTexturesByAge ageTextures = state.isSleeping ? byState.sleeping() : byState.idle();
return state.isBaby ? ageTextures.baby() : ageTextures.adult();
}
}
public FoxRenderState createRenderState() {
return new FoxRenderState();
}
public void extractRenderState(Fox entity, FoxRenderState state, float partialTicks) {
super.extractRenderState(entity, state, partialTicks);
HoldingEntityRenderState.extractHoldingEntityRenderState(entity, state, this.itemModelResolver);
state.headRollAngle = entity.getHeadRollAngle(partialTicks);
state.isCrouching = entity.isCrouching();
state.crouchAmount = entity.getCrouchAmount(partialTicks);
state.isSleeping = entity.isSleeping();
state.isSitting = entity.isSitting();
state.isFaceplanted = entity.isFaceplanted();
state.isPouncing = entity.isPouncing();
state.variant = entity.getVariant();
}
@OnlyIn(Dist.CLIENT)
private record FoxTexturesByAge(Identifier adult, Identifier baby) {
}
@OnlyIn(Dist.CLIENT)
private record FoxTexturesByState(FoxRenderer.FoxTexturesByAge idle, FoxRenderer.FoxTexturesByAge sleeping) {
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
构造调用 - 关联成员:
AdultFoxModel()
- 引用位置:
-
- 引用位置:
构造调用 - 关联成员:
BabyFoxModel()
- 引用位置:
-
- 引用位置:
继承
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
构造调用 - 关联成员:
FoxHeldItemLayer()
- 引用位置:
-
- 引用位置:
参数/构造调用/返回值 - 关联成员:
FoxRenderState()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
HoldingEntityRenderState.extractHoldingEntityRenderState()
- 引用位置:
-
- 引用位置:
字段/方法调用/返回值 - 关联成员:
Identifier.withDefaultNamespace()
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置: