diff options
author | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-05-28 19:58:47 +0300 |
---|---|---|
committer | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-06-08 04:13:47 +0300 |
commit | a0bc7dc00f47cf1986120b47ccb23f6116660dda (patch) | |
tree | 67491d89db715039b907495723a5fe519c3b2ecd /src/main/java/de/hysky/skyblocker/utils | |
parent | a6148c72d4d53c916a73de979519109a378f2451 (diff) | |
download | Skyblocker-a0bc7dc00f47cf1986120b47ccb23f6116660dda.tar.gz Skyblocker-a0bc7dc00f47cf1986120b47ccb23f6116660dda.tar.bz2 Skyblocker-a0bc7dc00f47cf1986120b47ccb23f6116660dda.zip |
Refactor dungeon quality tooltip
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/utils')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/utils/tooltip/DungeonQualityTooltip.java | 55 | ||||
-rw-r--r-- | src/main/java/de/hysky/skyblocker/utils/tooltip/TooltipManager.java | 3 |
2 files changed, 57 insertions, 1 deletions
diff --git a/src/main/java/de/hysky/skyblocker/utils/tooltip/DungeonQualityTooltip.java b/src/main/java/de/hysky/skyblocker/utils/tooltip/DungeonQualityTooltip.java new file mode 100644 index 00000000..f7be590e --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/utils/tooltip/DungeonQualityTooltip.java @@ -0,0 +1,55 @@ +package de.hysky.skyblocker.utils.tooltip; + +import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.utils.ItemUtils; +import net.minecraft.nbt.NbtCompound; +import net.minecraft.screen.slot.Slot; +import net.minecraft.text.Text; +import net.minecraft.util.Formatting; + +import java.util.List; + +public class DungeonQualityTooltip extends TooltipAdder { + protected DungeonQualityTooltip(int priority) { + super(priority); + } + + @Override + public void addToTooltip(List<Text> lore, Slot focusedSlot) { + if (!SkyblockerConfigManager.get().general.itemTooltip.dungeonQuality) return; + NbtCompound customData = ItemUtils.getCustomData(focusedSlot.getStack()); + if (customData == null || !customData.contains("baseStatBoostPercentage")) return; + int baseStatBoostPercentage = customData.getInt("baseStatBoostPercentage"); + boolean maxQuality = baseStatBoostPercentage == 50; + if (maxQuality) { + lore.add(Text.literal(String.format("%-17s", "Item Quality:") + baseStatBoostPercentage + "/50").formatted(Formatting.RED).formatted(Formatting.BOLD)); + } else { + lore.add(Text.literal(String.format("%-21s", "Item Quality:") + baseStatBoostPercentage + "/50").formatted(Formatting.BLUE)); + } + + if (customData.contains("item_tier")) { // sometimes it just isn't here? + int itemTier = customData.getInt("item_tier"); + if (maxQuality) { + lore.add(Text.literal(String.format("%-17s", "Floor Tier:") + itemTier + " (" + getItemTierFloor(itemTier) + ")").formatted(Formatting.RED).formatted(Formatting.BOLD)); + } else { + lore.add(Text.literal(String.format("%-21s", "Floor Tier:") + itemTier + " (" + getItemTierFloor(itemTier) + ")").formatted(Formatting.BLUE)); + } + } + } + + final String getItemTierFloor(int tier) { + return switch (tier) { + case 1 -> "F1"; + case 2 -> "F2"; + case 3 -> "F3"; + case 4 -> "F4/M1"; + case 5 -> "F5/M2"; + case 6 -> "F6/M3"; + case 7 -> "F7/M4"; + case 8 -> "M5"; + case 9 -> "M6"; + case 10 -> "M7"; + default -> "Unknown"; + }; + } +} 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 7d32e3cd..82f02445 100644 --- a/src/main/java/de/hysky/skyblocker/utils/tooltip/TooltipManager.java +++ b/src/main/java/de/hysky/skyblocker/utils/tooltip/TooltipManager.java @@ -12,7 +12,8 @@ import java.util.List; public class TooltipManager { private static final TooltipAdder[] adders = new TooltipAdder[]{ - new LineSmoothener() + new LineSmoothener(), + new DungeonQualityTooltip(0) }; private static final ArrayList<TooltipAdder> currentScreenAdders = new ArrayList<>(); |