Add Elytra render for Elytra Upgrade

Temporarily stole a texture for it from https://www.reddit.com/user/lemoncake__ (http://imgur.com/a/sI5cv) until @Yulife can make a real one.
This commit is contained in:
Nicholas Ignoffo 2016-05-30 19:48:28 -07:00
parent 027787e3cd
commit 5d96b9d2bd
4 changed files with 86 additions and 4 deletions

View file

@ -0,0 +1,53 @@
package WayofTime.bloodmagic.client.render;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.item.armour.ItemLivingArmour;
import WayofTime.bloodmagic.livingArmour.LivingArmour;
import net.minecraft.client.entity.AbstractClientPlayer;
import net.minecraft.client.model.ModelElytra;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.entity.RenderPlayer;
import net.minecraft.client.renderer.entity.layers.LayerArmorBase;
import net.minecraft.client.renderer.entity.layers.LayerRenderer;
import net.minecraft.inventory.EntityEquipmentSlot;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
public class LayerBloodElytra implements LayerRenderer<AbstractClientPlayer> {
private static final ResourceLocation TEXTURE_BLOOD_ELYTRA = new ResourceLocation("bloodmagic", "textures/entities/bloodElytra.png");
private final RenderPlayer renderPlayer;
private final ModelElytra modelElytra = new ModelElytra();
public LayerBloodElytra(RenderPlayer renderPlayer) {
this.renderPlayer = renderPlayer;
}
@Override
public void doRenderLayer(AbstractClientPlayer clientPlayer, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, float netHeadYaw, float headPitch, float scale) {
if (LivingArmour.hasFullSet(clientPlayer)) {
ItemStack chestStack = clientPlayer.getItemStackFromSlot(EntityEquipmentSlot.CHEST);
if (ItemLivingArmour.hasUpgrade(Constants.Mod.MODID + ".upgrade.elytra", chestStack)) {
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
GlStateManager.enableBlend();
renderPlayer.bindTexture(TEXTURE_BLOOD_ELYTRA);
GlStateManager.pushMatrix();
GlStateManager.translate(0.0F, 0.0F, 0.125F);
modelElytra.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale, clientPlayer);
modelElytra.render(clientPlayer, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale);
if (chestStack.isItemEnchanted())
LayerArmorBase.renderEnchantedGlint(this.renderPlayer, clientPlayer, this.modelElytra, limbSwing, limbSwingAmount, partialTicks, ageInTicks, netHeadYaw, headPitch, scale);
GlStateManager.popMatrix();
}
}
}
@Override
public boolean shouldCombineTextures() {
return false;
}
}