From 92bae955bbd2923556ccde0e179a258f8f10c65f Mon Sep 17 00:00:00 2001 From: brachy84 Date: Fri, 19 Jul 2024 21:03:16 +0200 Subject: [PATCH] disable jei animation when hei ingredient buffer render is enabled --- dependencies.gradle | 3 +++ gradle.properties | 2 +- .../neverenoughanimations/NEA.java | 27 ++++++++++++++++--- .../mixin/jei/IngredientListOverlayMixin.java | 6 +++-- .../mixin/jei/LeftAreaDispatcherMixin.java | 6 +++-- 5 files changed, 35 insertions(+), 9 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index 31e1de7..2de5e8b 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -38,6 +38,9 @@ * For more details, see https://docs.gradle.org/8.4/userguide/java_library_plugin.html#sec:java_library_configurations_graph */ dependencies { + runtimeOnlyNonPublishable rfg.deobf('curse.maven:top-245211:2667280') // TOP 1.4.28 + devOnlyNonPublishable rfg.deobf("curse.maven:had_enough_items-557549:5471944") + devOnlyNonPublishable rfg.deobf("curse.maven:mouse_tweaks_unofficial-461660:4661407") devOnlyNonPublishable rfg.deobf("curse.maven:trashslot-235577:2722385") } diff --git a/gradle.properties b/gradle.properties index 3e4c93e..a82eda4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -83,7 +83,7 @@ includeWellKnownRepositories = true # Adds JEI and TheOneProbe to your development environment. Adds them as 'implementation', meaning they will # be available at compiletime and runtime for your mod (in-game and in-code). # Overrides the above setting to be always true, as these repositories are needed to fetch the mods -includeCommonDevEnvMods = true +includeCommonDevEnvMods = false # Some mods require a specific forge version to launch in. When you need to use one of those mods as a dependency, # and cannot launch with the forge version required, enable this to strip the forge version requirements from that mod. diff --git a/src/main/java/com/cleanroommc/neverenoughanimations/NEA.java b/src/main/java/com/cleanroommc/neverenoughanimations/NEA.java index e33ed9f..c8d7532 100644 --- a/src/main/java/com/cleanroommc/neverenoughanimations/NEA.java +++ b/src/main/java/com/cleanroommc/neverenoughanimations/NEA.java @@ -19,6 +19,7 @@ import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventHandler; +import net.minecraftforge.fml.common.ModContainer; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; @@ -29,18 +30,27 @@ import java.awt.*; -@Mod(modid = Tags.MODID, version = Tags.VERSION, name = Tags.MODNAME, - acceptedMinecraftVersions = "[1.12.2]", clientSideOnly = true, dependencies = "required:mixinbooter@[8.8,);") +@Mod(modid = Tags.MODID, + version = Tags.VERSION, + name = Tags.MODNAME, + acceptedMinecraftVersions = "[1.12.2]", + clientSideOnly = true, + dependencies = "required:mixinbooter@[8.8,);") public class NEA { public static final Logger LOGGER = LogManager.getLogger(Tags.MODID); - public static boolean itemBordersLoaded = false; + private static boolean itemBordersLoaded = false, jeiLoaded = false, heiLoaded = false; private static int mouseX, mouseY; @EventHandler public void preInit(FMLPreInitializationEvent event) { MinecraftForge.EVENT_BUS.register(this); itemBordersLoaded = Loader.isModLoaded("itemborders"); + jeiLoaded = Loader.isModLoaded("jei"); + if (jeiLoaded) { + ModContainer mod = Loader.instance().getIndexedModList().get("jei"); + heiLoaded = "Had Enough Items".equals(mod.getName()); + } } @SubscribeEvent @@ -117,7 +127,8 @@ public static void drawScreenDebug(GuiContainer container, int mouseX, int mouse FontRenderer fr = Minecraft.getMinecraft().fontRenderer; container.drawString(fr, "Mouse Pos: " + mouseX + ", " + mouseY, 5, lineY, color); lineY -= 11; - container.drawString(fr, "Rel. Mouse Pos: " + (mouseX - container.getGuiLeft()) + ", " + (mouseY - container.getGuiTop()), 5, lineY, color); + container.drawString(fr, "Rel. Mouse Pos: " + (mouseX - container.getGuiLeft()) + ", " + (mouseY - container.getGuiTop()), 5, lineY, + color); IItemLocation slot = IItemLocation.of(container.getSlotUnderMouse()); if (slot != null) { lineY -= 11; @@ -141,4 +152,12 @@ public static void drawScreenDebug(GuiContainer container, int mouseX, int mouse public static boolean isItemBordersLoaded() { return itemBordersLoaded; } + + public static boolean isJeiLoaded() { + return jeiLoaded; + } + + public static boolean isHeiLoaded() { + return heiLoaded; + } } diff --git a/src/main/java/com/cleanroommc/neverenoughanimations/core/mixin/jei/IngredientListOverlayMixin.java b/src/main/java/com/cleanroommc/neverenoughanimations/core/mixin/jei/IngredientListOverlayMixin.java index 8590b46..f48dd74 100644 --- a/src/main/java/com/cleanroommc/neverenoughanimations/core/mixin/jei/IngredientListOverlayMixin.java +++ b/src/main/java/com/cleanroommc/neverenoughanimations/core/mixin/jei/IngredientListOverlayMixin.java @@ -1,7 +1,9 @@ package com.cleanroommc.neverenoughanimations.core.mixin.jei; +import com.cleanroommc.neverenoughanimations.NEA; import com.cleanroommc.neverenoughanimations.animations.OpeningAnimation; import mezz.jei.api.gui.IGuiProperties; +import mezz.jei.config.Config; import mezz.jei.gui.overlay.IngredientListOverlay; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; @@ -27,7 +29,7 @@ public class IngredientListOverlayMixin { @Inject(method = "drawScreen", at = @At("HEAD")) public void drawScreenPre(Minecraft minecraft, int mouseX, int mouseY, float partialTicks, CallbackInfo ci) { - if (guiProperties != null) { + if (guiProperties != null && (!NEA.isHeiLoaded() || !Config.bufferIngredientRenders())) { GlStateManager.pushMatrix(); GuiScreen screen = Minecraft.getMinecraft().currentScreen; if (screen instanceof GuiContainer container) { @@ -40,7 +42,7 @@ public void drawScreenPre(Minecraft minecraft, int mouseX, int mouseY, float par @Inject(method = "drawScreen", at = @At("TAIL")) public void drawScreenPost(Minecraft minecraft, int mouseX, int mouseY, float partialTicks, CallbackInfo ci) { - if (guiProperties != null) { + if (guiProperties != null && (!NEA.isHeiLoaded() || !Config.bufferIngredientRenders())) { GlStateManager.popMatrix(); } } diff --git a/src/main/java/com/cleanroommc/neverenoughanimations/core/mixin/jei/LeftAreaDispatcherMixin.java b/src/main/java/com/cleanroommc/neverenoughanimations/core/mixin/jei/LeftAreaDispatcherMixin.java index 31cf8cc..66de80d 100644 --- a/src/main/java/com/cleanroommc/neverenoughanimations/core/mixin/jei/LeftAreaDispatcherMixin.java +++ b/src/main/java/com/cleanroommc/neverenoughanimations/core/mixin/jei/LeftAreaDispatcherMixin.java @@ -1,6 +1,8 @@ package com.cleanroommc.neverenoughanimations.core.mixin.jei; +import com.cleanroommc.neverenoughanimations.NEA; import com.cleanroommc.neverenoughanimations.animations.OpeningAnimation; +import mezz.jei.config.Config; import mezz.jei.gui.overlay.bookmarks.LeftAreaDispatcher; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; @@ -25,7 +27,7 @@ public abstract class LeftAreaDispatcherMixin { @Inject(method = "drawScreen", at = @At("HEAD")) public void drawScreenPre(Minecraft minecraft, int mouseX, int mouseY, float partialTicks, CallbackInfo ci) { - if (canShow && hasContent()) { + if (canShow && hasContent() && (!NEA.isHeiLoaded() || !Config.bufferIngredientRenders())) { GlStateManager.pushMatrix(); GuiScreen screen = Minecraft.getMinecraft().currentScreen; if (screen instanceof GuiContainer container) { @@ -38,7 +40,7 @@ public void drawScreenPre(Minecraft minecraft, int mouseX, int mouseY, float par @Inject(method = "drawScreen", at = @At("TAIL")) public void drawScreenPost(Minecraft minecraft, int mouseX, int mouseY, float partialTicks, CallbackInfo ci) { - if (canShow && hasContent()) { + if (canShow && hasContent() && (!NEA.isHeiLoaded() || !Config.bufferIngredientRenders())) { GlStateManager.popMatrix(); } }