diff options
author | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2023-06-16 16:56:15 +0800 |
---|---|---|
committer | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2023-06-24 12:57:16 +0800 |
commit | e9c2a6916ff744c935c4330c259b641159ec9b80 (patch) | |
tree | 697d5f167becc2bd4b0ab886ca1656283ecb0934 /src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment | |
parent | 9f302adedceb0ab4f8ecd23cbb416f454fb688af (diff) | |
download | Skyblocker-e9c2a6916ff744c935c4330c259b641159ec9b80.tar.gz Skyblocker-e9c2a6916ff744c935c4330c259b641159ec9b80.tar.bz2 Skyblocker-e9c2a6916ff744c935c4330c259b641159ec9b80.zip |
Fix Superpairs Solver initial state and refactor Experiment Solver fields to private
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment')
4 files changed, 23 insertions, 17 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 index ee88b98f..1a6f0b55 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ChronomatronSolver.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ChronomatronSolver.java @@ -58,7 +58,7 @@ public class ChronomatronSolver extends ExperimentSolver { @Override protected void tick(Screen screen) { if (isEnabled() && screen instanceof GenericContainerScreen genericContainerScreen && genericContainerScreen.getTitle().getString().startsWith("Chronomatron (")) { - switch (state) { + switch (getState()) { case REMEMBER -> { Inventory inventory = genericContainerScreen.getScreenHandler().getInventory(); if (chronomatronCurrentSlot == 0) { @@ -66,7 +66,7 @@ public class ChronomatronSolver extends ExperimentSolver { if (inventory.getStack(index).hasEnchantments()) { if (chronomatronSlots.size() <= chronomatronChainLengthCount) { chronomatronSlots.add(TERRACOTTA_TO_GLASS.get(inventory.getStack(index).getItem())); - state = State.WAIT; + setState(State.WAIT); } else { chronomatronChainLengthCount++; } @@ -80,7 +80,7 @@ public class ChronomatronSolver extends ExperimentSolver { } case WAIT -> { if (genericContainerScreen.getScreenHandler().getInventory().getStack(49).getName().getString().startsWith("Timer: ")) { - state = State.SHOW; + setState(State.SHOW); } } case END -> { @@ -89,7 +89,7 @@ public class ChronomatronSolver extends ExperimentSolver { if (name.equals("Remember the pattern!")) { chronomatronChainLengthCount = 0; chronomatronCurrentOrdinal = 0; - state = State.REMEMBER; + setState(State.REMEMBER); } else { reset(); } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ExperimentSolver.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ExperimentSolver.java index 91eabcfe..5dad908e 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ExperimentSolver.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ExperimentSolver.java @@ -15,8 +15,8 @@ public abstract class ExperimentSolver extends ContainerSolver { REMEMBER, WAIT, SHOW, END } - protected State state = State.REMEMBER; - protected final Map<Integer, ItemStack> slots = new HashMap<>(); + private State state = State.REMEMBER; + private final Map<Integer, ItemStack> slots = new HashMap<>(); protected ExperimentSolver(String containerName) { super(containerName); diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/SuperpairsSolver.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/SuperpairsSolver.java index 117bcdf3..f40b0fa0 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/SuperpairsSolver.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/SuperpairsSolver.java @@ -32,16 +32,22 @@ public class SuperpairsSolver extends ExperimentSolver { } @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 (state == State.SHOW) { + if (getState() == State.SHOW) { if (genericContainerScreen.getScreenHandler().getInventory().getStack(4).isOf(Items.CAULDRON)) { reset(); - } else if (slots.get(superpairsPrevClickedSlot) == null) { + } 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))) { - slots.entrySet().stream().filter((entry -> ItemStack.areEqual(entry.getValue(), itemStack))).findAny().ifPresent(entry -> superpairsDuplicatedSlots.add(entry.getKey())); - slots.put(superpairsPrevClickedSlot, itemStack); + getSlots().entrySet().stream().filter((entry -> ItemStack.areEqual(entry.getValue(), itemStack))).findAny().ifPresent(entry -> superpairsDuplicatedSlots.add(entry.getKey())); + getSlots().put(superpairsPrevClickedSlot, itemStack); superpairsCurrentSlot = itemStack; } } @@ -57,7 +63,7 @@ public class SuperpairsSolver extends ExperimentSolver { for (Map.Entry<Integer, ItemStack> indexStack : displaySlots.entrySet()){ int index = indexStack.getKey(); ItemStack displayStack = indexStack.getValue(); - ItemStack stack = slots.get(index); + 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)); diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/UltrasequencerSolver.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/UltrasequencerSolver.java index edda257c..90968fe2 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/UltrasequencerSolver.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/UltrasequencerSolver.java @@ -34,7 +34,7 @@ public class UltrasequencerSolver extends ExperimentSolver { @Override protected void tick(Screen screen) { if (isEnabled() && screen instanceof GenericContainerScreen genericContainerScreen && genericContainerScreen.getTitle().getString().startsWith("Ultrasequencer (")) { - switch (state) { + switch (getState()) { case REMEMBER -> { Inventory inventory = genericContainerScreen.getScreenHandler().getInventory(); if (inventory.getStack(49).getName().getString().equals("Remember the pattern!")) { @@ -45,23 +45,23 @@ public class UltrasequencerSolver extends ExperimentSolver { if (name.equals("1")) { ultrasequencerNextSlot = index; } - slots.put(index, itemStack); + getSlots().put(index, itemStack); } } - state = State.WAIT; + setState(State.WAIT); } } case WAIT -> { if (genericContainerScreen.getScreenHandler().getInventory().getStack(49).getName().getString().startsWith("Timer: ")) { - state = State.SHOW; + setState(State.SHOW); } } case END -> { String name = genericContainerScreen.getScreenHandler().getInventory().getStack(49).getName().getString(); if (!name.startsWith("Timer: ")) { if (name.equals("Remember the pattern!")) { - slots.clear(); - state = State.REMEMBER; + getSlots().clear(); + setState(State.REMEMBER); } else { reset(); } |