diff options
| author | shedaniel <daniel@shedaniel.me> | 2022-11-12 14:34:09 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2023-05-29 21:19:41 +0800 |
| commit | 20b87ef1fa159ff4166dfeb2eae857af3532feb0 (patch) | |
| tree | 6aa278f012f4329ef6502ccf2a87b7581af7900b /runtime/src/main/java | |
| parent | de4df53457cd010003ff5ccb672d981d328d2895 (diff) | |
| download | RoughlyEnoughItems-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.java | 16 |
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) { |
