package net.minecraft.client.renderer.entity.layers; import com.mojang.blaze3d.vertex.PoseStack; import java.util.function.Function; import net.minecraft.client.model.EntityModel; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.entity.RenderLayerParent; import net.minecraft.client.renderer.entity.state.LivingEntityRenderState; import net.minecraft.client.resources.model.EquipmentClientInfo; import net.minecraft.core.component.DataComponents; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.equipment.Equippable; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @OnlyIn(Dist.CLIENT) public class SimpleEquipmentLayer, EM extends EntityModel> extends RenderLayer { private final EquipmentLayerRenderer equipmentRenderer; private final EquipmentClientInfo.LayerType layer; private final Function itemGetter; private final EM adultModel; private final EM babyModel; public SimpleEquipmentLayer( RenderLayerParent p_391337_, EquipmentLayerRenderer p_396277_, EquipmentClientInfo.LayerType p_393091_, Function p_394811_, EM p_392402_, EM p_397424_ ) { super(p_391337_); this.equipmentRenderer = p_396277_; this.layer = p_393091_; this.itemGetter = p_394811_; this.adultModel = p_392402_; this.babyModel = p_397424_; } public SimpleEquipmentLayer( RenderLayerParent p_397316_, EquipmentLayerRenderer p_393279_, EM p_397758_, EquipmentClientInfo.LayerType p_393287_, Function p_395803_ ) { this(p_397316_, p_393279_, p_393287_, p_395803_, p_397758_, p_397758_); } public void render(PoseStack p_392971_, MultiBufferSource p_393255_, int p_396211_, S p_396431_, float p_392529_, float p_395422_) { ItemStack itemstack = this.itemGetter.apply(p_396431_); Equippable equippable = itemstack.get(DataComponents.EQUIPPABLE); if (equippable != null && !equippable.assetId().isEmpty()) { EM em = p_396431_.isBaby ? this.babyModel : this.adultModel; em.setupAnim(p_396431_); this.equipmentRenderer.renderLayers(this.layer, equippable.assetId().get(), em, itemstack, p_392971_, p_393255_, p_396211_); } } }