From 801735a06e283d185a1d3b06aad55444a6c7578f Mon Sep 17 00:00:00 2001 From: olim Date: Wed, 7 Feb 2024 21:44:19 +0000 Subject: added icons added icons to the suggested options and history --- .../skyblock/searchOverlay/OverlayScreen.java | 26 ++++++++++- .../skyblock/searchOverlay/SearchOverManager.java | 52 +++++++++++++++++----- 2 files changed, 67 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/OverlayScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/OverlayScreen.java index ece25884..6760f20d 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/OverlayScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/OverlayScreen.java @@ -3,15 +3,22 @@ package de.hysky.skyblocker.skyblock.searchOverlay; import de.hysky.skyblocker.config.SkyblockerConfigManager; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.gui.tooltip.Tooltip; import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.gui.widget.TextFieldWidget; +import net.minecraft.client.item.TooltipContext; +import net.minecraft.item.ItemStack; import net.minecraft.text.Style; import net.minecraft.text.Text; import net.minecraft.util.Formatting; import net.minecraft.util.Identifier; import org.lwjgl.glfw.GLFW; +import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; + +import static de.hysky.skyblocker.skyblock.itemlist.ItemRepository.getItemStack; public class OverlayScreen extends Screen { @@ -35,7 +42,7 @@ public class OverlayScreen extends Screen { protected void init() { super.init(); int rowHeight = 20; - int rowWidth = (int)(this.width * 0.33); + int rowWidth = (int)(this.width * 0.4); int startX = (int)(this.width * 0.5) - rowWidth/2; int startY = (int) ((int)(this.height * 0.5)- (rowHeight * (1+ SkyblockerConfigManager.get().general.searchOverlay.maxSuggestions + 0.75 + SkyblockerConfigManager.get().general.searchOverlay.historyLength)) /2); @@ -64,6 +71,7 @@ public class OverlayScreen extends Screen { }) .position(startX , startY + rowOffset) .size(rowWidth, rowHeight).build(); + suggestionButtons[i].visible = false; rowOffset += rowHeight; } @@ -110,6 +118,22 @@ public class OverlayScreen extends Screen { context.drawText(textRenderer, Text.translatable("text.autoconfig.skyblocker.option.general.searchOverlay.historyLabel") , historyButtons[0].getX()+2, historyButtons[0].getY() - 10, 0xFFFFFFFF, true); } + //draw item stacks to buttons + for (int i = 0; i < suggestionButtons.length; i++) { + String id = SearchOverManager.getSuggestionId(i); + if (id.isEmpty()) continue; + ItemStack item = getItemStack(id); + if (item == null) continue; + context.drawItem(item,suggestionButtons[i].getX() + 2,suggestionButtons[i].getY() + 2); + } + for (int i = 0; i < historyButtons.length; i++) { + String id = SearchOverManager.getHistoryId(i); + if (id != null && id.isEmpty()) continue; + ItemStack item = getItemStack(id); + if (item == null) continue; + context.drawItem(item,historyButtons[i].getX() + 2,historyButtons[i].getY() + 2); + } + } /** diff --git a/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/SearchOverManager.java b/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/SearchOverManager.java index e4f77f9a..682d514e 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/SearchOverManager.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/SearchOverManager.java @@ -54,6 +54,8 @@ public class SearchOverManager { public static Map itemNameLookup = new HashMap<>(); public static HashSet bazaarItems =new HashSet<>(); public static HashSet auctionItems =new HashSet<>(); + public static HashMap namesToId =new HashMap<>(); + public static String[] suggestionsArray = {}; @@ -88,22 +90,27 @@ public class SearchOverManager { Matcher matcher = BAZAAR_ENCHANTMENT_PATTERN.matcher(id); if (matcher.matches()) {//format enchantments //remove ultimate if in name - String name = matcher.group(1).replace("ULTIMATE_",""); + String name = matcher.group(1).replace("ULTIMATE_", ""); name = name.replace("_", " "); name = capitalizeFully(name); int enchantLevel = Integer.parseInt(matcher.group(2)); String level = ""; - if (enchantLevel > 0){ - level = ROMAN_NUMERALS[enchantLevel-1]; - } - bazaarItems.add(name + " " + level); - }else{//look up id for name - String name = itemNameLookup.get(product.get("product_id").getAsString()); - if (name != null){ - name = trimItemColor(name); - bazaarItems.add(name); + if (enchantLevel > 0) { + level = ROMAN_NUMERALS[enchantLevel - 1]; } + bazaarItems.add(name + " " + level); + namesToId.put(name + " " + level, "ENCHANTED_BOOK"); + continue; + } + //look up id for name + String name = itemNameLookup.get(product.get("product_id").getAsString()); + if (name != null){ + name = trimItemColor(name); + bazaarItems.add(name); + namesToId.put(name, id); + continue; } + } } @@ -122,6 +129,7 @@ public class SearchOverManager { String name = matcher.group(1).replace("_", " "); name = capitalizeFully(name); auctionItems.add(name); + namesToId.put(name, id); continue; } //something else look up in NEU repo. @@ -130,6 +138,8 @@ public class SearchOverManager { if (item != null){ String name = trimItemColor(item.getDisplayName()); auctionItems.add(name); + namesToId.put(name, id); + continue; } } @@ -217,6 +227,13 @@ public class SearchOverManager { return ""; } } + protected static String getSuggestionId(int index){ + if (suggestionsArray.length> index && suggestionsArray[index] != null ){ + return namesToId.get(suggestionsArray[index]); + }else{//there are no suggestions yet + return ""; + } + } /** * Gets the item name in the history array at the index * @param index index of suggestion @@ -235,6 +252,21 @@ public class SearchOverManager { return null; } + protected static String getHistoryId(int index){ + if (IsAuction){ + if (SkyblockerConfigManager.get().general.searchOverlay.auctionHistory.size() >index){ + return namesToId.get(capitalizeFully(SkyblockerConfigManager.get().general.searchOverlay.auctionHistory.get(index))); + } + + }else{ + if (SkyblockerConfigManager.get().general.searchOverlay.bazaarHistory.size() >index){ + return namesToId.get(capitalizeFully(SkyblockerConfigManager.get().general.searchOverlay.bazaarHistory.get(index))); + } + } + return null; + } + + /** * Add the current search value to the start of the history list and truncate to the max history value and save this to the config */ -- cgit