aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/client/BaseBoundsHandlerImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/shedaniel/rei/client/BaseBoundsHandlerImpl.java')
-rw-r--r--src/main/java/me/shedaniel/rei/client/BaseBoundsHandlerImpl.java29
1 files changed, 21 insertions, 8 deletions
diff --git a/src/main/java/me/shedaniel/rei/client/BaseBoundsHandlerImpl.java b/src/main/java/me/shedaniel/rei/client/BaseBoundsHandlerImpl.java
index 0567f6e16..9b64a5708 100644
--- a/src/main/java/me/shedaniel/rei/client/BaseBoundsHandlerImpl.java
+++ b/src/main/java/me/shedaniel/rei/client/BaseBoundsHandlerImpl.java
@@ -38,12 +38,12 @@ public class BaseBoundsHandlerImpl implements BaseBoundsHandler {
@Override
public Rectangle getLeftBounds(Screen screen) {
- return new Rectangle();
+ return DisplayHelper.DisplayBoundsHandler.EMPTY;
}
@Override
public Rectangle getRightBounds(Screen screen) {
- return new Rectangle();
+ return DisplayHelper.DisplayBoundsHandler.EMPTY;
}
@Override
@@ -52,20 +52,33 @@ public class BaseBoundsHandlerImpl implements BaseBoundsHandler {
}
@Override
+ public ActionResult isInZone(boolean isOnRightSide, double mouseX, double mouseY) {
+ for(Rectangle zone : getCurrentExclusionZones(MinecraftClient.getInstance().currentScreen.getClass(), isOnRightSide))
+ if (zone.contains(mouseX, mouseY))
+ return ActionResult.FAIL;
+ return ActionResult.PASS;
+ }
+
+ @Override
public boolean shouldRecalculateArea(boolean isOnRightSide, Rectangle rectangle) {
if (lastArea == null) {
- DisplayHelper.DisplayBoundsHandler handler = RoughlyEnoughItemsCore.getDisplayHelper().getResponsibleBoundsHandler(MinecraftClient.getInstance().currentScreen.getClass());
- lastArea = getStringFromAreas(isOnRightSide ? handler.getRightBounds(MinecraftClient.getInstance().currentScreen) : handler.getLeftBounds(MinecraftClient.getInstance().currentScreen), getCurrentExclusionZones(MinecraftClient.getInstance().currentScreen.getClass(), isOnRightSide));
+ lastArea = getStringFromCurrent(isOnRightSide);
return false;
}
- DisplayHelper.DisplayBoundsHandler handler = RoughlyEnoughItemsCore.getDisplayHelper().getResponsibleBoundsHandler(MinecraftClient.getInstance().currentScreen.getClass());
- String fromAreas = getStringFromAreas(isOnRightSide ? handler.getRightBounds(MinecraftClient.getInstance().currentScreen) : handler.getLeftBounds(MinecraftClient.getInstance().currentScreen), getCurrentExclusionZones(MinecraftClient.getInstance().currentScreen.getClass(), isOnRightSide));
- if (lastArea.contentEquals(fromAreas))
+ if (lastArea.contentEquals(getStringFromCurrent(isOnRightSide)))
return false;
- lastArea = fromAreas;
+ lastArea = getStringFromCurrent(isOnRightSide);
return true;
}
+ private DisplayHelper.DisplayBoundsHandler getHandler() {
+ return RoughlyEnoughItemsCore.getDisplayHelper().getResponsibleBoundsHandler(MinecraftClient.getInstance().currentScreen.getClass());
+ }
+
+ private String getStringFromCurrent(boolean isOnRightSide) {
+ return getStringFromAreas(isOnRightSide ? getHandler().getRightBounds(MinecraftClient.getInstance().currentScreen) : getHandler().getLeftBounds(MinecraftClient.getInstance().currentScreen), getCurrentExclusionZones(MinecraftClient.getInstance().currentScreen.getClass(), isOnRightSide));
+ }
+
@Override
public ActionResult canItemSlotWidgetFit(boolean isOnRightSide, int left, int top, Screen screen, Rectangle fullBounds) {
List<Rectangle> currentExclusionZones = getCurrentExclusionZones(MinecraftClient.getInstance().currentScreen.getClass(), isOnRightSide);