ArmedEntityRenderState.java

net.minecraft.client.renderer.entity.state.ArmedEntityRenderState

信息

  • 全限定名:net.minecraft.client.renderer.entity.state.ArmedEntityRenderState
  • 类型:public class
  • 包:net.minecraft.client.renderer.entity.state
  • 源码路径:src/main/java/net/minecraft/client/renderer/entity/state/ArmedEntityRenderState.java
  • 起始行号:L16
  • 继承:LivingEntityRenderState
  • 职责:

    TODO

字段/常量

  • mainArm

    • 类型: HumanoidArm
    • 修饰符: public
    • 源码定位: L17
    • 说明:

      TODO

  • attackArm

    • 类型: HumanoidArm
    • 修饰符: public
    • 源码定位: L18
    • 说明:

      TODO

  • rightArmPose

    • 类型: HumanoidModel.ArmPose
    • 修饰符: public
    • 源码定位: L19
    • 说明:

      TODO

  • rightHandItemState

    • 类型: ItemStackRenderState
    • 修饰符: public final
    • 源码定位: L20
    • 说明:

      TODO

  • rightHandItemStack

    • 类型: ItemStack
    • 修饰符: public
    • 源码定位: L21
    • 说明:

      TODO

  • leftArmPose

    • 类型: HumanoidModel.ArmPose
    • 修饰符: public
    • 源码定位: L22
    • 说明:

      TODO

  • leftHandItemState

    • 类型: ItemStackRenderState
    • 修饰符: public final
    • 源码定位: L23
    • 说明:

      TODO

  • leftHandItemStack

    • 类型: ItemStack
    • 修饰符: public
    • 源码定位: L24
    • 说明:

      TODO

  • swingAnimationType

    • 类型: SwingAnimationType
    • 修饰符: public
    • 源码定位: L25
    • 说明:

      TODO

  • attackTime

    • 类型: float
    • 修饰符: public
    • 源码定位: L26
    • 说明:

      TODO

内部类/嵌套类型

构造器

方法

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

public ItemStackRenderState getMainHandItemState() @ L28

  • 方法名:getMainHandItemState
  • 源码定位:L28
  • 返回类型:ItemStackRenderState
  • 修饰符:public

参数:

说明:

TODO

public ItemStack getMainHandItemStack() @ L32

  • 方法名:getMainHandItemStack
  • 源码定位:L32
  • 返回类型:ItemStack
  • 修饰符:public

参数:

说明:

TODO

public ItemStack getUseItemStackForArm(HumanoidArm arm) @ L36

  • 方法名:getUseItemStackForArm
  • 源码定位:L36
  • 返回类型:ItemStack
  • 修饰符:public

参数:

  • arm: HumanoidArm

说明:

TODO

public float ticksUsingItem(HumanoidArm arm) @ L40

  • 方法名:ticksUsingItem
  • 源码定位:L40
  • 返回类型:float
  • 修饰符:public

参数:

  • arm: HumanoidArm

说明:

TODO

public static void extractArmedEntityRenderState(LivingEntity entity, ArmedEntityRenderState state, ItemModelResolver itemModelResolver, float partialTicks) @ L44

  • 方法名:extractArmedEntityRenderState
  • 源码定位:L44
  • 返回类型:void
  • 修饰符:public static

参数:

  • entity: LivingEntity
  • state: ArmedEntityRenderState
  • itemModelResolver: ItemModelResolver
  • partialTicks: float

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class ArmedEntityRenderState extends LivingEntityRenderState {
    public HumanoidArm mainArm = HumanoidArm.RIGHT;
    public HumanoidArm attackArm = HumanoidArm.RIGHT;
    public HumanoidModel.ArmPose rightArmPose = HumanoidModel.ArmPose.EMPTY;
    public final ItemStackRenderState rightHandItemState = new ItemStackRenderState();
    public ItemStack rightHandItemStack = ItemStack.EMPTY;
    public HumanoidModel.ArmPose leftArmPose = HumanoidModel.ArmPose.EMPTY;
    public final ItemStackRenderState leftHandItemState = new ItemStackRenderState();
    public ItemStack leftHandItemStack = ItemStack.EMPTY;
    public SwingAnimationType swingAnimationType = SwingAnimationType.WHACK;
    public float attackTime;
 
    public ItemStackRenderState getMainHandItemState() {
        return this.mainArm == HumanoidArm.RIGHT ? this.rightHandItemState : this.leftHandItemState;
    }
 
    public ItemStack getMainHandItemStack() {
        return this.mainArm == HumanoidArm.RIGHT ? this.rightHandItemStack : this.leftHandItemStack;
    }
 
    public ItemStack getUseItemStackForArm(HumanoidArm arm) {
        return arm == HumanoidArm.RIGHT ? this.rightHandItemStack : this.leftHandItemStack;
    }
 
    public float ticksUsingItem(HumanoidArm arm) {
        return 0.0F;
    }
 
    public static void extractArmedEntityRenderState(LivingEntity entity, ArmedEntityRenderState state, ItemModelResolver itemModelResolver, float partialTicks) {
        state.mainArm = entity.getMainArm();
        state.attackArm = entity.swingingArm != InteractionHand.OFF_HAND ? state.mainArm : state.mainArm.getOpposite();
        ItemStack itemStack = entity.getItemHeldByArm(state.attackArm);
        state.swingAnimationType = itemStack.getSwingAnimation().type();
        state.attackTime = entity.getAttackAnim(partialTicks);
        itemModelResolver.updateForLiving(
            state.rightHandItemState, entity.getItemHeldByArm(HumanoidArm.RIGHT), ItemDisplayContext.THIRD_PERSON_RIGHT_HAND, entity
        );
        itemModelResolver.updateForLiving(state.leftHandItemState, entity.getItemHeldByArm(HumanoidArm.LEFT), ItemDisplayContext.THIRD_PERSON_LEFT_HAND, entity);
        state.leftHandItemStack = entity.getItemHeldByArm(HumanoidArm.LEFT).copy();
        state.rightHandItemStack = entity.getItemHeldByArm(HumanoidArm.RIGHT).copy();
    }
}

引用的其他类