41 lines
1.5 KiB
Java
41 lines
1.5 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.CubeListBuilder;
|
|
import net.minecraft.client.model.geom.builders.LayerDefinition;
|
|
import net.minecraft.client.model.geom.builders.MeshDefinition;
|
|
import net.minecraft.client.model.geom.builders.PartDefinition;
|
|
import net.minecraft.world.entity.Entity;
|
|
|
|
@Environment(EnvType.CLIENT)
|
|
public class LeashKnotModel<T extends Entity> extends HierarchicalModel<T> {
|
|
private static final String KNOT = "knot";
|
|
private final ModelPart root;
|
|
private final ModelPart knot;
|
|
|
|
public LeashKnotModel(ModelPart root) {
|
|
this.root = root;
|
|
this.knot = root.getChild("knot");
|
|
}
|
|
|
|
public static LayerDefinition createBodyLayer() {
|
|
MeshDefinition meshDefinition = new MeshDefinition();
|
|
PartDefinition partDefinition = meshDefinition.getRoot();
|
|
partDefinition.addOrReplaceChild("knot", CubeListBuilder.create().texOffs(0, 0).addBox(-3.0F, -8.0F, -3.0F, 6.0F, 8.0F, 6.0F), PartPose.ZERO);
|
|
return LayerDefinition.create(meshDefinition, 32, 32);
|
|
}
|
|
|
|
@Override
|
|
public ModelPart root() {
|
|
return this.root;
|
|
}
|
|
|
|
@Override
|
|
public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
|
|
this.knot.yRot = netHeadYaw * (float) (Math.PI / 180.0);
|
|
this.knot.xRot = headPitch * (float) (Math.PI / 180.0);
|
|
}
|
|
}
|