aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorAlex <8379108+Alex33856@users.noreply.github.com>2025-06-22 01:10:56 -0400
committerGitHub <noreply@github.com>2025-06-22 01:10:56 -0400
commit8d5db82f3d3a706516903127bbf5ba20385ab28b (patch)
tree0db54c5df5bd2a403ecf9b24c721f576d7349de3 /src/main/java
parent33c3fb4489ce505cda0830b35e268b3967b77013 (diff)
downloadSkyblocker-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.java7
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/garden/visitor/VisitorHelper.java12
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.
*/