From 47896cdd0e1d440ca85aef3cc8f24b229a18c949 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Mon, 15 Aug 2022 22:51:56 +0800 Subject: Fix #1070 --- .../client/gui/widget/entrylist/CollapsingEntryListWidget.java | 6 +++--- .../rei/impl/client/gui/widget/entrylist/EntryListWidget.java | 2 +- .../impl/client/gui/widget/entrylist/PaginatedEntryListWidget.java | 7 ++++++- .../impl/client/gui/widget/entrylist/ScrolledEntryListWidget.java | 7 ++++++- .../rei/impl/client/gui/widget/search/OverlaySearchField.java | 4 ++-- 5 files changed, 18 insertions(+), 8 deletions(-) (limited to 'runtime/src') 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 | 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 bb6eeecf3..4095aa4b4 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 @@ -272,7 +272,7 @@ public abstract class EntryListWidget extends WidgetWithBounds implements Overla protected abstract void updateEntries(int entrySize, boolean zoomed); - public abstract List | CollapsedStack*/ Object> getCollapsedStacks(); + public abstract boolean isEmpty(); protected abstract void setCollapsedStacks(List | 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 2a0de75b0..9596370d3 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 @@ -149,7 +149,12 @@ public class PaginatedEntryListWidget extends CollapsingEntryListWidget { entry.entries((List>) 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 8420a2e11..70dbfd321 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) { @@ -272,7 +272,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); -- cgit