aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorRime <81419447+Emirlol@users.noreply.github.com>2024-06-10 10:19:09 +0300
committerRime <81419447+Emirlol@users.noreply.github.com>2024-06-13 07:21:11 +0300
commitfd04004c6135dd72d9f66903fe7a7cb5975fa041 (patch)
tree44f4d04759f9a43633721525844a8db90d2fd4b3 /src/main
parentce063e8017b2a0410d850ba29baa392b5c475b24 (diff)
downloadSkyblocker-fd04004c6135dd72d9f66903fe7a7cb5975fa041.tar.gz
Skyblocker-fd04004c6135dd72d9f66903fe7a7cb5975fa041.tar.bz2
Skyblocker-fd04004c6135dd72d9f66903fe7a7cb5975fa041.zip
Add community shop slot text for account & profile upgrades
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotTextManager.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/CommunityShopAdder.java60
2 files changed, 62 insertions, 1 deletions
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 a4a83455..18131527 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
@@ -25,7 +25,8 @@ public class SlotTextManager {
new AttributeShardAdder(),
new PrehistoricEggAdder(),
new PotionLevelAdder(),
- new CollectionAdder()
+ new CollectionAdder(),
+ new CommunityShopAdder()
};
private static final ArrayList<SlotTextAdder> currentScreenAdders = new ArrayList<>();
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/CommunityShopAdder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/CommunityShopAdder.java
new file mode 100644
index 00000000..5c8f7c76
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/CommunityShopAdder.java
@@ -0,0 +1,60 @@
+package de.hysky.skyblocker.skyblock.item.slottext.adders;
+
+import de.hysky.skyblocker.skyblock.item.slottext.SlotText;
+import de.hysky.skyblocker.skyblock.item.slottext.SlotTextAdder;
+import de.hysky.skyblocker.utils.ItemUtils;
+import de.hysky.skyblocker.utils.RomanNumerals;
+import net.minecraft.item.ItemStack;
+import net.minecraft.item.Items;
+import net.minecraft.screen.slot.Slot;
+import net.minecraft.text.Text;
+import net.minecraft.util.Formatting;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.List;
+
+public class CommunityShopAdder extends SlotTextAdder {
+ private static final byte CATEGORIES_START = 10;
+ private static final byte CATEGORIES_END = 14; //Inclusive
+
+ public CommunityShopAdder() {
+ super("^Community Shop");
+ }
+
+ @Override
+ public @NotNull List<SlotText> getText(Slot slot) {
+ for (byte i = CATEGORIES_START; i <= CATEGORIES_END; i++) {
+ if (slot.inventory.getStack(i).isOf(Items.LIME_STAINED_GLASS_PANE)) { //Only the selected category has a lime stained glass pane, the others have a gray one.
+ return switch (i) { //This is a switch to allow adding more categories easily in the future, if we ever add more.
+ case 11 -> getTextForUpgradesScreen(slot);
+ default -> List.of();
+ };
+ }
+ }
+ return List.of();
+ }
+
+ private static List<SlotText> getTextForUpgradesScreen(Slot slot) {
+ final ItemStack stack = slot.getStack();
+ switch (slot.id) {
+ case 30, 31, 32, 33, 34, 38, 39, 40, 41, 42, 43, 44 -> {
+ String name = stack.getName().getString();
+ int lastIndex = name.lastIndexOf(' ');
+ String roman = name.substring(lastIndex + 1); // + 1 as we don't want the space
+ if (!RomanNumerals.isValidRomanNumeral(roman)) return List.of();
+
+ List<Text> lore = ItemUtils.getLore(stack);
+ if (lore.isEmpty()) return List.of();
+ String lastLine = lore.getLast().getString();
+ return List.of(SlotText.bottomLeft(switch (lastLine) {
+ case "Maxed out!" -> Text.literal("Max").withColor(0xfab387);
+ case "Currently upgrading!" -> Text.literal("⏰").withColor(0xf9e2af).formatted(Formatting.BOLD);
+ //Todo: Add the case for when the upgrade has finished and is ready to be claimed
+ default -> Text.literal(String.valueOf(RomanNumerals.romanToDecimal(roman))).withColor(0xcba6f7);
+ }));
+
+ }
+ }
+ return List.of();
+ }
+}