From 4d0b2d3f50bf56b83498a3b787ac08afaeb85eff Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 18 Jun 2019 16:38:49 +0800 Subject: up to 4x faster search --- .../java/me/shedaniel/rei/gui/ContainerScreenOverlay.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java') diff --git a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java index 727a5307a..e9de741f3 100644 --- a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java +++ b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java @@ -37,10 +37,8 @@ import net.minecraft.util.math.MathHelper; import net.minecraft.world.GameMode; import java.awt.*; -import java.util.LinkedList; import java.util.List; -import java.util.Objects; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; public class ContainerScreenOverlay extends AbstractParentElement implements Drawable { @@ -51,6 +49,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra private static int page = 0; private static ItemListOverlay itemListOverlay; private final List widgets = Lists.newLinkedList(); + public boolean shouldReInit = false; private Rectangle rectangle; private Window window; private CraftableToggleButtonWidget toggleButtonWidget; @@ -65,6 +64,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra } public void init(boolean setPage) { + this.shouldReInit = false; //Update Variables this.children().clear(); this.window = MinecraftClient.getInstance().window; @@ -183,12 +183,12 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra return false; } }); - int xxx = RoughlyEnoughItemsCore.getConfigManager().getConfig().mirrorItemPanel ? window.getScaledWidth() -30 : 10; + int xxx = RoughlyEnoughItemsCore.getConfigManager().getConfig().mirrorItemPanel ? window.getScaledWidth() - 30 : 10; for(Weather weather : Weather.values()) { widgets.add(new ButtonWidget(xxx, 35, 20, 20, "") { @Override public void onPressed() { - MinecraftClient.getInstance().player.sendChatMessage(RoughlyEnoughItemsCore.getConfigManager().getConfig().weatherCommand.replaceAll("\\{weather}", weather.name().toLowerCase())); + MinecraftClient.getInstance().player.sendChatMessage(RoughlyEnoughItemsCore.getConfigManager().getConfig().weatherCommand.replaceAll("\\{weather}", weather.name().toLowerCase(Locale.ROOT))); } @Override @@ -346,6 +346,8 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra public void render(int mouseX, int mouseY, float delta) { List currentStacks = ClientHelper.getInstance().getInventoryItemsTypes(); if (RoughlyEnoughItemsCore.getDisplayHelper().getBaseBoundsHandler() != null && RoughlyEnoughItemsCore.getDisplayHelper().getBaseBoundsHandler().shouldRecalculateArea(!RoughlyEnoughItemsCore.getConfigManager().getConfig().mirrorItemPanel, rectangle)) + 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(); -- cgit