/**
* Renders this layer.
*
* @param entityWolf The wolf to render. If it is not am EntityWolfArmored, the layer will not render.
* @param limbSwing The entity's limb swing progress.
* @param limbSwingAmount The entity's limb swing progress amount.
* @param partialTicks The current game tick.
* @param ageInTicks The entity's age.
* @param netHeadYaw The yaw of the entity's head.
* @param headPitch The pitch of the entity's head.
* @param scale The scale at which to render the layer.
*/
@Override
public void doRenderLayer(@Nonnull EntityWolf entityWolf,
float limbSwing,
float limbSwingAmount,
float partialTicks,
float ageInTicks,
float netHeadYaw,
float headPitch,
float scale) {
if (!WolfArmorMod.getConfiguration().getIsWolfArmorRenderEnabled()) {
return;
}
IWolfArmorCapability wolfArmor = entityWolf.getCapability(CapabilityWolfArmor.WOLF_ARMOR_CAPABILITY, null);
if(wolfArmor == null) {
return;
}
ItemStack itemStack = wolfArmor.getArmorItemStack();
if (!itemStack.isEmpty() && itemStack.getItem() instanceof ItemWolfArmor) {
ItemWolfArmor armorItem = (ItemWolfArmor) itemStack.getItem();
for (int layer = 0; layer < modelWolfArmors.length; layer++) {
ModelWolfArmor model = modelWolfArmors[layer];
model = getArmorModelForLayer(entityWolf, itemStack, layer, model);
model.setModelAttributes(this.renderer.getMainModel());
model.setLivingAnimations(entityWolf, limbSwing, limbSwingAmount, partialTicks);
this.renderer.bindTexture(this.getArmorResource(entityWolf, itemStack, layer, null));
int color = armorItem.getColor(itemStack);
if (color != 0xFFFFFFFF) {
float r = (color >> 16 & 0xFF) / 255F;
float g = (color >> 8 & 0xFF) / 255F;
float b = (color & 0xFF) / 255F;
GlStateManager.color(getColorRed() * r, getColorGreen() * g, getColorBlue() * b, getAlpha());
} else {
GlStateManager.color(getColorRed(), getColorGreen(), getColorBlue(), getAlpha());
}
model.render(entityWolf, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale);
GlStateManager.color(getColorRed(), getColorGreen(), getColorBlue(), getAlpha());
if (armorItem.getHasOverlay(itemStack)) {
this.renderer.bindTexture(this.getArmorResource(entityWolf, itemStack, layer, "overlay"));
model.render(entityWolf, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale);
}
if (!getShouldSkipArmorGlint() && itemStack.hasEffect()) {
LayerArmorBase.renderEnchantedGlint(renderer, entityWolf, model, limbSwing, limbSwingAmount, partialTicks,
ageInTicks, netHeadYaw, headPitch, scale);
}
}
}
}
LayerWolfArmor.java 文件源码
java
阅读 24
收藏 0
点赞 0
评论 0
项目:wolfarmor
作者:
评论列表
文章目录