FoxModel.java
net.minecraft.client.model.animal.fox.FoxModel
信息
- 全限定名:net.minecraft.client.model.animal.fox.FoxModel
- 类型:public abstract class
- 包:net.minecraft.client.model.animal.fox
- 源码路径:src/main/java/net/minecraft/client/model/animal/fox/FoxModel.java
- 起始行号:L11
- 继承:EntityModel
- 职责:
TODO
字段/常量
-
head- 类型:
ModelPart - 修饰符:
public final - 源码定位:
L12 - 说明:
TODO
- 类型:
-
body- 类型:
ModelPart - 修饰符:
protected final - 源码定位:
L13 - 说明:
TODO
- 类型:
-
rightHindLeg- 类型:
ModelPart - 修饰符:
protected final - 源码定位:
L14 - 说明:
TODO
- 类型:
-
leftHindLeg- 类型:
ModelPart - 修饰符:
protected final - 源码定位:
L15 - 说明:
TODO
- 类型:
-
rightFrontLeg- 类型:
ModelPart - 修饰符:
protected final - 源码定位:
L16 - 说明:
TODO
- 类型:
-
leftFrontLeg- 类型:
ModelPart - 修饰符:
protected final - 源码定位:
L17 - 说明:
TODO
- 类型:
-
tail- 类型:
ModelPart - 修饰符:
protected final - 源码定位:
L18 - 说明:
TODO
- 类型:
-
legMotionPos- 类型:
float - 修饰符:
private - 源码定位:
L19 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public FoxModel(ModelPart root) @ L21
- 构造器名:FoxModel
- 源码定位:L21
- 修饰符:public
参数:
- root: ModelPart
说明:
TODO
方法
下面的方法块按源码顺序生成。
public void setupAnim(FoxRenderState state) @ L32
- 方法名:setupAnim
- 源码定位:L32
- 返回类型:void
- 修饰符:public
参数:
- state: FoxRenderState
说明:
TODO
protected void setSittingPose(FoxRenderState state) @ L68
- 方法名:setSittingPose
- 源码定位:L68
- 返回类型:void
- 修饰符:protected
参数:
- state: FoxRenderState
说明:
TODO
protected void setSleepingPose(FoxRenderState state) @ L73
- 方法名:setSleepingPose
- 源码定位:L73
- 返回类型:void
- 修饰符:protected
参数:
- state: FoxRenderState
说明:
TODO
protected void setWalkingPose(FoxRenderState state) @ L80
- 方法名:setWalkingPose
- 源码定位:L80
- 返回类型:void
- 修饰符:protected
参数:
- state: FoxRenderState
说明:
TODO
protected void setCrouchingPose(FoxRenderState state) @ L88
- 方法名:setCrouchingPose
- 源码定位:L88
- 返回类型:void
- 修饰符:protected
参数:
- state: FoxRenderState
说明:
TODO
protected void setPouncingPose(FoxRenderState state) @ L99
- 方法名:setPouncingPose
- 源码定位:L99
- 返回类型:void
- 修饰符:protected
参数:
- state: FoxRenderState
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public abstract class FoxModel extends EntityModel<FoxRenderState> {
public final ModelPart head;
protected final ModelPart body;
protected final ModelPart rightHindLeg;
protected final ModelPart leftHindLeg;
protected final ModelPart rightFrontLeg;
protected final ModelPart leftFrontLeg;
protected final ModelPart tail;
private float legMotionPos;
public FoxModel(ModelPart root) {
super(root);
this.head = root.getChild("head");
this.body = root.getChild("body");
this.rightHindLeg = root.getChild("right_hind_leg");
this.leftHindLeg = root.getChild("left_hind_leg");
this.rightFrontLeg = root.getChild("right_front_leg");
this.leftFrontLeg = root.getChild("left_front_leg");
this.tail = this.body.getChild("tail");
}
public void setupAnim(FoxRenderState state) {
super.setupAnim(state);
this.setWalkingPose(state);
if (state.isCrouching) {
this.setCrouchingPose(state);
} else if (state.isSleeping) {
this.setSleepingPose(state);
} else if (state.isSitting) {
this.setSittingPose(state);
}
if (state.isPouncing) {
this.setPouncingPose(state);
}
if (!state.isSleeping && !state.isFaceplanted && !state.isCrouching) {
this.head.xRot = state.xRot * (float) (Math.PI / 180.0);
this.head.yRot = state.yRot * (float) (Math.PI / 180.0);
}
if (state.isSleeping) {
this.head.xRot = 0.0F;
this.head.yRot = (float) (-Math.PI * 2.0 / 3.0);
this.head.zRot = Mth.cos(state.ageInTicks * 0.027F) / 22.0F;
}
if (state.isFaceplanted) {
float legMoveFactor = 0.1F;
this.legMotionPos += 0.67F;
this.rightHindLeg.xRot = Mth.cos(this.legMotionPos * 0.4662F) * 0.1F;
this.leftHindLeg.xRot = Mth.cos(this.legMotionPos * 0.4662F + (float) Math.PI) * 0.1F;
this.rightFrontLeg.xRot = Mth.cos(this.legMotionPos * 0.4662F + (float) Math.PI) * 0.1F;
this.leftFrontLeg.xRot = Mth.cos(this.legMotionPos * 0.4662F) * 0.1F;
}
}
protected void setSittingPose(FoxRenderState state) {
this.head.xRot = 0.0F;
this.head.yRot = 0.0F;
}
protected void setSleepingPose(FoxRenderState state) {
this.rightHindLeg.visible = false;
this.leftHindLeg.visible = false;
this.rightFrontLeg.visible = false;
this.leftFrontLeg.visible = false;
}
protected void setWalkingPose(FoxRenderState state) {
this.head.zRot = state.headRollAngle;
this.rightHindLeg.visible = true;
this.leftHindLeg.visible = true;
this.rightFrontLeg.visible = true;
this.leftFrontLeg.visible = true;
}
protected void setCrouchingPose(FoxRenderState state) {
this.body.xRot += 0.10471976F;
this.head.y = this.head.y + state.crouchAmount * state.ageScale;
float wiggleAmount = Mth.cos(state.ageInTicks) * 0.05F;
this.body.yRot = wiggleAmount;
this.rightHindLeg.zRot = wiggleAmount;
this.leftHindLeg.zRot = wiggleAmount;
this.rightFrontLeg.zRot = wiggleAmount / 2.0F;
this.leftFrontLeg.zRot = wiggleAmount / 2.0F;
}
protected void setPouncingPose(FoxRenderState state) {
}
}引用的其他类
-
- 引用位置:
继承
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Mth.cos()
- 引用位置: