From 2dee78114564b9f2075b8b7c39076580083a3d0e Mon Sep 17 00:00:00 2001 From: Krxwallo Date: Thu, 4 Mar 2021 11:30:39 +0100 Subject: [PATCH] Hide a player's cape when the backpack is equipped (#6). --- .../renderer/entity/layers/BackpackLayer.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/mrcrayfish/backpacked/client/renderer/entity/layers/BackpackLayer.java b/src/main/java/com/mrcrayfish/backpacked/client/renderer/entity/layers/BackpackLayer.java index bc14cba6b..fc452e781 100644 --- a/src/main/java/com/mrcrayfish/backpacked/client/renderer/entity/layers/BackpackLayer.java +++ b/src/main/java/com/mrcrayfish/backpacked/client/renderer/entity/layers/BackpackLayer.java @@ -3,10 +3,10 @@ import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.vertex.IVertexBuilder; import com.mrcrayfish.backpacked.Backpacked; -import com.mrcrayfish.backpacked.Reference; import com.mrcrayfish.backpacked.client.model.ModelBackpack; import com.mrcrayfish.backpacked.integration.Curios; import com.mrcrayfish.backpacked.item.BackpackItem; +import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.client.renderer.entity.IEntityRenderer; @@ -14,10 +14,10 @@ import net.minecraft.client.renderer.entity.model.BipedModel; import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.entity.player.PlayerEntity; +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; /** * Author: MrCrayfish @@ -25,6 +25,7 @@ public class BackpackLayer> extends LayerRenderer { private ModelBackpack model; + private boolean backpackEnabled = false; public BackpackLayer(IEntityRenderer renderer, ModelBackpack model) { @@ -41,14 +42,16 @@ public void render(MatrixStack stack, IRenderTypeBuffer renderTypeBuffer, int p_ ItemStack chestStack = player.getItemStackFromSlot(EquipmentSlotType.CHEST); if(chestStack.getItem() == Items.ELYTRA) { + setBackpackEnabled(false); return; } if(Backpacked.isCuriosLoaded() && !Curios.isBackpackVisible(player)) { + setBackpackEnabled(false); return; } - + setBackpackEnabled(true); stack.push(); this.getEntityModel().setModelAttributes(this.model); this.model.setupAngles(this.getEntityModel()); @@ -58,4 +61,11 @@ public void render(MatrixStack stack, IRenderTypeBuffer renderTypeBuffer, int p_ stack.pop(); } } + + private void setBackpackEnabled(boolean enabled) { + if (enabled == backpackEnabled) return; + backpackEnabled = enabled; + // Enable/Disable cape. + Minecraft.getInstance().gameSettings.setModelPartEnabled(PlayerModelPart.CAPE, !enabled); + } }