diff options
author | viciscat <51047087+viciscat@users.noreply.github.com> | 2024-06-24 17:19:44 +0200 |
---|---|---|
committer | viciscat <51047087+viciscat@users.noreply.github.com> | 2024-07-09 18:20:28 +0200 |
commit | 0567f956c42f00b4d43b3c4bc4bc0d1ba0930e4b (patch) | |
tree | a892389f61260a74e69091d1b6bed340ae2fce09 /src/main/java | |
parent | 5aece824aacc1c1608096f1cf3fd6e59317b8052 (diff) | |
download | Skyblocker-0567f956c42f00b4d43b3c4bc4bc0d1ba0930e4b.tar.gz Skyblocker-0567f956c42f00b4d43b3c4bc4bc0d1ba0930e4b.tar.bz2 Skyblocker-0567f956c42f00b4d43b3c4bc4bc0d1ba0930e4b.zip |
ding ding ding ding ding
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java b/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java index f984d751..fdfa9b41 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java @@ -9,9 +9,13 @@ import de.hysky.skyblocker.utils.render.gui.ColorHighlight; import de.hysky.skyblocker.utils.render.gui.ContainerSolver; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.objects.ObjectArrayList; +import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.sound.PositionedSoundInstance; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.screen.slot.Slot; +import net.minecraft.sound.SoundEvents; import net.minecraft.text.MutableText; import net.minecraft.text.Text; import net.minecraft.util.Formatting; @@ -49,6 +53,7 @@ public class ChocolateFactorySolver extends ContainerSolver { private static boolean isTimeTowerActive = false; private static int bestUpgrade = -1; private static int bestAffordableUpgrade = -1; + private static StrayDing ding = StrayDing.NONE; private static final DecimalFormat DECIMAL_FORMAT = new DecimalFormat("#,###.#", DecimalFormatSymbols.getInstance(Locale.ENGLISH)); @Override @@ -65,6 +70,7 @@ public class ChocolateFactorySolver extends ContainerSolver { isTimeTowerActive = false; bestUpgrade = -1; bestAffordableUpgrade = -1; + ding = StrayDing.NONE; } //Slots, for ease of maintenance rather than using magic numbers everywhere. @@ -78,8 +84,20 @@ public class ChocolateFactorySolver extends ContainerSolver { private static final byte STRAY_RABBIT_START = 0; private static final byte STRAY_RABBIT_END = 26; + private static int dingTick = 0; + public ChocolateFactorySolver() { super("^Chocolate Factory$"); //There are multiple screens that fit the pattern `^Chocolate Factory`, so the $ is required + ClientTickEvents.START_CLIENT_TICK.register(ChocolateFactorySolver::onTick); + } + + private static void onTick(MinecraftClient client) { + if (ding != StrayDing.NONE) { + dingTick = (++dingTick) % (ding == StrayDing.NORMAL ? 5 : 3); + if (dingTick == 0) { + client.getSoundManager().play(PositionedSoundInstance.master(ding == StrayDing.NORMAL ? SoundEvents.BLOCK_NOTE_BLOCK_PLING.value() : SoundEvents.BLOCK_NOTE_BLOCK_HAT.value(), 1.f, 1.f)); + } + } } @Override @@ -239,12 +257,14 @@ public class ChocolateFactorySolver extends ContainerSolver { } private static List<ColorHighlight> getStrayRabbitHighlight(Int2ObjectMap<ItemStack> slots) { + ding = StrayDing.NONE; final List<ColorHighlight> highlights = new ArrayList<>(); for (byte i = STRAY_RABBIT_START; i <= STRAY_RABBIT_END; i++) { ItemStack item = slots.get(i); if (!item.isOf(Items.PLAYER_HEAD)) continue; String name = item.getName().getString(); if (name.equals("CLICK ME!") || name.startsWith("Golden Rabbit - ")) { + ding = name.contains("Golden") ? StrayDing.GOLDEN : StrayDing.NORMAL; highlights.add(ColorHighlight.green(i)); } } @@ -253,6 +273,12 @@ public class ChocolateFactorySolver extends ContainerSolver { private record Rabbit(double cpsIncrease, long cost, int slot) { } + private enum StrayDing { + NONE, + NORMAL, + GOLDEN + } + public static final class Tooltip extends TooltipAdder { public Tooltip() { super("^Chocolate Factory$", 0); //The priority doesn't really matter here as this is the only tooltip adder for the Chocolate Factory. |