From 41998600e53f941554c8d73790180c13a2e5663c Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 11 Apr 2019 21:47:51 +0800 Subject: 2.7.2 --- .../shedaniel/rei/gui/ContainerScreenOverlay.java | 45 ++++++---------------- 1 file changed, 12 insertions(+), 33 deletions(-) (limited to 'src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java') diff --git a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java index 834fac1a1..3bad4263d 100644 --- a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java +++ b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java @@ -4,6 +4,7 @@ import com.google.common.collect.Lists; import com.mojang.blaze3d.platform.GlStateManager; import me.shedaniel.cloth.api.ClientUtils; import me.shedaniel.rei.RoughlyEnoughItemsCore; +import me.shedaniel.rei.api.DisplayHelper; import me.shedaniel.rei.client.ClientHelper; import me.shedaniel.rei.client.ScreenHelper; import me.shedaniel.rei.client.Weather; @@ -53,10 +54,11 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra //Update Variables this.children().clear(); this.window = MinecraftClient.getInstance().window; - this.rectangle = calculateBoundary(); + DisplayHelper.DisplayBoundsHandler boundsHandler = RoughlyEnoughItemsCore.getDisplayHelper().getResponsibleBoundsHandler(MinecraftClient.getInstance().currentScreen.getClass()); + this.rectangle = RoughlyEnoughItemsCore.getConfigManager().getConfig().mirrorItemPanel ? boundsHandler.getLeftBounds(MinecraftClient.getInstance().currentScreen) : boundsHandler.getRightBounds(MinecraftClient.getInstance().currentScreen); this.lastLeft = getLeft(); widgets.add(this.itemListOverlay = new ItemListOverlay(page)); - itemListOverlay.updateList(getItemListArea(), page, searchTerm); + itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm); widgets.add(buttonLeft = new ButtonWidget(rectangle.x, rectangle.y + 5, 16, 16, new TranslatableTextComponent("text.rei.left_arrow")) { @Override @@ -64,7 +66,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra page--; if (page < 0) page = getTotalPage(); - itemListOverlay.updateList(getItemListArea(), page, searchTerm); + itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm); } @Override @@ -83,7 +85,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra page++; if (page > getTotalPage()) page = 0; - itemListOverlay.updateList(getItemListArea(), page, searchTerm); + itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm); } @Override @@ -201,7 +203,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra public void onLabelClicked() { MinecraftClient.getInstance().getSoundManager().play(PositionedSoundInstance.master(SoundEvents.UI_BUTTON_CLICK, 1.0F)); page = 0; - itemListOverlay.updateList(getItemListArea(), page, searchTerm); + itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm); } @Override @@ -213,7 +215,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra ScreenHelper.searchField = new SearchFieldWidget(0, 0, 0, 0); ScreenHelper.searchField.setChangedListener(s -> { searchTerm = s; - itemListOverlay.updateList(getItemListArea(), page, searchTerm); + itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm); }); ScreenHelper.searchField.getBounds().setBounds(getTextFieldArea()); this.widgets.add(ScreenHelper.searchField); @@ -223,7 +225,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra @Override public void onPressed() { RoughlyEnoughItemsCore.getConfigManager().toggleCraftableOnly(); - itemListOverlay.updateList(getItemListArea(), page, searchTerm); + itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm); } @Override @@ -233,7 +235,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra } }); - this.itemListOverlay.updateList(getItemListArea(), page, searchTerm); + this.itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm); } private Weather getNextWeather() { @@ -303,10 +305,6 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra return I18n.translate(String.format("%s%s", "text.rei.", ClientHelper.isCheating() ? "cheat" : "nocheat")); } - private Rectangle getItemListArea() { - return new Rectangle(rectangle.x + 2, rectangle.y + 24, rectangle.width - 4, rectangle.height - (RoughlyEnoughItemsCore.getConfigManager().getConfig().sideSearchField ? 27 + 22 : 27)); - } - public Rectangle getRectangle() { return rectangle; } @@ -318,7 +316,8 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra init(true); else if (RoughlyEnoughItemsCore.getConfigManager().isCraftableOnlyEnabled() && (!hasSameListContent(new LinkedList<>(ScreenHelper.inventoryStacks), currentStacks) || (currentStacks.size() != ScreenHelper.inventoryStacks.size()))) { ScreenHelper.inventoryStacks = ClientHelper.getInventoryItemsTypes(); - itemListOverlay.updateList(getItemListArea(), page, searchTerm); + DisplayHelper.DisplayBoundsHandler boundsHandler = RoughlyEnoughItemsCore.getDisplayHelper().getResponsibleBoundsHandler(MinecraftClient.getInstance().currentScreen.getClass()); + itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm); } GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F); GuiLighting.disable(); @@ -415,26 +414,6 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra GuiLighting.disable(); } - private Rectangle calculateBoundary() { - try { - if (!RoughlyEnoughItemsCore.getConfigManager().getConfig().mirrorItemPanel) { - int startX = ScreenHelper.getLastContainerScreenHooks().rei_getContainerLeft() + ScreenHelper.getLastContainerScreenHooks().rei_getContainerWidth() + 10; - int width = window.getScaledWidth() - startX; - if (MinecraftClient.getInstance().currentScreen instanceof RecipeViewingScreen) { - RecipeViewingScreen widget = (RecipeViewingScreen) MinecraftClient.getInstance().currentScreen; - startX = widget.getBounds().x + widget.getBounds().width + 10; - width = window.getScaledWidth() - startX; - } - return new Rectangle(startX, 0, width, window.getScaledHeight()); - } - return new Rectangle(4, 0, getLeft() - 6, window.getScaledHeight()); - } catch (Exception e) { - RoughlyEnoughItemsCore.LOGGER.info("[REI] Error calculating boundary, report the issue!"); - e.printStackTrace(); - return new Rectangle(); - } - } - private int getLeft() { if (MinecraftClient.getInstance().currentScreen instanceof RecipeViewingScreen) { RecipeViewingScreen widget = (RecipeViewingScreen) MinecraftClient.getInstance().currentScreen; -- cgit