diff options
| author | Unknown <shekwancheung0528@gmail.com> | 2019-05-07 18:30:54 +0800 |
|---|---|---|
| committer | Unknown <shekwancheung0528@gmail.com> | 2019-05-07 18:30:54 +0800 |
| commit | 5357ec90f80768b69b197161e877e3ef884650a4 (patch) | |
| tree | 23cc18b2e544c5fc609f511a4a18ff3112891262 /src/main/java/me/shedaniel/rei/client/BaseBoundsHandlerImpl.java | |
| parent | 6fad30c3819f850f00d2498de69f756571c1fdc3 (diff) | |
| download | RoughlyEnoughItems-5357ec90f80768b69b197161e877e3ef884650a4.tar.gz RoughlyEnoughItems-5357ec90f80768b69b197161e877e3ef884650a4.tar.bz2 RoughlyEnoughItems-5357ec90f80768b69b197161e877e3ef884650a4.zip | |
2.8.2 Build 104
Fixed #81
Close #82
Close #83
Diffstat (limited to 'src/main/java/me/shedaniel/rei/client/BaseBoundsHandlerImpl.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/client/BaseBoundsHandlerImpl.java | 29 |
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); |
