Hi there! Unfortunately, that would only work for the model of the item. I have solved most issues, though, and I am getting closer to a working solution. The issue is that there are some extra faces rendering, and I do not know what is causing them to appear.
public class ModelTest extends EntityModel<Entity> {
private final ModelRenderer Head;
public ModelTest() {
texWidth = 16;
texHeight = 16;
Head = new ModelRenderer(this);
Head.setPos(0.0F, 0.0F, 0.0F);
Head.texOffs(0, 1).addBox(-4.0F, -7.0F, -4.01F, 8.0F, 1.0F, 0.0F, 0.0F, false);
Head.texOffs(0, 1).addBox(4.01F, -7.0F, -4.0F, 0.0F, 1.0F, 8.0F, 0.0F, false);
Head.texOffs(0, 0).addBox(-4.0F, -7.0F, 4.01F, 8.0F, 1.0F, 0.0F, 0.0F, false);
Head.texOffs(0, 0).addBox(-4.01F, -7.0F, -4.0F, 0.0F, 1.0F, 8.0F, 0.0F, false);
Head.texOffs(0, 2).addBox(-1.0F, -7.0F, -4.3F, 2.0F, 1.0F, 1.0F, 0.0F, false);
}
@Override
public void setupAnim(Entity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
// previously the render function, render code was moved to a method below
}
@Override
public void renderToBuffer(MatrixStack matrixStack, IVertexBuilder buffer, int packedLight, int packedOverlay, float red, float green,
float blue, float alpha) {
Head.render(matrixStack, buffer, packedLight, packedOverlay);
}
public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) {
modelRenderer.xRot = x;
modelRenderer.yRot = y;
modelRenderer.zRot = z;
}
public void setRotationAngles(Entity e, float f, float f1, float f2, float f3, float f4) {
this.Head.yRot = f3 / (180F / (float) Math.PI);
this.Head.yRot = f4 / (180F / (float) Math.PI);
}
public ModelRenderer GetHead() { return Head; }
}
public class ItemTest extends ArmorItem {
public ItemTest(IArmorMaterial p_i48534_1_, EquipmentSlotType p_i48534_2_, Properties p_i48534_3_) {
super(ArmorMaterial.IRON, EquipmentSlotType.HEAD, new Item.Properties());
}
@Override
@OnlyIn(Dist.CLIENT)
public BipedModel getArmorModel(LivingEntity living, ItemStack stack, EquipmentSlotType slot, BipedModel defaultModel) {
BipedModel armorModel = new BipedModel(1);
ModelTest modelTest = new ModelTest();
armorModel.head = modelTest.GetHead();
armorModel.crouching = living.isCrouching();
armorModel.riding = defaultModel.riding;
//armorModel.isChild = living.isChild(); ??
return armorModel;
}
@Override
public String getArmorTexture(ItemStack stack, Entity entity, EquipmentSlotType slot, String type) {
return "modtest:textures/models/armor/tex.png";
}
}