//я спер для примера этот кусок кода из ботании для 1.18 :)
public class CustomModel extends Model {
private final ModelPart body;
private final ModelPart rightarm;
private final ModelPart leftarm;
private final ModelPart rightleg;
private final ModelPart leftleg;
private final ModelPart head;
public ModelAvatar(ModelPart root) {
super(RenderType::entitySolid);
leftleg = root.getChild("left_leg");
rightarm = root.getChild("right_arm");
leftarm = root.getChild("left_arm");
head = root.getChild("head");
rightleg = root.getChild("right_leg");
body = root.getChild("body");
}
public static MeshDefinition createMesh() {
var mesh = new MeshDefinition();
var root = mesh.getRoot();
root.addOrReplaceChild("head", CubeListBuilder.create()
.addBox(-3.0F, -6.0F, -3.0F, 6, 6, 6),
PartPose.offset(0.0F, 14.0F, 0.0F));
root.addOrReplaceChild("body", CubeListBuilder.create().texOffs(0, 12)
.addBox(-3.0F, 0.0F, -2.0F, 6, 4, 4),
PartPose.offset(0.0F, 14.0F, 0.0F));
root.addOrReplaceChild("left_arm", CubeListBuilder.create().texOffs(0, 20).mirror()
.addBox(0.0F, -1.0F, -1.0F, 2, 6, 3),
PartPose.offsetAndRotation(3.0F, 15.0F, -1.0F, 0.0F, -0.0F, -0.0873F));
root.addOrReplaceChild("right_arm", CubeListBuilder.create().texOffs(0, 20)
.addBox(-2.0F, -1.0F, -1.0F, 2, 6, 3),
PartPose.offsetAndRotation(-3.0F, 15.0F, -1.0F, 0.0F, -0.0F, 0.0873F));
root.addOrReplaceChild("left_leg", CubeListBuilder.create().texOffs(0, 20).mirror()
.addBox(-1.5F, 0.0F, -1.5F, 3, 6, 3),
PartPose.offset(1.5F, 18.0F, -0.5F));
root.addOrReplaceChild("right_leg", CubeListBuilder.create().texOffs(0, 20)
.addBox(-1.5F, 0.0F, -1.5F, 3, 6, 3),
PartPose.offset(-1.5F, 18.0F, -0.5F));
return mesh;
}
@Override
public void renderToBuffer(PoseStack ms, VertexConsumer buffer, int light, int overlay, float r, float g, float b, float a) {
leftleg.render(ms, buffer, light, overlay, r, g, b, a);
rightarm.render(ms, buffer, light, overlay, r, g, b, a);
leftarm.render(ms, buffer, light, overlay, r, g, b, a);
head.render(ms, buffer, light, overlay, r, g, b, a);
rightleg.render(ms, buffer, light, overlay, r, g, b, a);
body.render(ms, buffer, light, overlay, r, g, b, a);
}