From 5357ec90f80768b69b197161e877e3ef884650a4 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 7 May 2019 18:30:54 +0800 Subject: 2.8.2 Build 104 Fixed #81 Close #82 Close #83 --- .../rei/client/BaseBoundsHandlerImpl.java | 29 ++++++++++++++++------ 1 file changed, 21 insertions(+), 8 deletions(-) (limited to 'src/main/java/me/shedaniel/rei/client/BaseBoundsHandlerImpl.java') 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 @@ -51,21 +51,34 @@ public class BaseBoundsHandlerImpl implements BaseBoundsHandler { return -5f; } + @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 currentExclusionZones = getCurrentExclusionZones(MinecraftClient.getInstance().currentScreen.getClass(), isOnRightSide); -- cgit