From a74e944f417b14ae73d59cf3ca9e35508726a5bf Mon Sep 17 00:00:00 2001 From: Rime <81419447+Emirlol@users.noreply.github.com> Date: Fri, 31 May 2024 21:25:40 +0300 Subject: Add skill level slot text --- .../skyblock/item/slottext/SlotTextManager.java | 8 +++--- .../item/slottext/adders/SkillLevelAdder.java | 31 ++++++++++++++++++++++ 2 files changed, 34 insertions(+), 5 deletions(-) create mode 100644 src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/SkillLevelAdder.java (limited to 'src/main/java/de/hysky/skyblocker/skyblock/item/slottext') diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotTextManager.java b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotTextManager.java index 7087f602..d23e0739 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotTextManager.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotTextManager.java @@ -1,9 +1,6 @@ package de.hysky.skyblocker.skyblock.item.slottext; -import de.hysky.skyblocker.skyblock.item.slottext.adders.EnchantmentLevelAdder; -import de.hysky.skyblocker.skyblock.item.slottext.adders.MinionLevelAdder; -import de.hysky.skyblocker.skyblock.item.slottext.adders.PetLevelAdder; -import de.hysky.skyblocker.skyblock.item.slottext.adders.SkyblockLevelAdder; +import de.hysky.skyblocker.skyblock.item.slottext.adders.*; import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.HandledScreen; @@ -18,7 +15,8 @@ public class SlotTextManager { new EnchantmentLevelAdder(), new MinionLevelAdder(), new PetLevelAdder(), - new SkyblockLevelAdder() + new SkyblockLevelAdder(), + new SkillLevelAdder() }; private static final ArrayList currentScreenAdders = new ArrayList<>(); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/SkillLevelAdder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/SkillLevelAdder.java new file mode 100644 index 00000000..03f9fbd0 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/SkillLevelAdder.java @@ -0,0 +1,31 @@ +package de.hysky.skyblocker.skyblock.item.slottext.adders; + +import de.hysky.skyblocker.skyblock.item.slottext.SlotTextAdder; +import de.hysky.skyblocker.utils.RomanNumerals; +import net.minecraft.screen.slot.Slot; +import net.minecraft.text.Text; +import net.minecraft.util.Formatting; +import org.jetbrains.annotations.Nullable; + +public class SkillLevelAdder extends SlotTextAdder { + public SkillLevelAdder() { + super("^Your Skills"); + } + + @Override + public @Nullable Text getText(Slot slot) { + switch (slot.id) { + case 19, 20, 21, 22, 23, 24, 25, 29, 30, 31, 32 -> { //These are the slots that contain the skill items. Note that they aren't continuous, as there are 2 rows. + String name = slot.getStack().getName().getString(); + int lastIndex = name.lastIndexOf(' '); + if (lastIndex == -1) return Text.literal("0").formatted(Formatting.LIGHT_PURPLE); //Skills without any levels don't display any roman numerals. Probably because 0 doesn't exist. + String romanNumeral = name.substring(lastIndex + 1); //+1 because we don't need the space itself + if (!RomanNumerals.isValidRomanNumeral(romanNumeral)) return null; + return Text.literal(String.valueOf(RomanNumerals.romanToDecimal(romanNumeral))).formatted(Formatting.LIGHT_PURPLE); + } + default -> { + return null; + } + } + } +} -- cgit