diff options
author | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-06-19 18:57:43 +0300 |
---|---|---|
committer | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2024-07-22 14:20:35 +0800 |
commit | 4c398333b9802a9000cc65d50ae4a2d13f300ca8 (patch) | |
tree | 2b2e52431ddfc7610cc0070f5e5abe3c7356a02d /src/main/java/de/hysky/skyblocker/utils/container/AbstractContainerSolver.java | |
parent | 6541bb6aa43a7141ac259ee34a597891d6a45689 (diff) | |
download | Skyblocker-4c398333b9802a9000cc65d50ae4a2d13f300ca8.tar.gz Skyblocker-4c398333b9802a9000cc65d50ae4a2d13f300ca8.tar.bz2 Skyblocker-4c398333b9802a9000cc65d50ae4a2d13f300ca8.zip |
Refactor container matcher implementations into interfaces
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/utils/container/AbstractContainerSolver.java')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/utils/container/AbstractContainerSolver.java | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/utils/container/AbstractContainerSolver.java b/src/main/java/de/hysky/skyblocker/utils/container/AbstractContainerSolver.java new file mode 100644 index 00000000..38bc32dd --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/utils/container/AbstractContainerSolver.java @@ -0,0 +1,37 @@ +package de.hysky.skyblocker.utils.container; + +import de.hysky.skyblocker.SkyblockerMod; +import de.hysky.skyblocker.utils.render.gui.ColorHighlight; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; +import net.minecraft.client.gui.screen.ingame.GenericContainerScreen; +import net.minecraft.item.ItemStack; + +import java.util.List; + +public interface AbstractContainerSolver extends AbstractContainerMatcher { + + List<ColorHighlight> getColors(Int2ObjectMap<ItemStack> slots); + + default void start(GenericContainerScreen screen) {} + + default void reset() {} + + default boolean onClickSlot(int slot, ItemStack stack, int screenId) { + return false; + } + + static void markHighlightsDirty() { + SkyblockerMod.getInstance().containerSolverManager.markDirty(); + } + + static void trimEdges(Int2ObjectMap<ItemStack> slots, int rows) { + for (int i = 0; i < rows; i++) { + slots.remove(9 * i); + slots.remove(9 * i + 8); + } + for (int i = 1; i < 8; i++) { + slots.remove(i); + slots.remove((rows - 1) * 9 + i); + } + } +} |