From 6969632aacfefebcffaa676e51b6b0b929d961d7 Mon Sep 17 00:00:00 2001 From: Rime <81419447+Emirlol@users.noreply.github.com> Date: Tue, 28 May 2024 21:01:39 +0300 Subject: Refactor motes tooltip --- .../skyblocker/utils/tooltip/MotesTooltip.java | 50 ++++++++++++++++++++++ .../skyblocker/utils/tooltip/TooltipManager.java | 1 + 2 files changed, 51 insertions(+) create mode 100644 src/main/java/de/hysky/skyblocker/utils/tooltip/MotesTooltip.java (limited to 'src/main/java/de/hysky/skyblocker/utils') diff --git a/src/main/java/de/hysky/skyblocker/utils/tooltip/MotesTooltip.java b/src/main/java/de/hysky/skyblocker/utils/tooltip/MotesTooltip.java new file mode 100644 index 00000000..79a58a62 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/utils/tooltip/MotesTooltip.java @@ -0,0 +1,50 @@ +package de.hysky.skyblocker.utils.tooltip; + +import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip; +import de.hysky.skyblocker.skyblock.item.tooltip.TooltipInfoType; +import net.minecraft.item.ItemStack; +import net.minecraft.screen.slot.Slot; +import net.minecraft.text.MutableText; +import net.minecraft.text.Text; +import net.minecraft.util.Formatting; + +import java.util.List; +import java.util.Locale; + +public class MotesTooltip extends TooltipAdder { + protected MotesTooltip(int priority) { + super(priority); + } + + @Override + public void addToTooltip(List lore, Slot focusedSlot) { + final ItemStack itemStack = focusedSlot.getStack(); + final String internalID = ItemTooltip.getInternalNameFromNBT(itemStack, true); + if (internalID != null && TooltipInfoType.MOTES.isTooltipEnabledAndHasOrNullWarning(internalID)) { + lore.add(Text.literal(String.format("%-20s", "Motes Price:")) + .formatted(Formatting.LIGHT_PURPLE) + .append(getMotesMessage(TooltipInfoType.MOTES.getData().get(internalID).getAsInt(), itemStack.getCount()))); + } + } + + private static Text getMotesMessage(int price, int count) { + float motesMultiplier = SkyblockerConfigManager.get().otherLocations.rift.mcGrubberStacks * 0.05f + 1; + + // Calculate the total price + int totalPrice = price * count; + String totalPriceString = String.format(Locale.ENGLISH, "%1$,.1f", totalPrice * motesMultiplier); + + // If count is 1, return a simple message + if (count == 1) { + return Text.literal(totalPriceString.replace(".0", "") + " Motes").formatted(Formatting.DARK_AQUA); + } + + // If count is greater than 1, include the "each" information + String eachPriceString = String.format(Locale.ENGLISH, "%1$,.1f", price * motesMultiplier); + MutableText message = Text.literal(totalPriceString.replace(".0", "") + " Motes ").formatted(Formatting.DARK_AQUA); + message.append(Text.literal("(" + eachPriceString.replace(".0", "") + " each)").formatted(Formatting.GRAY)); + + return message; + } +} diff --git a/src/main/java/de/hysky/skyblocker/utils/tooltip/TooltipManager.java b/src/main/java/de/hysky/skyblocker/utils/tooltip/TooltipManager.java index e71ec115..4def0a04 100644 --- a/src/main/java/de/hysky/skyblocker/utils/tooltip/TooltipManager.java +++ b/src/main/java/de/hysky/skyblocker/utils/tooltip/TooltipManager.java @@ -15,6 +15,7 @@ public class TooltipManager { new LineSmoothener(), new DungeonQualityTooltip(0), new ObtainedTooltip(1), + new MotesTooltip(0) }; private static final ArrayList currentScreenAdders = new ArrayList<>(); -- cgit