aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/utils
diff options
context:
space:
mode:
authorRime <81419447+Emirlol@users.noreply.github.com>2024-05-29 09:40:35 +0300
committerRime <81419447+Emirlol@users.noreply.github.com>2024-06-08 04:13:47 +0300
commitb42644da30168189a21260eb67dde29f45ade510 (patch)
tree76bb941d80f1ed5e3448a2f7a9b3839baee1a9a9 /src/main/java/de/hysky/skyblocker/utils
parentc9f41e98f51bab9be6472f8943ac3d6d8fffe471 (diff)
downloadSkyblocker-b42644da30168189a21260eb67dde29f45ade510.tar.gz
Skyblocker-b42644da30168189a21260eb67dde29f45ade510.tar.bz2
Skyblocker-b42644da30168189a21260eb67dde29f45ade510.zip
Move AccessoryTooltip and MuseumTooltip
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/utils')
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/tooltip/AccessoryTooltip.java43
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/tooltip/MuseumTooltip.java49
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/tooltip/TooltipManager.java2
3 files changed, 92 insertions, 2 deletions
diff --git a/src/main/java/de/hysky/skyblocker/utils/tooltip/AccessoryTooltip.java b/src/main/java/de/hysky/skyblocker/utils/tooltip/AccessoryTooltip.java
new file mode 100644
index 00000000..6650adee
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/utils/tooltip/AccessoryTooltip.java
@@ -0,0 +1,43 @@
+package de.hysky.skyblocker.utils.tooltip;
+
+import de.hysky.skyblocker.skyblock.item.tooltip.AccessoriesHelper;
+import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip;
+import de.hysky.skyblocker.skyblock.item.tooltip.TooltipInfoType;
+import it.unimi.dsi.fastutil.Pair;
+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;
+
+public class AccessoryTooltip extends TooltipAdder {
+ public AccessoryTooltip(int priority) {
+ super(priority);
+ }
+
+ @Override
+ public void addToTooltip(List<Text> lore, Slot focusedSlot) {
+ final String internalID = ItemTooltip.getInternalNameFromNBT(focusedSlot.getStack(), true);
+ if (TooltipInfoType.ACCESSORIES.isTooltipEnabledAndHasOrNullWarning(internalID)) {
+ Pair<AccessoriesHelper.AccessoryReport, String> report = AccessoriesHelper.calculateReport4Accessory(internalID);
+
+ if (report.left() != AccessoriesHelper.AccessoryReport.INELIGIBLE) {
+ MutableText title = Text.literal(String.format("%-19s", "Accessory: ")).withColor(0xf57542);
+
+ Text stateText = switch (report.left()) {
+ case HAS_HIGHEST_TIER -> Text.literal("✔ Collected").formatted(Formatting.GREEN);
+ case IS_GREATER_TIER -> Text.literal("✦ Upgrade ").withColor(0x218bff).append(Text.literal(report.right()).withColor(0xf8f8ff));
+ case HAS_GREATER_TIER -> Text.literal("↑ Upgradable ").withColor(0xf8d048).append(Text.literal(report.right()).withColor(0xf8f8ff));
+ case OWNS_BETTER_TIER -> Text.literal("↓ Downgrade ").formatted(Formatting.GRAY).append(Text.literal(report.right()).withColor(0xf8f8ff));
+ case MISSING -> Text.literal("✖ Missing ").formatted(Formatting.RED).append(Text.literal(report.right()).withColor(0xf8f8ff));
+
+ //Should never be the case
+ default -> Text.literal("? Unknown").formatted(Formatting.GRAY);
+ };
+
+ lore.add(title.append(stateText));
+ }
+ }
+ }
+}
diff --git a/src/main/java/de/hysky/skyblocker/utils/tooltip/MuseumTooltip.java b/src/main/java/de/hysky/skyblocker/utils/tooltip/MuseumTooltip.java
new file mode 100644
index 00000000..038cbbe8
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/utils/tooltip/MuseumTooltip.java
@@ -0,0 +1,49 @@
+package de.hysky.skyblocker.utils.tooltip;
+
+import de.hysky.skyblocker.skyblock.item.MuseumItemCache;
+import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip;
+import de.hysky.skyblocker.skyblock.item.tooltip.TooltipInfoType;
+import de.hysky.skyblocker.utils.ItemUtils;
+import net.minecraft.item.ItemStack;
+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 MuseumTooltip extends TooltipAdder {
+ public MuseumTooltip(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 (TooltipInfoType.MUSEUM.isTooltipEnabledAndHasOrNullWarning(internalID)) {
+ String itemCategory = TooltipInfoType.MUSEUM.getData().get(internalID).getAsString();
+ String format = switch (itemCategory) {
+ case "Weapons" -> "%-18s";
+ case "Armor" -> "%-19s";
+ default -> "%-20s";
+ };
+
+ //Special case the special category so that it doesn't always display not donated
+ if (itemCategory.equals("Special")) {
+ lore.add(Text.literal(String.format(format, "Museum: (" + itemCategory + ")"))
+ .formatted(Formatting.LIGHT_PURPLE));
+ } else {
+ NbtCompound customData = ItemUtils.getCustomData(itemStack);
+ boolean isInMuseum = (customData.contains("donated_museum") && customData.getBoolean("donated_museum")) || MuseumItemCache.hasItemInMuseum(internalID);
+
+ Formatting donatedIndicatorFormatting = isInMuseum ? Formatting.GREEN : Formatting.RED;
+
+ lore.add(Text.literal(String.format(format, "Museum (" + itemCategory + "):"))
+ .formatted(Formatting.LIGHT_PURPLE)
+ .append(Text.literal(isInMuseum ? "✔" : "✖").formatted(donatedIndicatorFormatting, Formatting.BOLD))
+ .append(Text.literal(isInMuseum ? " Donated" : " Not Donated").formatted(donatedIndicatorFormatting)));
+ }
+ }
+ }
+}
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 8b9898a2..dca81389 100644
--- a/src/main/java/de/hysky/skyblocker/utils/tooltip/TooltipManager.java
+++ b/src/main/java/de/hysky/skyblocker/utils/tooltip/TooltipManager.java
@@ -1,7 +1,5 @@
package de.hysky.skyblocker.utils.tooltip;
-import de.hysky.skyblocker.skyblock.item.tooltip.AccessoryTooltip;
-import de.hysky.skyblocker.skyblock.item.tooltip.MuseumTooltip;
import de.hysky.skyblocker.utils.Utils;
import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents;
import net.minecraft.client.gui.screen.Screen;