From 0567f956c42f00b4d43b3c4bc4bc0d1ba0930e4b Mon Sep 17 00:00:00 2001 From: viciscat <51047087+viciscat@users.noreply.github.com> Date: Mon, 24 Jun 2024 17:19:44 +0200 Subject: ding ding ding ding ding --- .../chocolatefactory/ChocolateFactorySolver.java | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src') 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 getStrayRabbitHighlight(Int2ObjectMap slots) { + ding = StrayDing.NONE; final List 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. -- cgit From 80256b6b9f8f56f2e2334055c67783b5c51f07c5 Mon Sep 17 00:00:00 2001 From: viciscat <51047087+viciscat@users.noreply.github.com> Date: Tue, 9 Jul 2024 18:37:55 +0200 Subject: config and stuff + remove duplicate translation --- .../skyblocker/config/categories/HelperCategory.java | 8 ++++++++ .../de/hysky/skyblocker/config/configs/HelperConfig.java | 3 +++ .../chocolatefactory/ChocolateFactorySolver.java | 16 ++++++++-------- src/main/resources/assets/skyblocker/lang/en_us.json | 3 ++- 4 files changed, 21 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/main/java/de/hysky/skyblocker/config/categories/HelperCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/HelperCategory.java index 1518dfe7..56dbca94 100644 --- a/src/main/java/de/hysky/skyblocker/config/categories/HelperCategory.java +++ b/src/main/java/de/hysky/skyblocker/config/categories/HelperCategory.java @@ -196,6 +196,14 @@ public class HelperCategory { newValue -> config.helpers.chocolateFactory.enableTimeTowerReminder = newValue) .controller(ConfigUtils::createBooleanController) .build()) + .option(Option.createBuilder() + .name(Text.translatable("skyblocker.config.helpers.chocolateFactory.straySound")) + .description(OptionDescription.of(Text.translatable("skyblocker.config.helpers.chocolateFactory.straySound.@Tooltip"))) + .binding(defaults.helpers.chocolateFactory.straySound, + () -> config.helpers.chocolateFactory.straySound, + newValue -> config.helpers.chocolateFactory.straySound = newValue) + .controller(ConfigUtils::createBooleanController) + .build()) .build()) .build(); diff --git a/src/main/java/de/hysky/skyblocker/config/configs/HelperConfig.java b/src/main/java/de/hysky/skyblocker/config/configs/HelperConfig.java index 33047f1c..636d76da 100644 --- a/src/main/java/de/hysky/skyblocker/config/configs/HelperConfig.java +++ b/src/main/java/de/hysky/skyblocker/config/configs/HelperConfig.java @@ -90,5 +90,8 @@ public class HelperConfig { @SerialEntry public boolean enableTimeTowerReminder = true; + + @SerialEntry + public boolean straySound = true; } } 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 fdfa9b41..bfd566ba 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java @@ -53,7 +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 StraySound ding = StraySound.NONE; private static final DecimalFormat DECIMAL_FORMAT = new DecimalFormat("#,###.#", DecimalFormatSymbols.getInstance(Locale.ENGLISH)); @Override @@ -70,7 +70,7 @@ public class ChocolateFactorySolver extends ContainerSolver { isTimeTowerActive = false; bestUpgrade = -1; bestAffordableUpgrade = -1; - ding = StrayDing.NONE; + ding = StraySound.NONE; } //Slots, for ease of maintenance rather than using magic numbers everywhere. @@ -92,10 +92,10 @@ public class ChocolateFactorySolver extends ContainerSolver { } private static void onTick(MinecraftClient client) { - if (ding != StrayDing.NONE) { - dingTick = (++dingTick) % (ding == StrayDing.NORMAL ? 5 : 3); + if (ding != StraySound.NONE) { + dingTick = (++dingTick) % (ding == StraySound.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)); + client.getSoundManager().play(PositionedSoundInstance.master(ding == StraySound.NORMAL ? SoundEvents.BLOCK_NOTE_BLOCK_PLING.value() : SoundEvents.BLOCK_NOTE_BLOCK_HAT.value(), 1.f, 1.f)); } } } @@ -257,14 +257,14 @@ public class ChocolateFactorySolver extends ContainerSolver { } private static List getStrayRabbitHighlight(Int2ObjectMap slots) { - ding = StrayDing.NONE; + ding = StraySound.NONE; final List 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; + if (SkyblockerConfigManager.get().helpers.chocolateFactory.straySound) ding = name.startsWith("Golden") ? StraySound.GOLDEN : StraySound.NORMAL; highlights.add(ColorHighlight.green(i)); } } @@ -273,7 +273,7 @@ public class ChocolateFactorySolver extends ContainerSolver { private record Rabbit(double cpsIncrease, long cost, int slot) { } - private enum StrayDing { + private enum StraySound { NONE, NORMAL, GOLDEN diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json index 5ac9dbbb..ff88814d 100644 --- a/src/main/resources/assets/skyblocker/lang/en_us.json +++ b/src/main/resources/assets/skyblocker/lang/en_us.json @@ -228,7 +228,6 @@ "skyblocker.config.general.itemTooltip.avg.BOTH": "Both", "skyblocker.config.general.itemTooltip.avg.ONE_DAY": "1 day price", "skyblocker.config.general.itemTooltip.avg.THREE_DAY": "3 day price", - "skyblocker.config.general.itemTooltip.avg": "Average Type", "skyblocker.config.general.itemTooltip.dungeonQuality": "Dungeon Quality", "skyblocker.config.general.itemTooltip.dungeonQuality.@Tooltip": "Displays quality and tier of dungeon drops from mobs.\n\n\nReminder:\nTier 1-3 dropped from F1-F3\nTier 4-7 dropped from F4-F7 or M1-M4\nTier 8-10 are dropped only from M5-M7", "skyblocker.config.general.itemTooltip.enableAccessoriesHelper": "Enable Accessories Helper", @@ -295,6 +294,8 @@ "skyblocker.config.helpers.chocolateFactory.enableTimeTowerReminder.@Tooltip": "Sends a message in chat when your Time Tower deactivates.", "skyblocker.config.helpers.chocolateFactory.sendEggFoundMessages": "Send Egg Found Messages", "skyblocker.config.helpers.chocolateFactory.sendEggFoundMessages.@Tooltip": "Sends a message in chat when an egg is found in the current island.", + "skyblocker.config.helpers.chocolateFactory.straySound": "Stray Rabbit Sound", + "skyblocker.config.helpers.chocolateFactory.straySound.@Tooltip": "Repeatedly plays a ding while a stray rabbit is present. If it is golden, the sound will be more frequent and different.", "skyblocker.config.helpers.chocolateFactory.waypointType": "Egg Waypoint Type", "skyblocker.config.helpers.chocolateFactory.waypointType.@Tooltip": "Waypoint: Displays a highlight and a beacon beam.\n\nOutlined Waypoint: Displays both a waypoint and an outline.\n\nHighlight: Only displays a highlight.\n\nOutlined Highlight: Displays both a highlight and an outline.\n\nOutline: Only displays an outline.", -- cgit From b4a4c0dc1969e9d589521eb464cd7eabd4a2d0b9 Mon Sep 17 00:00:00 2001 From: viciscat <51047087+viciscat@users.noreply.github.com> Date: Tue, 9 Jul 2024 18:40:01 +0200 Subject: i forgor to change to harp --- .../skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') 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 bfd566ba..db81382c 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java @@ -95,7 +95,7 @@ public class ChocolateFactorySolver extends ContainerSolver { if (ding != StraySound.NONE) { dingTick = (++dingTick) % (ding == StraySound.NORMAL ? 5 : 3); if (dingTick == 0) { - client.getSoundManager().play(PositionedSoundInstance.master(ding == StraySound.NORMAL ? SoundEvents.BLOCK_NOTE_BLOCK_PLING.value() : SoundEvents.BLOCK_NOTE_BLOCK_HAT.value(), 1.f, 1.f)); + client.getSoundManager().play(PositionedSoundInstance.master(ding == StraySound.NORMAL ? SoundEvents.BLOCK_NOTE_BLOCK_PLING.value() : SoundEvents.BLOCK_NOTE_BLOCK_HARP.value(), 1.f, 1.f)); } } } -- cgit