diff options
| author | Alex <8379108+Alex33856@users.noreply.github.com> | 2025-06-22 01:10:56 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-22 01:10:56 -0400 |
| commit | 8d5db82f3d3a706516903127bbf5ba20385ab28b (patch) | |
| tree | 0db54c5df5bd2a403ecf9b24c721f576d7349de3 /src/main/java | |
| parent | 33c3fb4489ce505cda0830b35e268b3967b77013 (diff) | |
| download | Skyblocker-8d5db82f3d3a706516903127bbf5ba20385ab28b.tar.gz Skyblocker-8d5db82f3d3a706516903127bbf5ba20385ab28b.tar.bz2 Skyblocker-8d5db82f3d3a706516903127bbf5ba20385ab28b.zip | |
Add REI exclusion zone for Visitor Helper Gui (#1371)
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/de/hysky/skyblocker/compatibility/rei/SkyblockerREIClientPlugin.java | 7 | ||||
| -rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/garden/visitor/VisitorHelper.java | 12 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/compatibility/rei/SkyblockerREIClientPlugin.java b/src/main/java/de/hysky/skyblocker/compatibility/rei/SkyblockerREIClientPlugin.java index dccc3b78..7b1f7148 100644 --- a/src/main/java/de/hysky/skyblocker/compatibility/rei/SkyblockerREIClientPlugin.java +++ b/src/main/java/de/hysky/skyblocker/compatibility/rei/SkyblockerREIClientPlugin.java @@ -3,6 +3,7 @@ package de.hysky.skyblocker.compatibility.rei; import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.mixins.accessors.HandledScreenAccessor; +import de.hysky.skyblocker.skyblock.garden.visitor.VisitorHelper; import de.hysky.skyblocker.skyblock.itemlist.ItemRepository; import de.hysky.skyblocker.utils.Location; import de.hysky.skyblocker.utils.Utils; @@ -14,6 +15,7 @@ import me.shedaniel.rei.api.client.registry.entry.EntryRegistry; import me.shedaniel.rei.api.client.registry.screen.ExclusionZones; import me.shedaniel.rei.api.common.category.CategoryIdentifier; import me.shedaniel.rei.api.common.util.EntryStacks; +import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.InventoryScreen; import net.minecraft.item.Items; @@ -48,5 +50,10 @@ public class SkyblockerREIClientPlugin implements REIClientPlugin { HandledScreenAccessor accessor = (HandledScreenAccessor) screen; return List.of(new Rectangle(accessor.getX() + accessor.getBackgroundWidth() + 4, accessor.getY(), 104, 127)); }); + + zones.register(Screen.class, screen -> { + if (!VisitorHelper.shouldRender()) return List.of(); + return VisitorHelper.getExclusionZones(); + }); } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/garden/visitor/VisitorHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/garden/visitor/VisitorHelper.java index 1ffdf448..49085eb1 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/garden/visitor/VisitorHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/garden/visitor/VisitorHelper.java @@ -14,6 +14,7 @@ import it.unimi.dsi.fastutil.objects.Object2IntMap; import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; import it.unimi.dsi.fastutil.objects.Object2LongMap; import it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap; +import me.shedaniel.math.Rectangle; import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; @@ -63,6 +64,17 @@ public class VisitorHelper { return isHelperEnabled && (!isGardenMode || Utils.isInGarden() || Utils.getIslandArea().contains("Bazaar")); } + public static List<Rectangle> getExclusionZones() { + if (activeVisitors.isEmpty()) return List.of(); + + int maxXPosition = X_OFFSET + 215; + int textFontHeight = MinecraftClient.getInstance().textRenderer.fontHeight; + int count = groupedItems.size() + activeVisitors.size(); + int maxYPosition = Y_OFFSET + count * (LINE_HEIGHT + textFontHeight); + + return List.of(new Rectangle(X_OFFSET, Y_OFFSET, maxXPosition, maxYPosition)); + } + /** * Updates the current visitors and their required items. */ |
