diff options
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/gui')
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolverManager.java | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolverManager.java b/src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolverManager.java index c965154f..8f3f7e2a 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolverManager.java +++ b/src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolverManager.java @@ -1,10 +1,13 @@ package me.xmrvizzy.skyblocker.gui; import com.mojang.blaze3d.systems.RenderSystem; +import me.xmrvizzy.skyblocker.mixin.HandledScreenAccessor; import me.xmrvizzy.skyblocker.skyblock.dungeon.CroesusHelper; import me.xmrvizzy.skyblocker.skyblock.dungeon.terminal.ColorTerminal; import me.xmrvizzy.skyblocker.skyblock.dungeon.terminal.OrderTerminal; import me.xmrvizzy.skyblocker.skyblock.dungeon.terminal.StartsWithTerminal; +import me.xmrvizzy.skyblocker.utils.Utils; +import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents; import net.minecraft.client.gui.DrawableHelper; import net.minecraft.client.gui.screen.ingame.GenericContainerScreen; import net.minecraft.client.util.math.MatrixStack; @@ -37,6 +40,22 @@ public class ContainerSolverManager extends DrawableHelper { }; } + public void init() { + ScreenEvents.BEFORE_INIT.register((client, screen, scaledWidth, scaledHeight) -> { + if (Utils.isOnSkyblock && screen instanceof GenericContainerScreen genericContainerScreen) { + ScreenEvents.afterRender(screen).register((screen1, matrices, mouseX, mouseY, delta) -> { + matrices.push(); + matrices.translate(((HandledScreenAccessor) genericContainerScreen).getX(), ((HandledScreenAccessor) genericContainerScreen).getY(), 300); + onDraw(matrices, genericContainerScreen.getScreenHandler().slots.subList(0, genericContainerScreen.getScreenHandler().getRows() * 9)); + matrices.pop(); + }); + onSetScreen(genericContainerScreen); + } else { + clearScreen(); + } + }); + } + public void onSetScreen(@NotNull GenericContainerScreen screen) { String screenName = screen.getTitle().getString(); Matcher matcher = PLACEHOLDER_PATTERN.matcher(screenName); @@ -69,7 +88,7 @@ public class ContainerSolverManager extends DrawableHelper { return; if (highlights == null) highlights = currentSolver.getColors(groups, slotMap(slots)); - RenderSystem.disableDepthTest(); + RenderSystem.enableDepthTest(); RenderSystem.colorMask(true, true, true, false); for (ColorHighlight highlight : highlights) { Slot slot = slots.get(highlight.slot()); @@ -77,7 +96,6 @@ public class ContainerSolverManager extends DrawableHelper { fillGradient(matrices, slot.x, slot.y, slot.x + 16, slot.y + 16, color, color); } RenderSystem.colorMask(true, true, true, true); - RenderSystem.enableDepthTest(); } private Map<Integer, ItemStack> slotMap(List<Slot> slots) { |