From 027d85309ef9835d2fa14f4f3172d40b23a6e448 Mon Sep 17 00:00:00 2001 From: Leclowndu93150 <xdr.a123454321@gmail.com> Date: Sat, 20 Jul 2024 17:35:47 +0200 Subject: [PATCH] Handle Visible/Invisible slots --- gradle.properties | 2 +- .../modular_angelring/render/AngelRingCheck.java | 11 +++++++++++ .../modular_angelring/render/AngelRingRenderer.java | 3 ++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index efb4b1a..357fd84 100644 --- a/gradle.properties +++ b/gradle.properties @@ -31,7 +31,7 @@ mod_name=Modular Angel Ring mod_license=All Rights Reserved -mod_version=1.0.6 +mod_version=1.2.0 mod_group_id=com.leclowndu93150.modular_angelring diff --git a/src/main/java/com/leclowndu93150/modular_angelring/render/AngelRingCheck.java b/src/main/java/com/leclowndu93150/modular_angelring/render/AngelRingCheck.java index 05bb571..15e744d 100644 --- a/src/main/java/com/leclowndu93150/modular_angelring/render/AngelRingCheck.java +++ b/src/main/java/com/leclowndu93150/modular_angelring/render/AngelRingCheck.java @@ -3,6 +3,9 @@ import com.leclowndu93150.modular_angelring.registry.ItemRegistry; import net.minecraft.client.player.AbstractClientPlayer; import top.theillusivec4.curios.api.CuriosApi; +import top.theillusivec4.curios.api.SlotResult; + +import java.util.Optional; public class AngelRingCheck { public static boolean isBaseEquipped(AbstractClientPlayer playerEntity) { @@ -12,4 +15,12 @@ public static boolean isBaseEquipped(AbstractClientPlayer playerEntity) { public static boolean isEquipped(AbstractClientPlayer playerEntity) { return isBaseEquipped(playerEntity); } + + public static boolean isVisible(AbstractClientPlayer playerEntity) { + if (isEquipped(playerEntity)) { + Optional<SlotResult> slotResult = CuriosApi.getCuriosInventory(playerEntity).flatMap(handler -> handler.findFirstCurio(ItemRegistry.ANGEL_RING.get())); + return slotResult.get().slotContext().visible(); + } + return false; + } } diff --git a/src/main/java/com/leclowndu93150/modular_angelring/render/AngelRingRenderer.java b/src/main/java/com/leclowndu93150/modular_angelring/render/AngelRingRenderer.java index b1c507d..adffe6a 100644 --- a/src/main/java/com/leclowndu93150/modular_angelring/render/AngelRingRenderer.java +++ b/src/main/java/com/leclowndu93150/modular_angelring/render/AngelRingRenderer.java @@ -16,6 +16,7 @@ import org.joml.Quaternionf; import static com.leclowndu93150.modular_angelring.render.AngelRingCheck.isEquipped; +import static com.leclowndu93150.modular_angelring.render.AngelRingCheck.isVisible; public class AngelRingRenderer extends RenderLayer<AbstractClientPlayer, PlayerModel<AbstractClientPlayer>> { protected static final double FLAP_FREQUENCY = 0.5; // flaps per second @@ -33,7 +34,7 @@ public AngelRingRenderer(RenderLayerParent<AbstractClientPlayer, PlayerModel<Abs @Override public void render(@NotNull PoseStack matrixStack, @NotNull MultiBufferSource buffer, int packedLight, @NotNull AbstractClientPlayer player, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, float netHeadYaw, float headPitch) { assert Minecraft.getInstance().player != null; - if (!player.isInvisible() && isEquipped(player)) { + if (!player.isInvisible() && isEquipped(player) && isVisible(player)) { matrixStack.pushPose(); getParentModel().body.translateAndRotate(matrixStack);