From 12070a41687893c564e4d2c1ad9b6ed379f92cae Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Thu, 25 Apr 2024 21:28:22 -0400 Subject: Fix "What starts with" terminal solver --- .../hysky/skyblocker/utils/render/gui/ContainerSolver.java | 9 ++++++--- .../utils/render/gui/ContainerSolverManager.java | 14 ++++++++++---- 2 files changed, 16 insertions(+), 7 deletions(-) (limited to 'src/main/java/de/hysky/skyblocker/utils/render') diff --git a/src/main/java/de/hysky/skyblocker/utils/render/gui/ContainerSolver.java b/src/main/java/de/hysky/skyblocker/utils/render/gui/ContainerSolver.java index 80a1ba9d..16fa7411 100644 --- a/src/main/java/de/hysky/skyblocker/utils/render/gui/ContainerSolver.java +++ b/src/main/java/de/hysky/skyblocker/utils/render/gui/ContainerSolver.java @@ -1,11 +1,11 @@ package de.hysky.skyblocker.utils.render.gui; import de.hysky.skyblocker.SkyblockerMod; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.client.gui.screen.ingame.GenericContainerScreen; import net.minecraft.item.ItemStack; import java.util.List; -import java.util.Map; import java.util.regex.Pattern; /** @@ -34,9 +34,12 @@ public abstract class ContainerSolver { SkyblockerMod.getInstance().containerSolverManager.markDirty(); } - protected abstract List getColors(String[] groups, Map slots); + protected void onClickSlot(int slot, ItemStack stack, ItemStack cursorStack, String[] groups) { + } + + protected abstract List getColors(String[] groups, Int2ObjectMap slots); - protected void trimEdges(Map slots, int rows) { + protected void trimEdges(Int2ObjectMap slots, int rows) { for (int i = 0; i < rows; i++) { slots.remove(9 * i); slots.remove(9 * i + 8); diff --git a/src/main/java/de/hysky/skyblocker/utils/render/gui/ContainerSolverManager.java b/src/main/java/de/hysky/skyblocker/utils/render/gui/ContainerSolverManager.java index e5b2dddb..40e36622 100644 --- a/src/main/java/de/hysky/skyblocker/utils/render/gui/ContainerSolverManager.java +++ b/src/main/java/de/hysky/skyblocker/utils/render/gui/ContainerSolverManager.java @@ -13,6 +13,8 @@ import de.hysky.skyblocker.skyblock.experiment.ChronomatronSolver; import de.hysky.skyblocker.skyblock.experiment.SuperpairsSolver; import de.hysky.skyblocker.skyblock.experiment.UltrasequencerSolver; import de.hysky.skyblocker.utils.Utils; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; +import it.unimi.dsi.fastutil.ints.Int2ObjectRBTreeMap; import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.ingame.GenericContainerScreen; @@ -22,8 +24,6 @@ import net.minecraft.screen.slot.Slot; import org.jetbrains.annotations.NotNull; import java.util.List; -import java.util.Map; -import java.util.TreeMap; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -107,6 +107,12 @@ public class ContainerSolverManager { highlights = null; } + public void onSlotClick(int slot, ItemStack stack, ItemStack cursorStack) { + if (currentSolver != null) { + currentSolver.onClickSlot(slot, stack, cursorStack, groups); + } + } + public void onDraw(DrawContext context, List slots) { if (currentSolver == null) return; @@ -122,8 +128,8 @@ public class ContainerSolverManager { RenderSystem.colorMask(true, true, true, true); } - private Map slotMap(List slots) { - Map slotMap = new TreeMap<>(); + private Int2ObjectMap slotMap(List slots) { + Int2ObjectMap slotMap = new Int2ObjectRBTreeMap<>(); for (int i = 0; i < slots.size(); i++) { slotMap.put(i, slots.get(i).getStack()); } -- cgit