aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java
diff options
context:
space:
mode:
authorBuildTools <james.jenour@protonmail.com>2021-02-16 03:08:30 +0800
committerBuildTools <james.jenour@protonmail.com>2021-02-16 03:08:30 +0800
commita0e7d174472d034142003e58a42d6beefe36a92b (patch)
tree37fbdf5c5c3af3e85ed05e6e17d64207b2a6d8c9 /src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java
parent6024bdf69193ad216e95fca53d7d28746f4269e0 (diff)
downloadnotenoughupdates-a0e7d174472d034142003e58a42d6beefe36a92b.tar.gz
notenoughupdates-a0e7d174472d034142003e58a42d6beefe36a92b.tar.bz2
notenoughupdates-a0e7d174472d034142003e58a42d6beefe36a92b.zip
PRE21
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java')
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java28
1 files changed, 14 insertions, 14 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java
index 7a43235a..a87d266a 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java
@@ -99,7 +99,7 @@ public class NEUOverlay extends Gui {
private InfoPane activeInfoPane = null;
private TreeSet<JsonObject> searchedItems = null;
- private JsonObject[] searchedItemsArr = null;
+ private final List<JsonObject> searchedItemsArr = new ArrayList<>();
private HashMap<String, List<String>> searchedItemsSubgroup = new HashMap<>();
@@ -1227,7 +1227,9 @@ public class NEUOverlay extends Gui {
this.searchedItems = searchedItems;
this.searchedItemsSubgroup = searchedItemsSubgroup;
- this.searchedItemsArr = null;
+ synchronized(this.searchedItemsArr) {
+ this.searchedItemsArr.clear();
+ }
redrawItems = true;
});
@@ -1237,18 +1239,15 @@ public class NEUOverlay extends Gui {
* Returns an index-able array containing the elements in searchedItems.
* Whenever searchedItems is updated in updateSearch(), the array is recreated here.
*/
- public JsonObject[] getSearchedItems() {
+ public List<JsonObject> getSearchedItems() {
if(searchedItems == null) {
updateSearch();
- return new JsonObject[0];
+ return new ArrayList<>();
}
- if(searchedItemsArr==null) {
- searchedItemsArr = new JsonObject[searchedItems.size()];
- int i=0;
- for(JsonObject item : searchedItems) {
- searchedItemsArr[i] = item;
- i++;
+ if(searchedItems.size() > 0 && searchedItemsArr.size() == 0) {
+ synchronized(searchedItemsArr) {
+ searchedItemsArr.addAll(searchedItems);
}
}
return searchedItemsArr;
@@ -1261,8 +1260,9 @@ public class NEUOverlay extends Gui {
public JsonObject getSearchedItemPage(int index) {
if(index < getSlotsXSize()*getSlotsYSize()) {
int actualIndex = index + getSlotsXSize()*getSlotsYSize()*page;
- if(actualIndex < getSearchedItems().length) {
- return getSearchedItems()[actualIndex];
+ List<JsonObject> searchedItems = getSearchedItems();
+ if(actualIndex < searchedItems.size()) {
+ return searchedItems.get(actualIndex);
} else {
return null;
}
@@ -1352,8 +1352,8 @@ public class NEUOverlay extends Gui {
}
public int getMaxPages() {
- if(getSearchedItems().length == 0) return 1;
- return (int)Math.ceil(getSearchedItems().length/(float)getSlotsYSize()/getSlotsXSize());
+ if(getSearchedItems().size() == 0) return 1;
+ return (int)Math.ceil(getSearchedItems().size()/(float)getSlotsYSize()/getSlotsXSize());
}
public int getSearchBarYSize() {