diff options
| author | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-05-29 09:35:52 +0300 | 
|---|---|---|
| committer | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-06-08 04:13:47 +0300 | 
| commit | c9f41e98f51bab9be6472f8943ac3d6d8fffe471 (patch) | |
| tree | 94a58a9fdcf0820f5d4c08d284d8f975895a0184 /src/main/java | |
| parent | d46c6474503bea7f08d0df8f7f36f305c8ed002c (diff) | |
| download | Skyblocker-c9f41e98f51bab9be6472f8943ac3d6d8fffe471.tar.gz Skyblocker-c9f41e98f51bab9be6472f8943ac3d6d8fffe471.tar.bz2 Skyblocker-c9f41e98f51bab9be6472f8943ac3d6d8fffe471.zip | |
Refactor accessory tooltip
Diffstat (limited to 'src/main/java')
3 files changed, 44 insertions, 30 deletions
| diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/AccessoryTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/AccessoryTooltip.java new file mode 100644 index 00000000..a0a0559b --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/AccessoryTooltip.java @@ -0,0 +1,41 @@ +package de.hysky.skyblocker.skyblock.item.tooltip; + +import de.hysky.skyblocker.utils.tooltip.TooltipAdder; +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/skyblock/item/tooltip/ItemTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/ItemTooltip.java index 041e9762..bc79bf76 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/ItemTooltip.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/ItemTooltip.java @@ -4,19 +4,16 @@ import com.google.gson.JsonObject;  import de.hysky.skyblocker.SkyblockerMod;  import de.hysky.skyblocker.config.SkyblockerConfigManager;  import de.hysky.skyblocker.config.configs.GeneralConfig; -import de.hysky.skyblocker.skyblock.item.tooltip.AccessoriesHelper.AccessoryReport;  import de.hysky.skyblocker.utils.Constants;  import de.hysky.skyblocker.utils.ItemUtils;  import de.hysky.skyblocker.utils.Utils;  import de.hysky.skyblocker.utils.scheduler.Scheduler; -import it.unimi.dsi.fastutil.Pair;  import net.minecraft.client.MinecraftClient;  import net.minecraft.client.item.TooltipType;  import net.minecraft.item.Item;  import net.minecraft.item.ItemStack;  import net.minecraft.nbt.NbtCompound;  import net.minecraft.nbt.NbtElement; -import net.minecraft.text.MutableText;  import net.minecraft.text.Text;  import net.minecraft.util.Formatting;  import org.jetbrains.annotations.NotNull; @@ -117,32 +114,6 @@ public class ItemTooltip {                  }              }          } - - - - - - -        if (TooltipInfoType.ACCESSORIES.isTooltipEnabledAndHasOrNullWarning(internalID)) { -            Pair<AccessoryReport, String> report = AccessoriesHelper.calculateReport4Accessory(internalID); - -            if (report.left() != 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); -                }; - -                lines.add(title.append(stateText)); -            } -        }      }      @NotNull 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 b5f44405..8b9898a2 100644 --- a/src/main/java/de/hysky/skyblocker/utils/tooltip/TooltipManager.java +++ b/src/main/java/de/hysky/skyblocker/utils/tooltip/TooltipManager.java @@ -1,5 +1,6 @@  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; @@ -15,11 +16,12 @@ public class TooltipManager {  	private static final TooltipAdder[] adders = new TooltipAdder[]{  			new LineSmoothener(),  			new DungeonQualityTooltip(0), +			new NpcPriceTooltip(1),  			new ObtainedTooltip(3),  			new MuseumTooltip(4),  			new ColorTooltip(5), +			new AccessoryTooltip(6),  			new MotesTooltip(0), -			new NpcPriceTooltip(1)  	};  	private static final ArrayList<TooltipAdder> currentScreenAdders = new ArrayList<>(); | 
