minecraft-src/net/minecraft/client/model/HappyGhastHarnessModel.java
2025-09-18 12:27:44 +00:00

51 lines
1.9 KiB
Java

package net.minecraft.client.model;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.builders.CubeDeformation;
import net.minecraft.client.model.geom.builders.CubeListBuilder;
import net.minecraft.client.model.geom.builders.LayerDefinition;
import net.minecraft.client.model.geom.builders.MeshDefinition;
import net.minecraft.client.model.geom.builders.MeshTransformer;
import net.minecraft.client.model.geom.builders.PartDefinition;
import net.minecraft.client.renderer.entity.state.HappyGhastRenderState;
@Environment(EnvType.CLIENT)
public class HappyGhastHarnessModel extends EntityModel<HappyGhastRenderState> {
private static final float GOGGLES_Y_OFFSET = 14.0F;
private final ModelPart goggles;
public HappyGhastHarnessModel(ModelPart root) {
super(root);
this.goggles = root.getChild("goggles");
}
public static LayerDefinition createHarnessLayer(boolean baby) {
MeshDefinition meshDefinition = new MeshDefinition();
PartDefinition partDefinition = meshDefinition.getRoot();
partDefinition.addOrReplaceChild(
"harness", CubeListBuilder.create().texOffs(0, 0).addBox(-8.0F, -16.0F, -8.0F, 16.0F, 16.0F, 16.0F), PartPose.offset(0.0F, 24.0F, 0.0F)
);
partDefinition.addOrReplaceChild(
"goggles",
CubeListBuilder.create().texOffs(0, 32).addBox(-8.0F, -2.5F, -2.5F, 16.0F, 5.0F, 5.0F, new CubeDeformation(0.15F)),
PartPose.offset(0.0F, 14.0F, -5.5F)
);
return LayerDefinition.create(meshDefinition, 64, 64)
.apply(MeshTransformer.scaling(4.0F))
.apply(baby ? HappyGhastModel.BABY_TRANSFORMER : MeshTransformer.IDENTITY);
}
public void setupAnim(HappyGhastRenderState renderState) {
super.setupAnim(renderState);
if (renderState.isRidden) {
this.goggles.xRot = 0.0F;
this.goggles.y = 14.0F;
} else {
this.goggles.xRot = -0.7854F;
this.goggles.y = 9.0F;
}
}
}