aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/main/java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2022-11-12 14:34:09 +0800
committershedaniel <daniel@shedaniel.me>2023-05-29 21:19:41 +0800
commit20b87ef1fa159ff4166dfeb2eae857af3532feb0 (patch)
tree6aa278f012f4329ef6502ccf2a87b7581af7900b /runtime/src/main/java
parentde4df53457cd010003ff5ccb672d981d328d2895 (diff)
downloadRoughlyEnoughItems-20b87ef1fa159ff4166dfeb2eae857af3532feb0.tar.gz
RoughlyEnoughItems-20b87ef1fa159ff4166dfeb2eae857af3532feb0.tar.bz2
RoughlyEnoughItems-20b87ef1fa159ff4166dfeb2eae857af3532feb0.zip
Fix buttons not respecting exclusion zones
Diffstat (limited to 'runtime/src/main/java')
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/ScreenOverlayImpl.java16
1 files changed, 12 insertions, 4 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/ScreenOverlayImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/ScreenOverlayImpl.java
index 70ae68d59..e056f774c 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/ScreenOverlayImpl.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/ScreenOverlayImpl.java
@@ -60,13 +60,11 @@ import me.shedaniel.rei.impl.client.gui.widget.entrylist.PaginatedEntryListWidge
import me.shedaniel.rei.impl.client.gui.widget.entrylist.ScrolledEntryListWidget;
import me.shedaniel.rei.impl.client.gui.widget.favorites.FavoritesListWidget;
import me.shedaniel.rei.impl.client.gui.widget.search.OverlaySearchField;
+import me.shedaniel.rei.impl.common.util.RectangleUtils;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.components.events.GuiEventListener;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.network.chat.Component;
-import net.minecraft.network.chat.TextComponent;
-import net.minecraft.network.chat.TranslatableComponent;
-import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.InteractionResult;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
@@ -278,7 +276,17 @@ public abstract class ScreenOverlayImpl extends ScreenOverlay {
bounds.width = maxWidth;
}
- return bounds;
+ return avoidButtons(bounds);
+ }
+
+ private static Rectangle avoidButtons(Rectangle bounds) {
+ int buttonsHeight = 2;
+ if (REIRuntime.getInstance().getContextualSearchFieldLocation() == SearchFieldLocation.TOP_SIDE) buttonsHeight += 24;
+ if (!ConfigObject.getInstance().isEntryListWidgetScrolled()) buttonsHeight += 22;
+ Rectangle area = REIRuntime.getInstance().calculateEntryListArea(bounds).clone();
+ area.height = buttonsHeight;
+ return RectangleUtils.excludeZones(bounds, ScreenRegistry.getInstance().exclusionZones().getExclusionZones(Minecraft.getInstance().screen).stream()
+ .filter(zone -> zone.intersects(area)));
}
public void lateRender(PoseStack matrices, int mouseX, int mouseY, float delta) {