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 --- src/main/java/me/shedaniel/rei/client/ScreenHelper.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/main/java/me/shedaniel/rei/client/ScreenHelper.java') diff --git a/src/main/java/me/shedaniel/rei/client/ScreenHelper.java b/src/main/java/me/shedaniel/rei/client/ScreenHelper.java index 7c8085c1b..15ba7f335 100644 --- a/src/main/java/me/shedaniel/rei/client/ScreenHelper.java +++ b/src/main/java/me/shedaniel/rei/client/ScreenHelper.java @@ -18,8 +18,8 @@ import net.minecraft.client.util.Window; import net.minecraft.item.ItemStack; import org.apache.logging.log4j.util.TriConsumer; -import java.awt.*; import java.util.List; +import java.util.Optional; public class ScreenHelper implements ClientModInitializer { @@ -37,6 +37,10 @@ public class ScreenHelper implements ClientModInitializer { overlayVisible = !overlayVisible; } + public static Optional getOptionalOverlay() { + return Optional.ofNullable(overlay); + } + public static ContainerScreenOverlay getLastOverlay(boolean reset, boolean setPage) { if (overlay == null || reset) { overlay = new ContainerScreenOverlay(); @@ -63,13 +67,13 @@ public class ScreenHelper implements ClientModInitializer { public static void drawHoveringWidget(int x, int y, TriConsumer consumer, int width, int height, float delta) { Window window = MinecraftClient.getInstance().window; - drawHoveringWidget(new Dimension(window.getScaledWidth(), window.getScaledHeight()), x, y, consumer, width, height, delta); + drawHoveringWidget(window.getScaledWidth(), window.getScaledHeight(), x, y, consumer, width, height, delta); } - public static void drawHoveringWidget(Dimension dimension, int x, int y, TriConsumer consumer, int width, int height, float delta) { + public static void drawHoveringWidget(int screenWidth, int screenHeight, int x, int y, TriConsumer consumer, int width, int height, float delta) { int actualX = Math.max(x + 12, 6); - int actualY = Math.min(y - height / 2, dimension.height - height - 6); - if (actualX + width > dimension.width) + int actualY = Math.min(y - height / 2, screenHeight - height - 6); + if (actualX + width > screenWidth) actualX -= 24 + width; if (actualY < 6) actualY += 24; -- cgit