From c15c3d2db212f2fb73e6063aa5ff3cc2b5a7a4f5 Mon Sep 17 00:00:00 2001 From: hannibal2 <24389977+hannibal00212@users.noreply.github.com> Date: Sun, 26 Feb 2023 15:37:56 +0100 Subject: Start fixing gui rendering logic. --- .../at/hannibal2/skyhanni/data/RenderGuiData.kt | 33 +++++++++++++++++++--- 1 file changed, 29 insertions(+), 4 deletions(-) (limited to 'src/main/java/at/hannibal2/skyhanni/data') diff --git a/src/main/java/at/hannibal2/skyhanni/data/RenderGuiData.kt b/src/main/java/at/hannibal2/skyhanni/data/RenderGuiData.kt index b9a217fbc..4de1f5c51 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/RenderGuiData.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/RenderGuiData.kt @@ -1,6 +1,10 @@ package at.hannibal2.skyhanni.data import at.hannibal2.skyhanni.events.GuiRenderEvent +import net.minecraft.client.Minecraft +import net.minecraft.client.gui.inventory.GuiChest +import net.minecraft.client.gui.inventory.GuiInventory +import net.minecraft.client.renderer.GlStateManager import net.minecraftforge.client.event.GuiScreenEvent import net.minecraftforge.client.event.RenderGameOverlayEvent import net.minecraftforge.fml.common.eventhandler.SubscribeEvent @@ -8,13 +12,34 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent class RenderGuiData { @SubscribeEvent - fun onRenderOverlay(event: RenderGameOverlayEvent.Post) { - if (event.type != RenderGameOverlayEvent.ElementType.ALL) return - GuiRenderEvent(GuiRenderEvent.RenderType.IN_WORLD).postAndCatch() + fun onRenderOverlay(event: RenderGameOverlayEvent.Pre) { + if (event.type != RenderGameOverlayEvent.ElementType.HOTBAR) return + + val currentScreen = Minecraft.getMinecraft().currentScreen + if (currentScreen != null) { + if (currentScreen is GuiInventory || currentScreen is GuiChest) return + } + + GlStateManager.pushMatrix() + GlStateManager.translate(0f, 0f, -1f) + GlStateManager.enableDepth() + + GuiRenderEvent.GameOverlayRenderEvent().postAndCatch() + + GlStateManager.popMatrix() } @SubscribeEvent fun onBackgroundDraw(event: GuiScreenEvent.BackgroundDrawnEvent) { - GuiRenderEvent(GuiRenderEvent.RenderType.INVENTORY_BACKGROUND).postAndCatch() + val currentScreen = Minecraft.getMinecraft().currentScreen ?: return + + if (currentScreen !is GuiInventory && currentScreen !is GuiChest) return + + GlStateManager.pushMatrix() + GlStateManager.enableDepth() + + GuiRenderEvent.ChestBackgroundRenderEvent().postAndCatch() + + GlStateManager.popMatrix() } } \ No newline at end of file -- cgit