diff options
author | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-05-28 21:01:39 +0300 |
---|---|---|
committer | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-06-08 04:13:47 +0300 |
commit | 6969632aacfefebcffaa676e51b6b0b929d961d7 (patch) | |
tree | eca96aacaeea9b20aa1d2e5dbe2ef30ae4390e8c /src/main/java/de/hysky/skyblocker/utils | |
parent | 4015ba2f5d79ece643a97c457d2c663f8ef519e7 (diff) | |
download | Skyblocker-6969632aacfefebcffaa676e51b6b0b929d961d7.tar.gz Skyblocker-6969632aacfefebcffaa676e51b6b0b929d961d7.tar.bz2 Skyblocker-6969632aacfefebcffaa676e51b6b0b929d961d7.zip |
Refactor motes tooltip
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/utils')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/utils/tooltip/MotesTooltip.java | 50 | ||||
-rw-r--r-- | src/main/java/de/hysky/skyblocker/utils/tooltip/TooltipManager.java | 1 |
2 files changed, 51 insertions, 0 deletions
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<Text> 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<TooltipAdder> currentScreenAdders = new ArrayList<>(); |