aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/OverlayScreen.java39
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/SearchOverManager.java45
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