aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2020-01-24 23:05:57 +0800
committershedaniel <daniel@shedaniel.me>2020-01-24 23:05:57 +0800
commite4d5665de955e8f9377df2fc15bbfeb765dcaa95 (patch)
tree95fe2cffb67e86bb84827758994e8b019277be18 /src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
parentc230eab17af075bd58bcf8e6c6961e81bf53202a (diff)
downloadRoughlyEnoughItems-e4d5665de955e8f9377df2fc15bbfeb765dcaa95.tar.gz
RoughlyEnoughItems-e4d5665de955e8f9377df2fc15bbfeb765dcaa95.tar.bz2
RoughlyEnoughItems-e4d5665de955e8f9377df2fc15bbfeb765dcaa95.zip
3.3.16
Diffstat (limited to 'src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java')
-rw-r--r--src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java92
1 files changed, 51 insertions, 41 deletions
diff --git a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
index ebf883e5f..a9976dbd5 100644
--- a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
+++ b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
@@ -81,10 +81,11 @@ public class ContainerScreenOverlay extends WidgetWithBounds {
RenderSystem.enableDepthTest();
RenderSystem.enableRescaleNormal();
};
- private Rectangle rectangle;
+ private Rectangle bounds;
private Window window;
- private CraftableToggleButtonWidget toggleButtonWidget;
- private ButtonWidget buttonLeft, buttonRight;
+ @Nullable private LateRenderedButton craftableToggleButton;
+ private LateRenderedButton configButton;
+ private ButtonWidget leftButton, rightButton;
public static EntryListWidget getEntryListWidget() {
return ENTRY_LIST_WIDGET;
@@ -107,7 +108,7 @@ public class ContainerScreenOverlay extends WidgetWithBounds {
this.window = MinecraftClient.getInstance().getWindow();
@SuppressWarnings({"RawTypeCanBeGeneric", "rawtypes"})
DisplayHelper.DisplayBoundsHandler boundsHandler = DisplayHelper.getInstance().getResponsibleBoundsHandler(MinecraftClient.getInstance().currentScreen.getClass());
- this.rectangle = ConfigObject.getInstance().isLeftHandSidePanel() ? boundsHandler.getLeftBounds(MinecraftClient.getInstance().currentScreen) : boundsHandler.getRightBounds(MinecraftClient.getInstance().currentScreen);
+ this.bounds = ConfigObject.getInstance().isLeftHandSidePanel() ? boundsHandler.getLeftBounds(MinecraftClient.getInstance().currentScreen) : boundsHandler.getRightBounds(MinecraftClient.getInstance().currentScreen);
widgets.add(ENTRY_LIST_WIDGET);
if (ConfigObject.getInstance().doDisplayFavoritesOnTheLeft() && ConfigObject.getInstance().isFavoritesEnabled()) {
if (favoritesListWidget == null)
@@ -118,11 +119,11 @@ public class ContainerScreenOverlay extends WidgetWithBounds {
if (ScreenHelper.getSearchField() == null) {
ScreenHelper.setSearchField(new OverlaySearchField(0, 0, 0, 0));
}
- ScreenHelper.getSearchField().getBounds().setBounds(getTextFieldArea());
+ ScreenHelper.getSearchField().getBounds().setBounds(getSearchFieldArea());
this.widgets.add(ScreenHelper.getSearchField());
ScreenHelper.getSearchField().setChangedListener(ENTRY_LIST_WIDGET::updateSearch);
if (!ConfigObject.getInstance().isEntryListWidgetScrolled()) {
- widgets.add(buttonLeft = new ButtonWidget(new Rectangle(rectangle.x, rectangle.y + (ConfigObject.getInstance().getSearchFieldLocation() == SearchFieldLocation.TOP_SIDE ? 24 : 0) + 5, 16, 16), I18n.translate("text.rei.left_arrow")) {
+ widgets.add(leftButton = new ButtonWidget(new Rectangle(bounds.x, bounds.y + (ConfigObject.getInstance().getSearchFieldLocation() == SearchFieldLocation.TOP_SIDE ? 24 : 0) + 5, 16, 16), I18n.translate("text.rei.left_arrow")) {
@Override
public void onPressed() {
ENTRY_LIST_WIDGET.previousPage();
@@ -146,7 +147,7 @@ public class ContainerScreenOverlay extends WidgetWithBounds {
return isNotInExclusionZones(mouseX, mouseY) && super.containsMouse(mouseX, mouseY);
}
});
- widgets.add(buttonRight = new ButtonWidget(new Rectangle(rectangle.x + rectangle.width - 18, rectangle.y + (ConfigObject.getInstance().getSearchFieldLocation() == SearchFieldLocation.TOP_SIDE ? 24 : 0) + 5, 16, 16), I18n.translate("text.rei.right_arrow")) {
+ widgets.add(rightButton = new ButtonWidget(new Rectangle(bounds.x + bounds.width - 18, bounds.y + (ConfigObject.getInstance().getSearchFieldLocation() == SearchFieldLocation.TOP_SIDE ? 24 : 0) + 5, 16, 16), I18n.translate("text.rei.right_arrow")) {
@Override
public void onPressed() {
ENTRY_LIST_WIDGET.nextPage();
@@ -172,7 +173,7 @@ public class ContainerScreenOverlay extends WidgetWithBounds {
});
}
- widgets.add(new ButtonWidget(new Rectangle(ConfigObject.getInstance().isLeftHandSidePanel() ? window.getScaledWidth() - 30 : 10, 10, 20, 20), "") {
+ widgets.add(configButton = new LateRenderedButton(getConfigButtonArea(), "") {
@Override
public void onPressed() {
if (Screen.hasShiftDown()) {
@@ -184,6 +185,11 @@ public class ContainerScreenOverlay extends WidgetWithBounds {
@Override
public void render(int mouseX, int mouseY, float delta) {
+ }
+
+ @Override
+ public void lateRender(int mouseX, int mouseY, float delta) {
+ setBlitOffset(600);
super.render(mouseX, mouseY, delta);
Rectangle bounds = getBounds();
if (ClientHelper.getInstance().isCheating() && RoughlyEnoughItemsCore.hasOperatorPermission()) {
@@ -195,6 +201,7 @@ public class ContainerScreenOverlay extends WidgetWithBounds {
MinecraftClient.getInstance().getTextureManager().bindTexture(CHEST_GUI_TEXTURE);
RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F);
blit(bounds.x + 3, bounds.y + 3, 0, 0, 14, 14);
+ setBlitOffset(0);
}
@Override
@@ -223,7 +230,7 @@ public class ContainerScreenOverlay extends WidgetWithBounds {
}
});
if (ConfigObject.getInstance().doesShowUtilsButtons()) {
- widgets.add(new ButtonWidget(new Rectangle(ConfigObject.getInstance().isLeftHandSidePanel() ? window.getScaledWidth() - 55 : 35, 10, 20, 20), "") {
+ widgets.add(new ButtonWidget(ConfigObject.getInstance().isLowerConfigButton() ? new Rectangle(ConfigObject.getInstance().isLeftHandSidePanel() ? window.getScaledWidth() - 30 : 10, 10, 20, 20) : new Rectangle(ConfigObject.getInstance().isLeftHandSidePanel() ? window.getScaledWidth() - 55 : 35, 10, 20, 20), "") {
@Override
public void onPressed() {
MinecraftClient.getInstance().player.sendChatMessage(ConfigObject.getInstance().getGamemodeCommand().replaceAll("\\{gamemode}", getNextGameMode(Screen.hasShiftDown()).getName()));
@@ -285,7 +292,7 @@ public class ContainerScreenOverlay extends WidgetWithBounds {
}
}
if (!ConfigObject.getInstance().isEntryListWidgetScrolled()) {
- widgets.add(new ClickableLabelWidget(new Point(rectangle.x + (rectangle.width / 2), rectangle.y + (ConfigObject.getInstance().getSearchFieldLocation() == SearchFieldLocation.TOP_SIDE ? 24 : 0) + 10), "") {
+ widgets.add(new ClickableLabelWidget(new Point(bounds.x + (bounds.width / 2), bounds.y + (ConfigObject.getInstance().getSearchFieldLocation() == SearchFieldLocation.TOP_SIDE ? 24 : 0) + 10), "") {
@Override
public void render(int mouseX, int mouseY, float delta) {
clickable(ENTRY_LIST_WIDGET.getTotalPages() > 1);
@@ -306,8 +313,8 @@ public class ContainerScreenOverlay extends WidgetWithBounds {
}
}.tooltip(() -> I18n.translate("text.rei.go_back_first_page")));
}
- if (ConfigObject.getInstance().isCraftableFilterEnabled())
- this.widgets.add(toggleButtonWidget = new CraftableToggleButtonWidget(getCraftableToggleArea()) {
+ if (ConfigObject.getInstance().isCraftableFilterEnabled()) {
+ this.widgets.add(craftableToggleButton = new CraftableToggleButtonWidget(getCraftableToggleArea()) {
@Override
public void onPressed() {
ConfigManager.getInstance().toggleCraftableOnly();
@@ -315,19 +322,13 @@ public class ContainerScreenOverlay extends WidgetWithBounds {
}
@Override
- public void lateRender(int mouseX, int mouseY, float delta) {
- setBlitOffset(300);
- super.lateRender(mouseX, mouseY, delta);
- setBlitOffset(0);
- }
-
- @Override
public boolean containsMouse(double mouseX, double mouseY) {
return isNotInExclusionZones(mouseX, mouseY) && super.containsMouse(mouseX, mouseY);
}
});
- else
- toggleButtonWidget = null;
+ } else {
+ craftableToggleButton = null;
+ }
}
private Weather getNextWeather() {
@@ -379,13 +380,13 @@ public class ContainerScreenOverlay extends WidgetWithBounds {
return MinecraftClient.getInstance().getNetworkHandler().getPlayerListEntry(MinecraftClient.getInstance().player.getGameProfile().getId()).getGameMode();
}
- private Rectangle getTextFieldArea() {
- int widthRemoved = ConfigObject.getInstance().isCraftableFilterEnabled() ? 22 : 2;
+ private Rectangle getSearchFieldArea() {
+ int widthRemoved = 1 + (ConfigObject.getInstance().isCraftableFilterEnabled() ? 22 : 0) + (ConfigObject.getInstance().isLowerConfigButton() ? 22 : 0);
SearchFieldLocation searchFieldLocation = ConfigObject.getInstance().getSearchFieldLocation();
if (searchFieldLocation == SearchFieldLocation.BOTTOM_SIDE)
- return new Rectangle(rectangle.x + 2, window.getScaledHeight() - 22, rectangle.width - 6 - widthRemoved, 18);
+ return new Rectangle(bounds.x + 2, window.getScaledHeight() - 22, bounds.width - 6 - widthRemoved, 18);
if (searchFieldLocation == SearchFieldLocation.TOP_SIDE)
- return new Rectangle(rectangle.x + 2, 4, rectangle.width - 6 - widthRemoved, 18);
+ return new Rectangle(bounds.x + 2, 4, bounds.width - 6 - widthRemoved, 18);
if (MinecraftClient.getInstance().currentScreen instanceof RecipeViewingScreen) {
RecipeViewingScreen widget = (RecipeViewingScreen) MinecraftClient.getInstance().currentScreen;
return new Rectangle(widget.getBounds().x, window.getScaledHeight() - 22, widget.getBounds().width - widthRemoved, 18);
@@ -398,10 +399,20 @@ public class ContainerScreenOverlay extends WidgetWithBounds {
}
private Rectangle getCraftableToggleArea() {
- Rectangle searchBoxArea = getTextFieldArea();
- searchBoxArea.setLocation(searchBoxArea.x + searchBoxArea.width + 4, searchBoxArea.y - 1);
- searchBoxArea.setSize(20, 20);
- return searchBoxArea;
+ Rectangle area = getSearchFieldArea();
+ area.setLocation(area.x + area.width + 4, area.y - 1);
+ area.setSize(20, 20);
+ return area;
+ }
+
+ private Rectangle getConfigButtonArea() {
+ if (ConfigObject.getInstance().isLowerConfigButton()) {
+ Rectangle area = getSearchFieldArea();
+ area.setLocation(area.x + area.width + (ConfigObject.getInstance().isCraftableFilterEnabled() ? 26 : 4), area.y - 1);
+ area.setSize(20, 20);
+ return area;
+ }
+ return new Rectangle(ConfigObject.getInstance().isLeftHandSidePanel() ? window.getScaledWidth() - 30 : 10, 10, 20, 20);
}
private String getCheatModeText() {
@@ -410,7 +421,7 @@ public class ContainerScreenOverlay extends WidgetWithBounds {
@Override
public Rectangle getBounds() {
- return rectangle;
+ return bounds;
}
@Override
@@ -420,7 +431,7 @@ public class ContainerScreenOverlay extends WidgetWithBounds {
init();
else {
for (DisplayHelper.DisplayBoundsHandler<?> handler : DisplayHelper.getInstance().getSortedBoundsHandlers(minecraft.currentScreen.getClass())) {
- if (handler != null && handler.shouldRecalculateArea(!ConfigObject.getInstance().isLeftHandSidePanel(), rectangle)) {
+ if (handler != null && handler.shouldRecalculateArea(!ConfigObject.getInstance().isLeftHandSidePanel(), bounds)) {
init();
break;
}
@@ -458,8 +469,9 @@ public class ContainerScreenOverlay extends WidgetWithBounds {
public void lateRender(int mouseX, int mouseY, float delta) {
if (ScreenHelper.isOverlayVisible()) {
ScreenHelper.getSearchField().laterRender(mouseX, mouseY, delta);
- if (toggleButtonWidget != null)
- toggleButtonWidget.lateRender(mouseX, mouseY, delta);
+ if (craftableToggleButton != null)
+ craftableToggleButton.lateRender(mouseX, mouseY, delta);
+ configButton.lateRender(mouseX, mouseY, delta);
}
Screen currentScreen = MinecraftClient.getInstance().currentScreen;
if (!(currentScreen instanceof RecipeViewingScreen) || !((RecipeViewingScreen) currentScreen).choosePageActivated)
@@ -470,7 +482,6 @@ public class ContainerScreenOverlay extends WidgetWithBounds {
QUEUED_TOOLTIPS.clear();
}
- @SuppressWarnings("deprecation")
public void renderTooltip(QueuedTooltip tooltip) {
if (tooltip.getConsumer() == null)
renderTooltip(tooltip.getText(), tooltip.getX(), tooltip.getY());
@@ -498,12 +509,11 @@ public class ContainerScreenOverlay extends WidgetWithBounds {
QUEUED_TOOLTIPS.add(queuedTooltip);
}
- @SuppressWarnings("deprecation")
public void renderWidgets(int int_1, int int_2, float float_1) {
if (!ScreenHelper.isOverlayVisible())
return;
if (!ConfigObject.getInstance().isEntryListWidgetScrolled())
- buttonLeft.enabled = buttonRight.enabled = ENTRY_LIST_WIDGET.getTotalPages() > 1;
+ leftButton.enabled = rightButton.enabled = ENTRY_LIST_WIDGET.getTotalPages() > 1;
for (Widget widget : widgets) {
widget.render(int_1, int_2, float_1);
}
@@ -515,10 +525,10 @@ public class ContainerScreenOverlay extends WidgetWithBounds {
return false;
if (isInside(PointHelper.fromMouse())) {
if (!ConfigObject.getInstance().isEntryListWidgetScrolled()) {
- if (amount > 0 && buttonLeft.enabled)
- buttonLeft.onPressed();
- else if (amount < 0 && buttonRight.enabled)
- buttonRight.onPressed();
+ if (amount > 0 && leftButton.enabled)
+ leftButton.onPressed();
+ else if (amount < 0 && rightButton.enabled)
+ rightButton.onPressed();
else
return false;
return true;
@@ -621,7 +631,7 @@ public class ContainerScreenOverlay extends WidgetWithBounds {
}
public boolean isInside(double mouseX, double mouseY) {
- return rectangle.contains(mouseX, mouseY) && isNotInExclusionZones(mouseX, mouseY);
+ return bounds.contains(mouseX, mouseY) && isNotInExclusionZones(mouseX, mouseY);
}
public boolean isNotInExclusionZones(double mouseX, double mouseY) {