aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/utils
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/utils')
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/gui/ContainerSolver.java9
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/gui/ContainerSolverManager.java14
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());
}