aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2022-08-15 22:51:56 +0800
committershedaniel <daniel@shedaniel.me>2022-08-15 22:51:56 +0800
commit685861c91bbb8a8a882da51381d392f1310d061d (patch)
tree302edee72e12554cca794719eedac748840b3688
parent71a7e06e90d8f31ac8827d93590aa86bc2ff4523 (diff)
downloadRoughlyEnoughItems-685861c91bbb8a8a882da51381d392f1310d061d.tar.gz
RoughlyEnoughItems-685861c91bbb8a8a882da51381d392f1310d061d.tar.bz2
RoughlyEnoughItems-685861c91bbb8a8a882da51381d392f1310d061d.zip
Fix #1070
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/CollapsingEntryListWidget.java6
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListWidget.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/PaginatedEntryListWidget.java7
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/ScrolledEntryListWidget.java7
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/search/OverlaySearchField.java4
5 files changed, 18 insertions, 8 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/CollapsingEntryListWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/CollapsingEntryListWidget.java
index af0fb2900..fe2d8b7e8 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/CollapsingEntryListWidget.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/CollapsingEntryListWidget.java
@@ -48,8 +48,8 @@ public abstract class CollapsingEntryListWidget extends EntryListWidget {
}
@Override
- public List</*EntryStack<?> | CollapsedStack*/ Object> getCollapsedStacks() {
- return collapsedStacks;
+ public boolean isEmpty() {
+ return collapsedStacks.isEmpty();
}
@Override
@@ -97,7 +97,7 @@ public abstract class CollapsingEntryListWidget extends EntryListWidget {
if (collapsedStack != null) {
collapsedStackIndexed.put(index, collapsedStack);
-
+
if (collapsedStack.isExpanded()) {
int size = collapsedStack.getIngredient().size();
for (int i = 1; i < size; i++) {
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListWidget.java
index 3b6359d53..30aa0de60 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListWidget.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListWidget.java
@@ -273,7 +273,7 @@ public abstract class EntryListWidget extends WidgetWithBounds implements Overla
protected abstract void updateEntries(int entrySize, boolean zoomed);
- public abstract List</*EntryStack<?> | CollapsedStack*/ Object> getCollapsedStacks();
+ public abstract boolean isEmpty();
protected abstract void setCollapsedStacks(List</*EntryStack<?> | CollapsedStack*/ Object> stacks);
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/PaginatedEntryListWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/PaginatedEntryListWidget.java
index d239a772d..fb7c864c5 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/PaginatedEntryListWidget.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/PaginatedEntryListWidget.java
@@ -151,7 +151,12 @@ public class PaginatedEntryListWidget extends CollapsingEntryListWidget {
entry.entries((List<EntryStack<?>>) stack);
}
- entry.collapsed(indexedCollapsedStack.get(i + skip));
+ CollapsedStack collapsedStack = indexedCollapsedStack.get(i + skip);
+ if (collapsedStack != null && collapsedStack.getIngredient().size() > 1) {
+ entry.collapsed(collapsedStack);
+ } else {
+ entry.collapsed(null);
+ }
}
this.entries = entries;
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/ScrolledEntryListWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/ScrolledEntryListWidget.java
index 2fa942752..fda8ec704 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/ScrolledEntryListWidget.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/ScrolledEntryListWidget.java
@@ -96,7 +96,12 @@ public class ScrolledEntryListWidget extends CollapsingEntryListWidget {
}
}
- entry.collapsed(indexedCollapsedStack.get(i - 1));
+ CollapsedStack collapsedStack = indexedCollapsedStack.get(i - 1);
+ if (collapsedStack != null && collapsedStack.getIngredient().size() > 1) {
+ entry.collapsed(collapsedStack);
+ } else {
+ entry.collapsed(null);
+ }
} else {
blockedCount++;
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/search/OverlaySearchField.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/search/OverlaySearchField.java
index c6dd42ef0..4168b1916 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/search/OverlaySearchField.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/search/OverlaySearchField.java
@@ -97,7 +97,7 @@ public class OverlaySearchField extends TextFieldWidget implements TextFieldWidg
return TextTransformations.forwardWithTransformation(text, (s, charIndex, c) -> {
byte arg = highlighter.highlighted[charIndex + index];
Style style = Style.EMPTY;
- if (isMain && ScreenOverlayImpl.getEntryListWidget().getCollapsedStacks().isEmpty() && !getText().isEmpty()) {
+ if (isMain && ScreenOverlayImpl.getEntryListWidget().isEmpty() && !getText().isEmpty()) {
style = ERROR_STYLE;
}
if (arg > 0) {
@@ -273,7 +273,7 @@ public class OverlaySearchField extends TextFieldWidget implements TextFieldWidg
int borderColor;
if (isMain && isHighlighting) {
borderColor = 0xfff2ff0c;
- } else if (isMain && ScreenOverlayImpl.getEntryListWidget().getCollapsedStacks().isEmpty() && !getText().isEmpty()) {
+ } else if (isMain && ScreenOverlayImpl.getEntryListWidget().isEmpty() && !getText().isEmpty()) {
borderColor = 0xffff5555;
} else {
super.renderBorder(matrices);