diff options
author | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2023-07-22 14:43:00 +0800 |
---|---|---|
committer | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2023-08-18 18:05:10 +0800 |
commit | fc65ff5b469fb384d2df422a5a6d8437012a819b (patch) | |
tree | 0b967fa17e1f791b9efc9c630d54546fcc14a615 /src/main/java/me/xmrvizzy/skyblocker/gui | |
parent | 6069d3cf7d2e96ca7ef1975a3dd04e2121a6e3c9 (diff) | |
download | Skyblocker-fc65ff5b469fb384d2df422a5a6d8437012a819b.tar.gz Skyblocker-fc65ff5b469fb384d2df422a5a6d8437012a819b.tar.bz2 Skyblocker-fc65ff5b469fb384d2df422a5a6d8437012a819b.zip |
Refactor utils package
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/gui')
3 files changed, 0 insertions, 192 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/gui/ColorHighlight.java b/src/main/java/me/xmrvizzy/skyblocker/gui/ColorHighlight.java deleted file mode 100644 index 4367e6e7..00000000 --- a/src/main/java/me/xmrvizzy/skyblocker/gui/ColorHighlight.java +++ /dev/null @@ -1,24 +0,0 @@ -package me.xmrvizzy.skyblocker.gui; - -public record ColorHighlight(int slot, int color) { - private static final int RED_HIGHLIGHT = 64 << 24 | 255 << 16; - private static final int YELLOW_HIGHLIGHT = 128 << 24 | 255 << 16 | 255 << 8; - private static final int GREEN_HIGHLIGHT = 128 << 24 | 64 << 16 | 196 << 8 | 64; - private static final int GRAY_HIGHLIGHT = 128 << 24 | 64 << 16 | 64 << 8 | 64; - - public static ColorHighlight red(int slot) { - return new ColorHighlight(slot, RED_HIGHLIGHT); - } - - public static ColorHighlight yellow(int slot) { - return new ColorHighlight(slot, YELLOW_HIGHLIGHT); - } - - public static ColorHighlight green(int slot) { - return new ColorHighlight(slot, GREEN_HIGHLIGHT); - } - - public static ColorHighlight gray(int slot) { - return new ColorHighlight(slot, GRAY_HIGHLIGHT); - } -}
\ No newline at end of file diff --git a/src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolver.java b/src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolver.java deleted file mode 100644 index c5e3cf09..00000000 --- a/src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolver.java +++ /dev/null @@ -1,44 +0,0 @@ -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); - } - } -} diff --git a/src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolverManager.java b/src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolverManager.java deleted file mode 100644 index 7d187caa..00000000 --- a/src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolverManager.java +++ /dev/null @@ -1,124 +0,0 @@ -package me.xmrvizzy.skyblocker.gui; - -import com.mojang.blaze3d.systems.RenderSystem; -import me.xmrvizzy.skyblocker.mixin.accessor.HandledScreenAccessor; -import me.xmrvizzy.skyblocker.skyblock.dungeon.CroesusHelper; -import me.xmrvizzy.skyblocker.skyblock.dungeon.terminal.ColorTerminal; -import me.xmrvizzy.skyblocker.skyblock.dungeon.terminal.OrderTerminal; -import me.xmrvizzy.skyblocker.skyblock.dungeon.terminal.StartsWithTerminal; -import me.xmrvizzy.skyblocker.skyblock.experiment.ChronomatronSolver; -import me.xmrvizzy.skyblocker.skyblock.experiment.SuperpairsSolver; -import me.xmrvizzy.skyblocker.skyblock.experiment.UltrasequencerSolver; -import me.xmrvizzy.skyblocker.utils.Utils; -import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.gui.screen.ingame.GenericContainerScreen; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.item.ItemStack; -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; - -/** - * Manager class for {@link ContainerSolver}s like terminal solvers and experiment solvers. To add a new gui solver, extend {@link ContainerSolver} and register it in {@link #ContainerSolverManager()}. - */ -public class ContainerSolverManager { - private static final Pattern PLACEHOLDER_PATTERN = Pattern.compile(""); - private final ContainerSolver[] solvers; - private ContainerSolver currentSolver = null; - private String[] groups; - private List<ColorHighlight> highlights; - - public ContainerSolverManager() { - solvers = new ContainerSolver[]{ - new ColorTerminal(), - new OrderTerminal(), - new StartsWithTerminal(), - new CroesusHelper(), - new ChronomatronSolver(), - new SuperpairsSolver(), - new UltrasequencerSolver() - }; - } - - public ContainerSolver getCurrentSolver() { - return currentSolver; - } - - public void init() { - ScreenEvents.BEFORE_INIT.register((client, screen, scaledWidth, scaledHeight) -> { - if (Utils.isOnSkyblock() && screen instanceof GenericContainerScreen genericContainerScreen) { - ScreenEvents.afterRender(screen).register((screen1, context, mouseX, mouseY, delta) -> { - MatrixStack matrices = context.getMatrices(); - matrices.push(); - matrices.translate(((HandledScreenAccessor) genericContainerScreen).getX(), ((HandledScreenAccessor) genericContainerScreen).getY(), 300); - onDraw(context, genericContainerScreen.getScreenHandler().slots.subList(0, genericContainerScreen.getScreenHandler().getRows() * 9)); - matrices.pop(); - }); - ScreenEvents.remove(screen).register(screen1 -> clearScreen()); - onSetScreen(genericContainerScreen); - } else { - clearScreen(); - } - }); - } - - public void onSetScreen(@NotNull GenericContainerScreen screen) { - String screenName = screen.getTitle().getString(); - Matcher matcher = PLACEHOLDER_PATTERN.matcher(screenName); - for (ContainerSolver solver : solvers) { - if (solver.isEnabled()) { - matcher.usePattern(solver.getName()); - matcher.reset(); - if (matcher.matches()) { - currentSolver = solver; - groups = new String[matcher.groupCount()]; - for (int i = 0; i < groups.length; i++) { - groups[i] = matcher.group(i + 1); - } - currentSolver.start(screen); - return; - } - } - } - clearScreen(); - } - - public void clearScreen() { - if (currentSolver != null) { - currentSolver.reset(); - currentSolver = null; - } - } - - public void markDirty() { - highlights = null; - } - - public void onDraw(DrawContext context, List<Slot> slots) { - if (currentSolver == null) - return; - if (highlights == null) - highlights = currentSolver.getColors(groups, slotMap(slots)); - RenderSystem.enableDepthTest(); - RenderSystem.colorMask(true, true, true, false); - for (ColorHighlight highlight : highlights) { - Slot slot = slots.get(highlight.slot()); - int color = highlight.color(); - context.fillGradient(slot.x, slot.y, slot.x + 16, slot.y + 16, color, color); - } - RenderSystem.colorMask(true, true, true, true); - } - - private Map<Integer, ItemStack> slotMap(List<Slot> slots) { - Map<Integer, ItemStack> slotMap = new TreeMap<>(); - for (int i = 0; i < slots.size(); i++) - slotMap.put(i, slots.get(i).getStack()); - return slotMap; - } -} |