12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- package me.km.overrides;
- import com.mojang.blaze3d.platform.GlStateManager;
- import net.minecraft.client.entity.player.AbstractClientPlayerEntity;
- import net.minecraft.client.renderer.entity.IEntityRenderer;
- import net.minecraft.client.renderer.entity.layers.CapeLayer;
- import net.minecraft.client.renderer.entity.model.PlayerModel;
- import net.minecraft.entity.player.PlayerModelPart;
- import net.minecraft.inventory.EquipmentSlotType;
- import net.minecraft.item.ItemStack;
- import net.minecraft.item.Items;
- import net.minecraft.util.ResourceLocation;
- import net.minecraft.util.math.MathHelper;
- import net.minecraftforge.api.distmarker.Dist;
- import net.minecraftforge.api.distmarker.OnlyIn;
- @OnlyIn(Dist.CLIENT)
- public class ModCapeLayer extends CapeLayer
- {
- public ModCapeLayer(IEntityRenderer<AbstractClientPlayerEntity, PlayerModel<AbstractClientPlayerEntity>> pRenderer)
- {
- super(pRenderer);
- }
- @Override
- public void render(AbstractClientPlayerEntity entityIn, float p_212842_2_, float p_212842_3_, float p_212842_4_, float p_212842_5_, float p_212842_6_, float p_212842_7_, float p_212842_8_)
- {
- if(entityIn.hasPlayerInfo() && !entityIn.isInvisible() && entityIn.isWearing(PlayerModelPart.CAPE))
- {
- ItemStack itemstack = entityIn.getItemStackFromSlot(EquipmentSlotType.CHEST);
- if(itemstack.getItem() != Items.ELYTRA)
- {
- ResourceLocation rl = PlayerCapeLoader.INSTANCE.getTexture(entityIn.getUniqueID());
- if(rl == null)
- {
- return;
- }
-
- GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
- this.bindTexture(rl);
- GlStateManager.pushMatrix();
- GlStateManager.translatef(0.0F, 0.0F, 0.125F);
- double d0 = MathHelper.lerp((double) p_212842_4_, entityIn.prevChasingPosX, entityIn.chasingPosX) - MathHelper.lerp((double) p_212842_4_, entityIn.prevPosX, entityIn.posX);
- double d1 = MathHelper.lerp((double) p_212842_4_, entityIn.prevChasingPosY, entityIn.chasingPosY) - MathHelper.lerp((double) p_212842_4_, entityIn.prevPosY, entityIn.posY);
- double d2 = MathHelper.lerp((double) p_212842_4_, entityIn.prevChasingPosZ, entityIn.chasingPosZ) - MathHelper.lerp((double) p_212842_4_, entityIn.prevPosZ, entityIn.posZ);
- float f = entityIn.prevRenderYawOffset + (entityIn.renderYawOffset - entityIn.prevRenderYawOffset);
- double d3 = (double) MathHelper.sin(f * ((float) Math.PI / 180F));
- double d4 = (double) (-MathHelper.cos(f * ((float) Math.PI / 180F)));
- float f1 = (float) d1 * 10.0F;
- f1 = MathHelper.clamp(f1, -6.0F, 32.0F);
- float f2 = (float) (d0 * d3 + d2 * d4) * 100.0F;
- f2 = MathHelper.clamp(f2, 0.0F, 150.0F);
- float f3 = (float) (d0 * d4 - d2 * d3) * 100.0F;
- f3 = MathHelper.clamp(f3, -20.0F, 20.0F);
- if(f2 < 0.0F)
- {
- f2 = 0.0F;
- }
- float f4 = MathHelper.lerp(p_212842_4_, entityIn.prevCameraYaw, entityIn.cameraYaw);
- f1 = f1 + MathHelper.sin(MathHelper.lerp(p_212842_4_, entityIn.prevDistanceWalkedModified, entityIn.distanceWalkedModified) * 6.0F) * 32.0F * f4;
- if(entityIn.shouldRenderSneaking())
- {
- f1 += 25.0F;
- }
- GlStateManager.rotatef(6.0F + f2 / 2.0F + f1, 1.0F, 0.0F, 0.0F);
- GlStateManager.rotatef(f3 / 2.0F, 0.0F, 0.0F, 1.0F);
- GlStateManager.rotatef(-f3 / 2.0F, 0.0F, 1.0F, 0.0F);
- GlStateManager.rotatef(180.0F, 0.0F, 1.0F, 0.0F);
- this.getEntityModel().renderCape(0.0625F);
- GlStateManager.popMatrix();
- }
- }
- }
- }
|