diff options
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/OverlayScreen.java | 39 | ||||
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/SearchOverManager.java | 45 |
2 files changed, 37 insertions, 47 deletions
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 6760f20d..45ec2781 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/OverlayScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/OverlayScreen.java @@ -23,14 +23,13 @@ import static de.hysky.skyblocker.skyblock.itemlist.ItemRepository.getItemStack; public class OverlayScreen extends Screen { protected static final Identifier SEARCH_ICON_TEXTURE = new Identifier("icon/search"); + private static final int rowHeight = 20; private TextFieldWidget searchField; private ButtonWidget finishedButton; private ButtonWidget[] suggestionButtons; private ButtonWidget[] historyButtons; - - public OverlayScreen(Text title) { super(title); } @@ -41,25 +40,23 @@ public class OverlayScreen extends Screen { @Override protected void init() { super.init(); - int rowHeight = 20; 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); + int startY = (int) ((int)(this.height * 0.5)- (rowHeight * (1+ SkyblockerConfigManager.get().general.searchOverlay.maxSuggestions + 0.75 + SkyblockerConfigManager.get().general.searchOverlay.historyLength)) / 2); // Search field - this.searchField = new TextFieldWidget(textRenderer, startX, startY, rowWidth - rowHeight, rowHeight, Text.literal("Search...")); + this.searchField = new TextFieldWidget(textRenderer,startX, startY, rowWidth - rowHeight, rowHeight, Text.literal("Search...")); searchField.setText(SearchOverManager.search); searchField.setChangedListener(SearchOverManager::updateSearch); searchField.setMaxLength(30); - // finish buttons finishedButton = ButtonWidget.builder(Text.literal("").setStyle(Style.EMPTY.withColor(Formatting.GREEN)), (a) -> { close(); }) .position(startX + rowWidth - rowHeight, startY) .size(rowHeight, rowHeight).build(); + // suggested item buttons int rowOffset = rowHeight; int totalSuggestions = SkyblockerConfigManager.get().general.searchOverlay.maxSuggestions; @@ -69,9 +66,8 @@ public class OverlayScreen extends Screen { SearchOverManager.updateSearch(a.getMessage().getString()); close(); }) - .position(startX , startY + rowOffset) + .position(startX, startY + rowOffset) .size(rowWidth, rowHeight).build(); - suggestionButtons[i].visible = false; rowOffset += rowHeight; } @@ -81,12 +77,12 @@ public class OverlayScreen extends Screen { this.historyButtons = new ButtonWidget[historyLength]; for (int i = 0; i < historyLength; i++) { String text = SearchOverManager.getHistory(i); - if (text != null){ + if (text != null) { historyButtons[i] = ButtonWidget.builder(Text.literal(text).setStyle(Style.EMPTY), (a) -> { SearchOverManager.updateSearch(a.getMessage().getString()); close(); }) - .position(startX , startY + rowOffset) + .position(startX, startY + rowOffset) .size(rowWidth, rowHeight).build(); rowOffset += rowHeight; }else{ @@ -94,6 +90,7 @@ public class OverlayScreen extends Screen { } } + //add drawables in order to make tab navigation sensible addDrawableChild(searchField); for (ButtonWidget suggestion : suggestionButtons){ addDrawableChild(suggestion); @@ -105,35 +102,38 @@ public class OverlayScreen extends Screen { } addDrawableChild(finishedButton); + //focus the search box this.setInitialFocus(searchField); } + /** - * Renders the search icon and the label for the history + * Renders the search icon, label for the history and item Stacks for item names */ @Override public void render(DrawContext context, int mouseX, int mouseY, float delta) { super.render(context, mouseX, mouseY, delta); - context.drawGuiTexture(SEARCH_ICON_TEXTURE, finishedButton.getX() + 2, finishedButton.getY() + 2, 16, 16); //todo rowHeight -4 + int renderOffset = (rowHeight - 16) / 2; + context.drawGuiTexture(SEARCH_ICON_TEXTURE, finishedButton.getX() + renderOffset, finishedButton.getY() + renderOffset, 16, 16); if(historyButtons.length > 0 && historyButtons[0] != null){ context.drawText(textRenderer, Text.translatable("text.autoconfig.skyblocker.option.general.searchOverlay.historyLabel") - , historyButtons[0].getX()+2, historyButtons[0].getY() - 10, 0xFFFFFFFF, true); + , historyButtons[0].getX() + renderOffset, historyButtons[0].getY() - (rowHeight / 2), 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); + context.drawItem(item,suggestionButtons[i].getX() + renderOffset,suggestionButtons[i].getY() + renderOffset); } for (int i = 0; i < historyButtons.length; i++) { String id = SearchOverManager.getHistoryId(i); - if (id != null && id.isEmpty()) continue; + 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); + context.drawItem(item,historyButtons[i].getX() + renderOffset,historyButtons[i].getY() + renderOffset); } - } /** @@ -162,7 +162,6 @@ public class OverlayScreen extends Screen { }else{ suggestionButtons[i].visible = false; } - } } @@ -173,12 +172,10 @@ public class OverlayScreen extends Screen { @Override public boolean keyPressed(int keyCode, int scanCode, int modifiers) { super.keyPressed(keyCode,scanCode,modifiers); - // if (keyCode == GLFW.GLFW_KEY_ENTER && searchField.isActive()){ close(); return true; } return false; } - } 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 682d514e..84bcada9 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/SearchOverManager.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/SearchOverManager.java @@ -43,19 +43,16 @@ public class SearchOverManager { "XII", "XIII", "XIV", "XV", "XVI", "XVII","XVIII", "XIX", "XX" }; - public static boolean visible = false; - public static String search = ""; private static @Nullable SignBlockEntity Sign = null; private static boolean SignFront = true; - private static boolean IsAuction; + protected static String search = ""; - public static Map<String,String> itemNameLookup = new HashMap<>(); - public static HashSet<String> bazaarItems =new HashSet<>(); - public static HashSet<String> auctionItems =new HashSet<>(); - public static HashMap<String,String> namesToId =new HashMap<>(); - + private static final Map<String,String> itemNameLookup = new HashMap<>(); + private static final HashSet<String> bazaarItems =new HashSet<>(); + private static final HashSet<String> auctionItems =new HashSet<>(); + private static final HashMap<String,String> namesToId =new HashMap<>(); public static String[] suggestionsArray = {}; @@ -74,7 +71,6 @@ public class SearchOverManager { String itemName = item.get("name").getAsString(); itemNameLookup.put(itemId,itemName); } - } } catch (Exception e) { //can not get items skyblock items @@ -110,7 +106,6 @@ public class SearchOverManager { namesToId.put(name, id); continue; } - } } @@ -141,13 +136,10 @@ public class SearchOverManager { namesToId.put(name, id); continue; } - } - } catch (Exception e) { //can not find ah todo logger - System.out.println(e); } } @@ -179,7 +171,6 @@ public class SearchOverManager { * @param isAuction if the sign is loaded from the auction house menu or bazaar */ public static void updateSign(SignBlockEntity sign, boolean front, boolean isAuction) { - visible= true; SignFront = front; Sign = sign; IsAuction = isAuction; @@ -199,6 +190,7 @@ public class SearchOverManager { suggestionsArray = new String[]{}; } + /** * Updates the search value and the suggestions based on that value. * @param newValue new search value @@ -221,19 +213,20 @@ public class SearchOverManager { * @param index index of suggestion */ protected static String getSuggestion(int index){ - if (suggestionsArray.length> index && suggestionsArray[index] != null ){ + if (suggestionsArray.length> index && suggestionsArray[index] != null){ return suggestionsArray[index]; }else{//there are no suggestions yet return ""; } } protected static String getSuggestionId(int index){ - if (suggestionsArray.length> index && suggestionsArray[index] != null ){ + 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 @@ -254,12 +247,12 @@ public class SearchOverManager { protected static String getHistoryId(int index){ if (IsAuction){ - if (SkyblockerConfigManager.get().general.searchOverlay.auctionHistory.size() >index){ + 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){ + if (SkyblockerConfigManager.get().general.searchOverlay.bazaarHistory.size() > index){ return namesToId.get(capitalizeFully(SkyblockerConfigManager.get().general.searchOverlay.bazaarHistory.get(index))); } } @@ -274,13 +267,13 @@ public class SearchOverManager { //save to history int historyLength = SkyblockerConfigManager.get().general.searchOverlay.historyLength; if (IsAuction){ - SkyblockerConfigManager.get().general.searchOverlay.auctionHistory.add(0,search); - if (SkyblockerConfigManager.get().general.searchOverlay.auctionHistory.size() >historyLength) { + SkyblockerConfigManager.get().general.searchOverlay.auctionHistory.add(0, search); + if (SkyblockerConfigManager.get().general.searchOverlay.auctionHistory.size() > historyLength) { SkyblockerConfigManager.get().general.searchOverlay.auctionHistory = SkyblockerConfigManager.get().general.searchOverlay.auctionHistory.subList(0, historyLength); } }else{ - SkyblockerConfigManager.get().general.searchOverlay.bazaarHistory.add(0,search); - if (SkyblockerConfigManager.get().general.searchOverlay.bazaarHistory.size() >historyLength) { + SkyblockerConfigManager.get().general.searchOverlay.bazaarHistory.add(0, search); + if (SkyblockerConfigManager.get().general.searchOverlay.bazaarHistory.size() > historyLength) { SkyblockerConfigManager.get().general.searchOverlay.bazaarHistory = SkyblockerConfigManager.get().general.searchOverlay.bazaarHistory.subList(0, historyLength); } } @@ -298,24 +291,24 @@ public class SearchOverManager { //splits text into 2 lines max = 30 chars StringBuilder line0 = new StringBuilder(); String line1; - if (search.length() <= 15){ + if (search.length() <= 15) { line0 = new StringBuilder(search); line1 = ""; }else { String[] words = search.split(" "); - for (String word : words){ + for (String word : words) { if (line0.isEmpty()) { line0 = new StringBuilder(word); continue; } - if (line0.length() + word.length() < 14 ){ //max 15 but including space is 14 + if (line0.length() + word.length() < 14) { //max 15 but including space is 14 line0.append(" ").append(word); } else { break; } } - line1 = search.substring(line0.length(),Math.min(search.length(),30)); + line1 = search.substring(line0.length(), Math.min(search.length(), 30)); } // send packet to update sign |