From 49ae61c2165eb478f7a56e387115344c9aac0578 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 6 Aug 2019 09:14:27 +0800 Subject: 3x Faster Method in calculating same content list --- .../java/me/shedaniel/rei/gui/ContainerScreenOverlay.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java index 33daab37d..edc1dbbc6 100644 --- a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java +++ b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java @@ -355,8 +355,8 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra shouldReInit = true; if (shouldReInit) init(true); - else if (RoughlyEnoughItemsCore.getConfigManager().isCraftableOnlyEnabled() && (!hasSameListContent(new LinkedList<>(ScreenHelper.inventoryStacks), currentStacks) || (currentStacks.size() != ScreenHelper.inventoryStacks.size()))) { - ScreenHelper.inventoryStacks = ClientHelper.getInstance().getInventoryItemsTypes(); + else if (RoughlyEnoughItemsCore.getConfigManager().isCraftableOnlyEnabled() && ((currentStacks.size() != ScreenHelper.inventoryStacks.size()) || !hasSameListContent(new LinkedList<>(ScreenHelper.inventoryStacks), currentStacks))) { + ScreenHelper.inventoryStacks = currentStacks; DisplayHelper.DisplayBoundsHandler boundsHandler = RoughlyEnoughItemsCore.getDisplayHelper().getResponsibleBoundsHandler(MinecraftClient.getInstance().currentScreen.getClass()); itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm, true); } @@ -440,10 +440,9 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra } private boolean hasSameListContent(List list1, List list2) { - list1.sort((itemStack, t1) -> ItemListOverlay.tryGetItemStackName(itemStack).compareToIgnoreCase(ItemListOverlay.tryGetItemStackName(t1))); - list2.sort((itemStack, t1) -> ItemListOverlay.tryGetItemStackName(itemStack).compareToIgnoreCase(ItemListOverlay.tryGetItemStackName(t1))); - - return list1.stream().map(ItemListOverlay::tryGetItemStackName).collect(Collectors.joining("")).equals(list2.stream().map(ItemListOverlay::tryGetItemStackName).collect(Collectors.joining(""))); + list1.sort(Comparator.comparing(Object::toString)); + list2.sort(Comparator.comparing(Object::toString)); + return list1.stream().map(Objects::toString).collect(Collectors.joining("")).equals(list2.stream().map(Objects::toString).collect(Collectors.joining(""))); } public void addTooltip(QueuedTooltip queuedTooltip) { -- cgit