diff options
author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-04-25 21:28:22 -0400 |
---|---|---|
committer | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-04-26 16:23:22 -0400 |
commit | 12070a41687893c564e4d2c1ad9b6ed379f92cae (patch) | |
tree | 4181bd89b9bbb9c0d1a95e94d568bc09bc77587b /src/main/java/de/hysky/skyblocker/utils/render | |
parent | 667df3308e593b66905e83b652020f2e172f7ae3 (diff) | |
download | Skyblocker-12070a41687893c564e4d2c1ad9b6ed379f92cae.tar.gz Skyblocker-12070a41687893c564e4d2c1ad9b6ed379f92cae.tar.bz2 Skyblocker-12070a41687893c564e4d2c1ad9b6ed379f92cae.zip |
Fix "What starts with" terminal solver
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/utils/render')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/utils/render/gui/ContainerSolver.java | 9 | ||||
-rw-r--r-- | src/main/java/de/hysky/skyblocker/utils/render/gui/ContainerSolverManager.java | 14 |
2 files changed, 16 insertions, 7 deletions
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<ColorHighlight> getColors(String[] groups, Map<Integer, ItemStack> slots); + protected void onClickSlot(int slot, ItemStack stack, ItemStack cursorStack, String[] groups) { + } + + protected abstract List<ColorHighlight> getColors(String[] groups, Int2ObjectMap<ItemStack> slots); - protected void trimEdges(Map<Integer, ItemStack> slots, int rows) { + protected void trimEdges(Int2ObjectMap<ItemStack> 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<Slot> slots) { if (currentSolver == null) return; @@ -122,8 +128,8 @@ public class ContainerSolverManager { RenderSystem.colorMask(true, true, true, true); } - private Map<Integer, ItemStack> slotMap(List<Slot> slots) { - Map<Integer, ItemStack> slotMap = new TreeMap<>(); + private Int2ObjectMap<ItemStack> slotMap(List<Slot> slots) { + Int2ObjectMap<ItemStack> slotMap = new Int2ObjectRBTreeMap<>(); for (int i = 0; i < slots.size(); i++) { slotMap.put(i, slots.get(i).getStack()); } |