ItemInHandLayer.java
net.minecraft.client.renderer.entity.layers.ItemInHandLayer
信息
- 全限定名:net.minecraft.client.renderer.entity.layers.ItemInHandLayer
- 类型:public class
- 包:net.minecraft.client.renderer.entity.layers
- 源码路径:src/main/java/net/minecraft/client/renderer/entity/layers/ItemInHandLayer.java
- 起始行号:L21
- 继承:RenderLayer<S,M>
- 职责:
TODO
字段/常量
- 无
内部类/嵌套类型
- 无
构造器
public ItemInHandLayer(RenderLayerParent<S,M> renderer) @ L22
- 构造器名:ItemInHandLayer
- 源码定位:L22
- 修饰符:public
参数:
- renderer: RenderLayerParent<S,M>
说明:
TODO
方法
下面的方法块按源码顺序生成。
public void submit(PoseStack poseStack, SubmitNodeCollector submitNodeCollector, int lightCoords, S state, float yRot, float xRot) @ L26
- 方法名:submit
- 源码定位:L26
- 返回类型:void
- 修饰符:public
参数:
- poseStack: PoseStack
- submitNodeCollector: SubmitNodeCollector
- lightCoords: int
- state: S
- yRot: float
- xRot: float
说明:
TODO
protected void submitArmWithItem(S state, ItemStackRenderState item, ItemStack itemStack, HumanoidArm arm, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, int lightCoords) @ L31
- 方法名:submitArmWithItem
- 源码定位:L31
- 返回类型:void
- 修饰符:protected
参数:
- state: S
- item: ItemStackRenderState
- itemStack: ItemStack
- arm: HumanoidArm
- poseStack: PoseStack
- submitNodeCollector: SubmitNodeCollector
- lightCoords: int
说明:
TODO
private boolean useBabyOffset(S state) @ L58
- 方法名:useBabyOffset
- 源码定位:L58
- 返回类型:boolean
- 修饰符:private
参数:
- state: S
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class ItemInHandLayer<S extends ArmedEntityRenderState, M extends EntityModel<S> & ArmedModel<S>> extends RenderLayer<S, M> {
public ItemInHandLayer(RenderLayerParent<S, M> renderer) {
super(renderer);
}
public void submit(PoseStack poseStack, SubmitNodeCollector submitNodeCollector, int lightCoords, S state, float yRot, float xRot) {
this.submitArmWithItem(state, state.rightHandItemState, state.rightHandItemStack, HumanoidArm.RIGHT, poseStack, submitNodeCollector, lightCoords);
this.submitArmWithItem(state, state.leftHandItemState, state.leftHandItemStack, HumanoidArm.LEFT, poseStack, submitNodeCollector, lightCoords);
}
protected void submitArmWithItem(
S state, ItemStackRenderState item, ItemStack itemStack, HumanoidArm arm, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, int lightCoords
) {
if (!item.isEmpty()) {
poseStack.pushPose();
this.getParentModel().translateToHand(state, arm, poseStack);
poseStack.mulPose(Axis.XP.rotationDegrees(-90.0F));
poseStack.mulPose(Axis.YP.rotationDegrees(180.0F));
boolean isLeftHand = arm == HumanoidArm.LEFT;
float offsetX = this.useBabyOffset(state) ? 0.0F : 1.0F;
float offsetY = this.useBabyOffset(state) ? 1.0F : 2.0F;
float offsetZ = this.useBabyOffset(state) ? -4.5F : -10.0F;
poseStack.translate((isLeftHand ? -1 : 1) * offsetX / 16.0F, offsetY / 16.0F, offsetZ / 16.0F);
if (state.attackTime > 0.0F && state.attackArm == arm && state.swingAnimationType == SwingAnimationType.STAB) {
SpearAnimations.thirdPersonAttackItem(state, poseStack);
}
float ticksUsingItem = state.ticksUsingItem(arm);
if (ticksUsingItem != 0.0F) {
(arm == HumanoidArm.RIGHT ? state.rightArmPose : state.leftArmPose).animateUseItem(state, poseStack, ticksUsingItem, arm, itemStack);
}
item.submit(poseStack, submitNodeCollector, lightCoords, OverlayTexture.NO_OVERLAY, state.outlineColor);
poseStack.popPose();
}
}
private boolean useBabyOffset(S state) {
return state.isBaby && state.entityType != EntityType.ARMOR_STAND;
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
SpearAnimations.thirdPersonAttackItem()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
继承
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置: