- 8
- 0
Делаю я значит модельку. Пытаюсь через модель предназначенную для слота нагрудника (тип брони -
Как мне обойти эту проверку? Есть-ли другие способы вместе с броней тела рендерить часть модельки, привязанной к голове?
EntityEquipmentSlot.CHEST
) привязать часть модельки к голове игрока (так должно было быть по моей задумке). Запустив и посмотрев, оказалось, что та часть в броне нагрудника, что должна была быть привязана к голове игрока просто не отображается. Отладив код, я увидел, что что-то в фордже меняет видимость частей модельки. В итоге я нашёл злодея - net.minecraft.client.renderer.entity.layers.LayerBipedArmor
. После получения модельки брони, Фордж вызывает метод данной гадины setModelSlotVisible
, который убирает видимость всех частей модельки не соответствующей типу брони. Кому интересно - вот тот самый метод + его побочный
Java:
protected void setModelSlotVisible(ModelBiped p_188359_1_, EntityEquipmentSlot slotIn)
{
this.setModelVisible(p_188359_1_);
switch (slotIn)
{
case HEAD:
p_188359_1_.bipedHead.showModel = true;
p_188359_1_.bipedHeadwear.showModel = true;
break;
case CHEST:
p_188359_1_.bipedBody.showModel = true;
p_188359_1_.bipedRightArm.showModel = true;
p_188359_1_.bipedLeftArm.showModel = true;
break;
case LEGS:
p_188359_1_.bipedBody.showModel = true;
p_188359_1_.bipedRightLeg.showModel = true;
p_188359_1_.bipedLeftLeg.showModel = true;
break;
case FEET:
p_188359_1_.bipedRightLeg.showModel = true;
p_188359_1_.bipedLeftLeg.showModel = true;
}
}
protected void setModelVisible(ModelBiped model)
{
model.setVisible(false);
}