aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/utils/tooltip/MuseumTooltip.java
blob: 038cbbe87b71c287af5a51302fac576ed6d375a1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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)));
			}
		}
	}
}