aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-04-11 21:47:51 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-04-11 21:47:51 +0800
commit41998600e53f941554c8d73790180c13a2e5663c (patch)
treef068c4e7c0f5a5f32a4d614b5f75bd4704c9e888 /src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
parent6c783c00640143c810c81486e0c49003b297221f (diff)
downloadRoughlyEnoughItems-41998600e53f941554c8d73790180c13a2e5663c.tar.gz
RoughlyEnoughItems-41998600e53f941554c8d73790180c13a2e5663c.tar.bz2
RoughlyEnoughItems-41998600e53f941554c8d73790180c13a2e5663c.zip
2.7.2
Diffstat (limited to 'src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java')
-rw-r--r--src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java45
1 files changed, 12 insertions, 33 deletions
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;