diff options
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolver.java')
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolver.java | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolver.java b/src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolver.java new file mode 100644 index 00000000..c5e3cf09 --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolver.java @@ -0,0 +1,44 @@ +package me.xmrvizzy.skyblocker.gui; + +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; + +/** + * Abstract class for gui solvers. Extend this class to add a new gui solver, like terminal solvers or experiment solvers. + */ +public abstract class ContainerSolver { + private final Pattern containerName; + + protected ContainerSolver(String containerName) { + this.containerName = Pattern.compile(containerName); + } + + protected abstract boolean isEnabled(); + + public Pattern getName() { + return containerName; + } + + protected void start(GenericContainerScreen screen) { + } + + protected void reset() { + } + + protected abstract List<ColorHighlight> getColors(String[] groups, Map<Integer, ItemStack> slots); + + protected void trimEdges(Map<Integer, 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); + } + } +} |