WingsLayer.java
net.minecraft.client.renderer.entity.layers.WingsLayer
信息
- 全限定名:net.minecraft.client.renderer.entity.layers.WingsLayer
- 类型:public class
- 包:net.minecraft.client.renderer.entity.layers
- 源码路径:src/main/java/net/minecraft/client/renderer/entity/layers/WingsLayer.java
- 起始行号:L23
- 继承:RenderLayer<S,M>
- 职责:
TODO
字段/常量
-
elytraModel- 类型:
ElytraModel - 修饰符:
private final - 源码定位:
L24 - 说明:
TODO
- 类型:
-
elytraBabyModel- 类型:
ElytraModel - 修饰符:
private final - 源码定位:
L25 - 说明:
TODO
- 类型:
-
equipmentRenderer- 类型:
EquipmentLayerRenderer - 修饰符:
private final - 源码定位:
L26 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public WingsLayer(RenderLayerParent<S,M> renderer, EntityModelSet modelSet, EquipmentLayerRenderer equipmentRenderer) @ L28
- 构造器名:WingsLayer
- 源码定位:L28
- 修饰符:public
参数:
- renderer: RenderLayerParent<S,M>
- modelSet: EntityModelSet
- equipmentRenderer: EquipmentLayerRenderer
说明:
TODO
方法
下面的方法块按源码顺序生成。
public void submit(PoseStack poseStack, SubmitNodeCollector submitNodeCollector, int lightCoords, S state, float yRot, float xRot) @ L35
- 方法名:submit
- 源码定位:L35
- 返回类型:void
- 修饰符:public
参数:
- poseStack: PoseStack
- submitNodeCollector: SubmitNodeCollector
- lightCoords: int
- state: S
- yRot: float
- xRot: float
说明:
TODO
private static Identifier getPlayerElytraTexture(HumanoidRenderState state) @ L61
- 方法名:getPlayerElytraTexture
- 源码定位:L61
- 返回类型:Identifier
- 修饰符:private static
参数:
- state: HumanoidRenderState
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class WingsLayer<S extends HumanoidRenderState, M extends EntityModel<S>> extends RenderLayer<S, M> {
private final ElytraModel elytraModel;
private final ElytraModel elytraBabyModel;
private final EquipmentLayerRenderer equipmentRenderer;
public WingsLayer(RenderLayerParent<S, M> renderer, EntityModelSet modelSet, EquipmentLayerRenderer equipmentRenderer) {
super(renderer);
this.elytraModel = new ElytraModel(modelSet.bakeLayer(ModelLayers.ELYTRA));
this.elytraBabyModel = new ElytraModel(modelSet.bakeLayer(ModelLayers.ELYTRA_BABY));
this.equipmentRenderer = equipmentRenderer;
}
public void submit(PoseStack poseStack, SubmitNodeCollector submitNodeCollector, int lightCoords, S state, float yRot, float xRot) {
ItemStack itemStack = state.chestEquipment;
Equippable equippable = itemStack.get(DataComponents.EQUIPPABLE);
if (equippable != null && !equippable.assetId().isEmpty()) {
Identifier playerElytraTexture = getPlayerElytraTexture(state);
ElytraModel model = state.isBaby ? this.elytraBabyModel : this.elytraModel;
poseStack.pushPose();
poseStack.translate(0.0F, 0.0F, 0.125F);
this.equipmentRenderer
.renderLayers(
EquipmentClientInfo.LayerType.WINGS,
equippable.assetId().get(),
model,
state,
itemStack,
poseStack,
submitNodeCollector,
lightCoords,
playerElytraTexture,
state.outlineColor,
0
);
poseStack.popPose();
}
}
private static @Nullable Identifier getPlayerElytraTexture(HumanoidRenderState state) {
if (state instanceof AvatarRenderState playerState) {
PlayerSkin skin = playerState.skin;
if (skin.elytra() != null) {
return skin.elytra().texturePath();
}
if (skin.cape() != null && playerState.showCape) {
return skin.cape().texturePath();
}
}
return null;
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
字段/构造调用 - 关联成员:
ElytraModel()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
继承
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
返回值
- 引用位置: