BabyModelTransform.java
net.minecraft.client.model.BabyModelTransform
信息
- 全限定名:net.minecraft.client.model.BabyModelTransform
- 类型:public record
- 包:net.minecraft.client.model
- 源码路径:src/main/java/net/minecraft/client/model/BabyModelTransform.java
- 起始行号:L14
- 实现:MeshTransformer
- 职责:
TODO
字段/常量
- 无
内部类/嵌套类型
- 无
构造器
public BabyModelTransform(Set<String> headParts) @ L17
- 构造器名:BabyModelTransform
- 源码定位:L17
- 修饰符:public
参数:
- headParts: Set
说明:
TODO
public BabyModelTransform(boolean scaleHead, float babyYHeadOffset, float babyZHeadOffset, Set<String> headParts) @ L21
- 构造器名:BabyModelTransform
- 源码定位:L21
- 修饰符:public
参数:
- scaleHead: boolean
- babyYHeadOffset: float
- babyZHeadOffset: float
- headParts: Set
说明:
TODO
方法
下面的方法块按源码顺序生成。
public MeshDefinition apply(MeshDefinition mesh) @ L25
- 方法名:apply
- 源码定位:L25
- 返回类型:MeshDefinition
- 修饰符:public
参数:
- mesh: MeshDefinition
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public record BabyModelTransform(
boolean scaleHead, float babyYHeadOffset, float babyZHeadOffset, float babyHeadScale, float babyBodyScale, float bodyYOffset, Set<String> headParts
) implements MeshTransformer {
public BabyModelTransform(Set<String> headParts) {
this(false, 5.0F, 2.0F, headParts);
}
public BabyModelTransform(boolean scaleHead, float babyYHeadOffset, float babyZHeadOffset, Set<String> headParts) {
this(scaleHead, babyYHeadOffset, babyZHeadOffset, 2.0F, 2.0F, 24.0F, headParts);
}
@Override
public MeshDefinition apply(MeshDefinition mesh) {
float headScale = this.scaleHead ? 1.5F / this.babyHeadScale : 1.0F;
float bodyScale = 1.0F / this.babyBodyScale;
UnaryOperator<PartPose> headTransform = p -> p.translated(0.0F, this.babyYHeadOffset, this.babyZHeadOffset).scaled(headScale);
UnaryOperator<PartPose> bodyTransform = p -> p.translated(0.0F, this.bodyYOffset, 0.0F).scaled(bodyScale);
MeshDefinition babyMesh = new MeshDefinition();
for (Entry<String, PartDefinition> entry : mesh.getRoot().getChildren()) {
String name = entry.getKey();
PartDefinition part = entry.getValue();
babyMesh.getRoot().addOrReplaceChild(name, part.transformed(this.headParts.contains(name) ? headTransform : bodyTransform));
}
return babyMesh;
}
}引用的其他类
-
- 引用位置:
参数/构造调用/返回值 - 关联成员:
MeshDefinition()
- 引用位置:
-
- 引用位置:
实现
- 引用位置: