aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-06-18 16:38:49 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-06-18 16:38:49 +0800
commit4d0b2d3f50bf56b83498a3b787ac08afaeb85eff (patch)
tree77c206a271fb6f5b6ae1dbe3d24d794420cf1841 /src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
parent69a531030df74768d86025cd5668e0418a3c1f07 (diff)
downloadRoughlyEnoughItems-4d0b2d3f50bf56b83498a3b787ac08afaeb85eff.tar.gz
RoughlyEnoughItems-4d0b2d3f50bf56b83498a3b787ac08afaeb85eff.tar.bz2
RoughlyEnoughItems-4d0b2d3f50bf56b83498a3b787ac08afaeb85eff.zip
up to 4x faster search
Diffstat (limited to 'src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java')
-rw-r--r--src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java12
1 files changed, 7 insertions, 5 deletions
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<Widget> 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<ItemStack> 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();