aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment
diff options
context:
space:
mode:
authorYasin <a.piri@hotmail.de>2023-10-09 12:58:02 +0200
committerYasin <a.piri@hotmail.de>2023-10-09 12:58:02 +0200
commitbd3f0329d0e391bd84b5f9e3ff207d9dd9815853 (patch)
tree2fd1d1ef625f57acc2e4916c967d8d2393844798 /src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment
parent2315b90da8117f28f66348927afdb621ee4fc815 (diff)
downloadSkyblocker-bd3f0329d0e391bd84b5f9e3ff207d9dd9815853.tar.gz
Skyblocker-bd3f0329d0e391bd84b5f9e3ff207d9dd9815853.tar.bz2
Skyblocker-bd3f0329d0e391bd84b5f9e3ff207d9dd9815853.zip
new pr because fixing merge conflict would take too long
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ChronomatronSolver.java129
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ExperimentSolver.java60
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/SuperpairsSolver.java81
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/UltrasequencerSolver.java80
4 files changed, 0 insertions, 350 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ChronomatronSolver.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ChronomatronSolver.java
deleted file mode 100644
index 02d612a6..00000000
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ChronomatronSolver.java
+++ /dev/null
@@ -1,129 +0,0 @@
-package me.xmrvizzy.skyblocker.skyblock.experiment;
-
-import com.google.common.collect.ImmutableMap;
-
-import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
-import me.xmrvizzy.skyblocker.utils.render.gui.ColorHighlight;
-import net.minecraft.client.gui.screen.Screen;
-import net.minecraft.client.gui.screen.ingame.GenericContainerScreen;
-import net.minecraft.inventory.Inventory;
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-import net.minecraft.item.Items;
-
-import java.util.AbstractMap;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-public class ChronomatronSolver extends ExperimentSolver {
- public static final ImmutableMap<Item, Item> TERRACOTTA_TO_GLASS = ImmutableMap.ofEntries(
- new AbstractMap.SimpleImmutableEntry<>(Items.RED_TERRACOTTA, Items.RED_STAINED_GLASS),
- new AbstractMap.SimpleImmutableEntry<>(Items.ORANGE_TERRACOTTA, Items.ORANGE_STAINED_GLASS),
- new AbstractMap.SimpleImmutableEntry<>(Items.YELLOW_TERRACOTTA, Items.YELLOW_STAINED_GLASS),
- new AbstractMap.SimpleImmutableEntry<>(Items.LIME_TERRACOTTA, Items.LIME_STAINED_GLASS),
- new AbstractMap.SimpleImmutableEntry<>(Items.GREEN_TERRACOTTA, Items.GREEN_STAINED_GLASS),
- new AbstractMap.SimpleImmutableEntry<>(Items.CYAN_TERRACOTTA, Items.CYAN_STAINED_GLASS),
- new AbstractMap.SimpleImmutableEntry<>(Items.LIGHT_BLUE_TERRACOTTA, Items.LIGHT_BLUE_STAINED_GLASS),
- new AbstractMap.SimpleImmutableEntry<>(Items.BLUE_TERRACOTTA, Items.BLUE_STAINED_GLASS),
- new AbstractMap.SimpleImmutableEntry<>(Items.PURPLE_TERRACOTTA, Items.PURPLE_STAINED_GLASS),
- new AbstractMap.SimpleImmutableEntry<>(Items.PINK_TERRACOTTA, Items.PINK_STAINED_GLASS)
- );
-
- private final List<Item> chronomatronSlots = new ArrayList<>();
- private int chronomatronChainLengthCount;
- private int chronomatronCurrentSlot;
- private int chronomatronCurrentOrdinal;
-
- public ChronomatronSolver() {
- super("^Chronomatron \\(\\w+\\)$");
- }
-
- public List<Item> getChronomatronSlots() {
- return chronomatronSlots;
- }
-
- public int getChronomatronCurrentOrdinal() {
- return chronomatronCurrentOrdinal;
- }
-
- public int incrementChronomatronCurrentOrdinal() {
- return ++chronomatronCurrentOrdinal;
- }
-
- @Override
- protected boolean isEnabled(SkyblockerConfig.Experiments experimentsConfig) {
- return experimentsConfig.enableChronomatronSolver;
- }
-
- @Override
- protected void tick(Screen screen) {
- if (isEnabled() && screen instanceof GenericContainerScreen genericContainerScreen && genericContainerScreen.getTitle().getString().startsWith("Chronomatron (")) {
- switch (getState()) {
- case REMEMBER -> {
- Inventory inventory = genericContainerScreen.getScreenHandler().getInventory();
- if (chronomatronCurrentSlot == 0) {
- for (int index = 10; index < 43; index++) {
- if (inventory.getStack(index).hasEnchantments()) {
- if (chronomatronSlots.size() <= chronomatronChainLengthCount) {
- chronomatronSlots.add(TERRACOTTA_TO_GLASS.get(inventory.getStack(index).getItem()));
- setState(State.WAIT);
- } else {
- chronomatronChainLengthCount++;
- }
- chronomatronCurrentSlot = index;
- return;
- }
- }
- } else if (!inventory.getStack(chronomatronCurrentSlot).hasEnchantments()) {
- chronomatronCurrentSlot = 0;
- }
- }
- case WAIT -> {
- if (genericContainerScreen.getScreenHandler().getInventory().getStack(49).getName().getString().startsWith("Timer: ")) {
- setState(State.SHOW);
- }
- }
- case END -> {
- String name = genericContainerScreen.getScreenHandler().getInventory().getStack(49).getName().getString();
- if (!name.startsWith("Timer: ")) {
- if (name.equals("Remember the pattern!")) {
- chronomatronChainLengthCount = 0;
- chronomatronCurrentOrdinal = 0;
- setState(State.REMEMBER);
- } else {
- reset();
- }
- }
- }
- }
- } else {
- reset();
- }
- }
-
- @Override
- protected List<ColorHighlight> getColors(String[] groups, Map<Integer, ItemStack> slots) {
- List<ColorHighlight> highlights = new ArrayList<>();
- if (getState() == State.SHOW && chronomatronSlots.size() > chronomatronCurrentOrdinal) {
- for (Map.Entry<Integer, ItemStack> indexStack : slots.entrySet()) {
- int index = indexStack.getKey();
- ItemStack stack = indexStack.getValue();
- Item item = chronomatronSlots.get(chronomatronCurrentOrdinal);
- if (stack.isOf(item) || TERRACOTTA_TO_GLASS.get(stack.getItem()) == item) {
- highlights.add(ColorHighlight.green(index));
- }
- }
- }
- return highlights;
- }
-
- @Override
- protected void reset() {
- super.reset();
- chronomatronSlots.clear();
- chronomatronChainLengthCount = 0;
- chronomatronCurrentSlot = 0;
- chronomatronCurrentOrdinal = 0;
- }
-}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ExperimentSolver.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ExperimentSolver.java
deleted file mode 100644
index 9e25fa2a..00000000
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ExperimentSolver.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package me.xmrvizzy.skyblocker.skyblock.experiment;
-
-import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
-import me.xmrvizzy.skyblocker.config.SkyblockerConfigManager;
-import me.xmrvizzy.skyblocker.utils.render.gui.ContainerSolver;
-import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents;
-import net.minecraft.client.gui.screen.Screen;
-import net.minecraft.client.gui.screen.ingame.GenericContainerScreen;
-import net.minecraft.item.ItemStack;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public abstract class ExperimentSolver extends ContainerSolver {
- public enum State {
- REMEMBER, WAIT, SHOW, END
- }
-
- private State state = State.REMEMBER;
- private final Map<Integer, ItemStack> slots = new HashMap<>();
-
- protected ExperimentSolver(String containerName) {
- super(containerName);
- }
-
- public State getState() {
- return state;
- }
-
- public void setState(State state) {
- this.state = state;
- }
-
- public Map<Integer, ItemStack> getSlots() {
- return slots;
- }
-
- @Override
- protected final boolean isEnabled() {
- return isEnabled(SkyblockerConfigManager.get().general.experiments);
- }
-
- protected abstract boolean isEnabled(SkyblockerConfig.Experiments experimentsConfig);
-
- @Override
- protected void start(GenericContainerScreen screen) {
- super.start(screen);
- state = State.REMEMBER;
- ScreenEvents.afterTick(screen).register(this::tick);
- }
-
- @Override
- protected void reset() {
- super.reset();
- state = State.REMEMBER;
- slots.clear();
- }
-
- protected abstract void tick(Screen screen);
-}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/SuperpairsSolver.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/SuperpairsSolver.java
deleted file mode 100644
index f329a395..00000000
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/SuperpairsSolver.java
+++ /dev/null
@@ -1,81 +0,0 @@
-package me.xmrvizzy.skyblocker.skyblock.experiment;
-
-import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
-import me.xmrvizzy.skyblocker.utils.render.gui.ColorHighlight;
-import net.minecraft.client.gui.screen.Screen;
-import net.minecraft.client.gui.screen.ingame.GenericContainerScreen;
-import net.minecraft.item.ItemStack;
-import net.minecraft.item.Items;
-
-import java.util.*;
-
-public class SuperpairsSolver extends ExperimentSolver {
- private int superpairsPrevClickedSlot;
- private ItemStack superpairsCurrentSlot;
- private final Set<Integer> superpairsDuplicatedSlots = new HashSet<>();
-
- public SuperpairsSolver() {
- super("^Superpairs \\(\\w+\\)$");
- }
-
- public void setSuperpairsPrevClickedSlot(int superpairsPrevClickedSlot) {
- this.superpairsPrevClickedSlot = superpairsPrevClickedSlot;
- }
-
- public void setSuperpairsCurrentSlot(ItemStack superpairsCurrentSlot) {
- this.superpairsCurrentSlot = superpairsCurrentSlot;
- }
-
- @Override
- protected boolean isEnabled(SkyblockerConfig.Experiments experimentsConfig) {
- return experimentsConfig.enableSuperpairsSolver;
- }
-
- @Override
- protected void start(GenericContainerScreen screen) {
- super.start(screen);
- setState(State.SHOW);
- }
-
- @Override
- protected void tick(Screen screen) {
- if (isEnabled() && screen instanceof GenericContainerScreen genericContainerScreen && genericContainerScreen.getTitle().getString().startsWith("Superpairs (")) {
- if (getState() == State.SHOW) {
- if (genericContainerScreen.getScreenHandler().getInventory().getStack(4).isOf(Items.CAULDRON)) {
- reset();
- } else if (getSlots().get(superpairsPrevClickedSlot) == null) {
- ItemStack itemStack = genericContainerScreen.getScreenHandler().getInventory().getStack(superpairsPrevClickedSlot);
- if (!(itemStack.isOf(Items.CYAN_STAINED_GLASS) || itemStack.isOf(Items.BLACK_STAINED_GLASS_PANE) || itemStack.isOf(Items.AIR))) {
- getSlots().entrySet().stream().filter((entry -> ItemStack.areEqual(entry.getValue(), itemStack))).findAny().ifPresent(entry -> superpairsDuplicatedSlots.add(entry.getKey()));
- getSlots().put(superpairsPrevClickedSlot, itemStack);
- superpairsCurrentSlot = itemStack;
- }
- }
- }
- } else {
- reset();
- }
- }
-
- @Override
- protected List<ColorHighlight> getColors(String[] groups, Map<Integer, ItemStack> displaySlots) {
- List<ColorHighlight> highlights = new ArrayList<>();
- if (getState() == State.SHOW) {
- for (Map.Entry<Integer, ItemStack> indexStack : displaySlots.entrySet()) {
- int index = indexStack.getKey();
- ItemStack displayStack = indexStack.getValue();
- ItemStack stack = getSlots().get(index);
- if (stack != null && !ItemStack.areEqual(stack, displayStack)) {
- if (ItemStack.areEqual(superpairsCurrentSlot, stack) && displayStack.getName().getString().equals("Click a second button!")) {
- highlights.add(ColorHighlight.green(index));
- } else if (superpairsDuplicatedSlots.contains(index)) {
- highlights.add(ColorHighlight.yellow(index));
- } else {
- highlights.add(ColorHighlight.red(index));
- }
- }
- }
- }
- return highlights;
- }
-}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/UltrasequencerSolver.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/UltrasequencerSolver.java
deleted file mode 100644
index d4d80ee6..00000000
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/UltrasequencerSolver.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package me.xmrvizzy.skyblocker.skyblock.experiment;
-
-import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
-import me.xmrvizzy.skyblocker.utils.render.gui.ColorHighlight;
-import net.minecraft.client.gui.screen.Screen;
-import net.minecraft.client.gui.screen.ingame.GenericContainerScreen;
-import net.minecraft.inventory.Inventory;
-import net.minecraft.item.ItemStack;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-public class UltrasequencerSolver extends ExperimentSolver {
- private int ultrasequencerNextSlot;
-
- public UltrasequencerSolver() {
- super("^Ultrasequencer \\(\\w+\\)$");
- }
-
- public int getUltrasequencerNextSlot() {
- return ultrasequencerNextSlot;
- }
-
- public void setUltrasequencerNextSlot(int ultrasequencerNextSlot) {
- this.ultrasequencerNextSlot = ultrasequencerNextSlot;
- }
-
- @Override
- protected boolean isEnabled(SkyblockerConfig.Experiments experimentsConfig) {
- return experimentsConfig.enableUltrasequencerSolver;
- }
-
- @Override
- protected void tick(Screen screen) {
- if (isEnabled() && screen instanceof GenericContainerScreen genericContainerScreen && genericContainerScreen.getTitle().getString().startsWith("Ultrasequencer (")) {
- switch (getState()) {
- case REMEMBER -> {
- Inventory inventory = genericContainerScreen.getScreenHandler().getInventory();
- if (inventory.getStack(49).getName().getString().equals("Remember the pattern!")) {
- for (int index = 9; index < 45; index++) {
- ItemStack itemStack = inventory.getStack(index);
- String name = itemStack.getName().getString();
- if (name.matches("\\d+")) {
- if (name.equals("1")) {
- ultrasequencerNextSlot = index;
- }
- getSlots().put(index, itemStack);
- }
- }
- setState(State.WAIT);
- }
- }
- case WAIT -> {
- if (genericContainerScreen.getScreenHandler().getInventory().getStack(49).getName().getString().startsWith("Timer: ")) {
- setState(State.SHOW);
- }
- }
- case END -> {
- String name = genericContainerScreen.getScreenHandler().getInventory().getStack(49).getName().getString();
- if (!name.startsWith("Timer: ")) {
- if (name.equals("Remember the pattern!")) {
- getSlots().clear();
- setState(State.REMEMBER);
- } else {
- reset();
- }
- }
- }
- }
- } else {
- reset();
- }
- }
-
- @Override
- protected List<ColorHighlight> getColors(String[] groups, Map<Integer, ItemStack> slots) {
- return getState() == State.SHOW && ultrasequencerNextSlot != 0 ? List.of(ColorHighlight.green(ultrasequencerNextSlot)) : new ArrayList<>();
- }
-}