aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ExperimentSolver.java
diff options
context:
space:
mode:
authorKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2023-06-16 16:34:16 +0800
committerKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2023-06-24 12:57:16 +0800
commit4a1075ce0e7c7bb53179820c44f639ce79fe7404 (patch)
tree6f1827da95d5718095236c423a9f3b155d2795dd /src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ExperimentSolver.java
parent579feae3e4a2231bf7e6f98977762bf38b762f3b (diff)
downloadSkyblocker-4a1075ce0e7c7bb53179820c44f639ce79fe7404.tar.gz
Skyblocker-4a1075ce0e7c7bb53179820c44f639ce79fe7404.tar.bz2
Skyblocker-4a1075ce0e7c7bb53179820c44f639ce79fe7404.zip
Add Chronomatron Solver
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ExperimentSolver.java')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ExperimentSolver.java59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ExperimentSolver.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ExperimentSolver.java
new file mode 100644
index 00000000..91eabcfe
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ExperimentSolver.java
@@ -0,0 +1,59 @@
+package me.xmrvizzy.skyblocker.skyblock.experiment;
+
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import me.xmrvizzy.skyblocker.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
+ }
+
+ protected State state = State.REMEMBER;
+ protected 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(SkyblockerConfig.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);
+}