AbstractPiglinModel.java
net.minecraft.client.model.monster.piglin.AbstractPiglinModel
信息
- 全限定名:net.minecraft.client.model.monster.piglin.AbstractPiglinModel
- 类型:public abstract class
- 包:net.minecraft.client.model.monster.piglin
- 源码路径:src/main/java/net/minecraft/client/model/monster/piglin/AbstractPiglinModel.java
- 起始行号:L19
- 继承:HumanoidModel
- 职责:
TODO
字段/常量
-
ADULT_EAR_ANGLE_IN_DEGREES- 类型:
float - 修饰符:
protected static final - 源码定位:
L20 - 说明:
TODO
- 类型:
-
BABY_EAR_ANGLE_IN_DEGREES- 类型:
float - 修饰符:
protected static final - 源码定位:
L21 - 说明:
TODO
- 类型:
-
rightEar- 类型:
ModelPart - 修饰符:
public final - 源码定位:
L22 - 说明:
TODO
- 类型:
-
leftEar- 类型:
ModelPart - 修饰符:
public final - 源码定位:
L23 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public AbstractPiglinModel(ModelPart root) @ L25
- 构造器名:AbstractPiglinModel
- 源码定位:L25
- 修饰符:public
参数:
- root: ModelPart
说明:
TODO
方法
下面的方法块按源码顺序生成。
public static ArmorModelSet<MeshDefinition> createArmorMeshSet(CubeDeformation innerDeformation, CubeDeformation outerDeformation) @ L29
- 方法名:createArmorMeshSet
- 源码定位:L29
- 返回类型:ArmorModelSet
- 修饰符:public static
参数:
- innerDeformation: CubeDeformation
- outerDeformation: CubeDeformation
说明:
TODO
private static MeshDefinition removeEars(MeshDefinition mesh) @ L33
- 方法名:removeEars
- 源码定位:L33
- 返回类型:MeshDefinition
- 修饰符:private static
参数:
- mesh: MeshDefinition
说明:
TODO
public static PartDefinition addHead(CubeDeformation g, MeshDefinition mesh) @ L41
- 方法名:addHead
- 源码定位:L41
- 返回类型:PartDefinition
- 修饰符:public static
参数:
- g: CubeDeformation
- mesh: MeshDefinition
说明:
TODO
public static ArmorModelSet<MeshDefinition> createBabyArmorMeshSet(CubeDeformation innerDeformation, CubeDeformation outerDeformation, PartPose armOffset) @ L69
- 方法名:createBabyArmorMeshSet
- 源码定位:L69
- 返回类型:ArmorModelSet
- 修饰符:public static
参数:
- innerDeformation: CubeDeformation
- outerDeformation: CubeDeformation
- armOffset: PartPose
说明:
TODO
public void setupAnim(S state) @ L73
- 方法名:setupAnim
- 源码定位:L73
- 返回类型:void
- 修饰符:public
参数:
- state: S
说明:
TODO
abstract float getDefaultEarAngleInDegrees() @ L85
- 方法名:getDefaultEarAngleInDegrees
- 源码定位:L85
- 返回类型:float
- 修饰符:abstract
参数:
- 无
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public abstract class AbstractPiglinModel<S extends HumanoidRenderState> extends HumanoidModel<S> {
protected static final float ADULT_EAR_ANGLE_IN_DEGREES = 30.0F;
protected static final float BABY_EAR_ANGLE_IN_DEGREES = 5.0F;
public final ModelPart rightEar = this.head.getChild("right_ear");
public final ModelPart leftEar = this.head.getChild("left_ear");
public AbstractPiglinModel(ModelPart root) {
super(root, RenderTypes::entityTranslucent);
}
public static ArmorModelSet<MeshDefinition> createArmorMeshSet(CubeDeformation innerDeformation, CubeDeformation outerDeformation) {
return PlayerModel.createArmorMeshSet(innerDeformation, outerDeformation).map(AbstractPiglinModel::removeEars);
}
private static MeshDefinition removeEars(MeshDefinition mesh) {
PartDefinition root = mesh.getRoot();
PartDefinition head = root.getChild("head");
head.addOrReplaceChild("left_ear", CubeListBuilder.create(), PartPose.ZERO);
head.addOrReplaceChild("right_ear", CubeListBuilder.create(), PartPose.ZERO);
return mesh;
}
public static PartDefinition addHead(CubeDeformation g, MeshDefinition mesh) {
PartDefinition root = mesh.getRoot();
PartDefinition head = root.addOrReplaceChild(
"head",
CubeListBuilder.create()
.texOffs(0, 0)
.addBox(-5.0F, -8.0F, -4.0F, 10.0F, 8.0F, 8.0F, g)
.texOffs(31, 1)
.addBox(-2.0F, -4.0F, -5.0F, 4.0F, 4.0F, 1.0F, g)
.texOffs(2, 4)
.addBox(2.0F, -2.0F, -5.0F, 1.0F, 2.0F, 1.0F, g)
.texOffs(2, 0)
.addBox(-3.0F, -2.0F, -5.0F, 1.0F, 2.0F, 1.0F, g),
PartPose.ZERO
);
head.addOrReplaceChild(
"left_ear",
CubeListBuilder.create().texOffs(51, 6).addBox(0.0F, 0.0F, -2.0F, 1.0F, 5.0F, 4.0F, g),
PartPose.offsetAndRotation(4.5F, -6.0F, 0.0F, 0.0F, 0.0F, (float) (-Math.PI / 6))
);
head.addOrReplaceChild(
"right_ear",
CubeListBuilder.create().texOffs(39, 6).addBox(-1.0F, 0.0F, -2.0F, 1.0F, 5.0F, 4.0F, g),
PartPose.offsetAndRotation(-4.5F, -6.0F, 0.0F, 0.0F, 0.0F, (float) (Math.PI / 6))
);
return head;
}
public static ArmorModelSet<MeshDefinition> createBabyArmorMeshSet(CubeDeformation innerDeformation, CubeDeformation outerDeformation, PartPose armOffset) {
return PlayerModel.createBabyArmorMeshSet(innerDeformation, outerDeformation, armOffset).map(AbstractPiglinModel::removeEars);
}
@Override
public void setupAnim(S state) {
super.setupAnim(state);
float animationPos = state.walkAnimationPos;
float animationSpeed = state.walkAnimationSpeed;
float defaultAngle = this.getDefaultEarAngleInDegrees() * (float) (Math.PI / 180.0);
float frequency = state.ageInTicks * 0.1F + animationPos * 0.5F;
float amplitude = 0.08F + animationSpeed * 0.4F;
this.leftEar.zRot = -defaultAngle - Mth.cos(frequency * 1.2F) * amplitude;
this.rightEar.zRot = defaultAngle + Mth.cos(frequency) * amplitude;
}
abstract float getDefaultEarAngleInDegrees();
}引用的其他类
-
- 引用位置:
继承
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
参数/方法调用 - 关联成员:
PartPose.offsetAndRotation()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
CubeListBuilder.create()
- 引用位置:
-
- 引用位置:
参数/返回值
- 引用位置:
-
- 引用位置:
返回值
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
PlayerModel.createArmorMeshSet(), PlayerModel.createBabyArmorMeshSet()
- 引用位置:
-
- 引用位置:
返回值
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Mth.cos()
- 引用位置: