aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java')
-rw-r--r--src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java50
1 files changed, 32 insertions, 18 deletions
diff --git a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
index 4e73fcaac..73bac395d 100644
--- a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
+++ b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
@@ -4,8 +4,8 @@ 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.ClientHelper;
import me.shedaniel.rei.api.DisplayHelper;
-import me.shedaniel.rei.client.ClientHelper;
import me.shedaniel.rei.client.ScreenHelper;
import me.shedaniel.rei.client.Weather;
import me.shedaniel.rei.gui.widget.*;
@@ -21,20 +21,19 @@ import net.minecraft.container.Slot;
import net.minecraft.item.ItemStack;
import net.minecraft.sound.SoundEvents;
import net.minecraft.text.TranslatableTextComponent;
+import net.minecraft.util.ActionResult;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.GameMode;
import java.awt.*;
-import java.util.LinkedList;
+import java.util.*;
import java.util.List;
-import java.util.Objects;
-import java.util.Optional;
import java.util.stream.Collectors;
public class ContainerScreenOverlay extends AbstractParentElement implements Drawable {
- private static final Identifier CHEST_GUI_TEXTURE = new Identifier("roughlyenoughitems", "textures/gui/recipecontainer.png");
+ private static final Identifier CHEST_GUI_TEXTURE = new Identifier("roughlyenoughitems", "textures/gui" + "/recipecontainer.png");
private static final List<QueuedTooltip> QUEUED_TOOLTIPS = Lists.newArrayList();
public static String searchTerm = "";
private static int page = 0;
@@ -110,7 +109,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
@Override
public void onPressed() {
if (Screen.hasShiftDown()) {
- ClientHelper.setCheating(!ClientHelper.isCheating());
+ ClientHelper.getInstance().setCheating(!ClientHelper.getInstance().isCheating());
return;
}
RoughlyEnoughItemsCore.getConfigManager().openConfigScreen(ScreenHelper.getLastContainerScreen());
@@ -120,7 +119,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
public void render(int mouseX, int mouseY, float delta) {
super.render(mouseX, mouseY, delta);
GuiLighting.disable();
- if (ClientHelper.isCheating() && RoughlyEnoughItemsCore.hasOperatorPermission()) {
+ if (ClientHelper.getInstance().isCheating() && RoughlyEnoughItemsCore.hasOperatorPermission()) {
if (RoughlyEnoughItemsCore.hasPermissionToUsePackets())
fill(getBounds().x, getBounds().y, getBounds().x + 20, getBounds().y + 20, 721354752);
else
@@ -135,7 +134,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
public Optional<String> getTooltips() {
String tooltips = I18n.translate("text.rei.config_tooltip");
tooltips += "\n ";
- if (!ClientHelper.isCheating())
+ if (!ClientHelper.getInstance().isCheating())
tooltips += "\n" + I18n.translate("text.rei.cheating_disabled");
else if (!RoughlyEnoughItemsCore.hasOperatorPermission())
tooltips += "\n" + I18n.translate("text.rei.cheating_enabled_no_perms");
@@ -177,7 +176,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
widgets.add(new ButtonWidget(RoughlyEnoughItemsCore.getConfigManager().getConfig().mirrorItemPanel ? window.getScaledWidth() - 80 : 60, 10, 20, 20, "") {
@Override
public void onPressed() {
- MinecraftClient.getInstance().player.sendChatMessage(RoughlyEnoughItemsCore.getConfigManager().getConfig().weatherCommand.replaceAll("\\{weather}", getNextWeather().name().toLowerCase()));
+ MinecraftClient.getInstance().player.sendChatMessage(RoughlyEnoughItemsCore.getConfigManager().getConfig().weatherCommand.replaceAll("\\{weather}", getNextWeather().name().toLowerCase(Locale.ROOT)));
}
@Override
@@ -318,7 +317,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
}
private String getCheatModeText() {
- return I18n.translate(String.format("%s%s", "text.rei.", ClientHelper.isCheating() ? "cheat" : "nocheat"));
+ return I18n.translate(String.format("%s%s", "text.rei.", ClientHelper.getInstance().isCheating() ? "cheat" : "nocheat"));
}
public Rectangle getRectangle() {
@@ -327,11 +326,11 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
@Override
public void render(int mouseX, int mouseY, float delta) {
- List<ItemStack> currentStacks = ClientHelper.getInventoryItemsTypes();
+ List<ItemStack> currentStacks = ClientHelper.getInstance().getInventoryItemsTypes();
if (RoughlyEnoughItemsCore.getDisplayHelper().getBaseBoundsHandler() != null && RoughlyEnoughItemsCore.getDisplayHelper().getBaseBoundsHandler().shouldRecalculateArea(!RoughlyEnoughItemsCore.getConfigManager().getConfig().mirrorItemPanel, rectangle))
init(true);
else if (RoughlyEnoughItemsCore.getConfigManager().isCraftableOnlyEnabled() && (!hasSameListContent(new LinkedList<>(ScreenHelper.inventoryStacks), currentStacks) || (currentStacks.size() != ScreenHelper.inventoryStacks.size()))) {
- ScreenHelper.inventoryStacks = ClientHelper.getInventoryItemsTypes();
+ ScreenHelper.inventoryStacks = ClientHelper.getInstance().getInventoryItemsTypes();
DisplayHelper.DisplayBoundsHandler boundsHandler = RoughlyEnoughItemsCore.getDisplayHelper().getResponsibleBoundsHandler(MinecraftClient.getInstance().currentScreen.getClass());
itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm, true);
}
@@ -446,7 +445,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
public boolean mouseScrolled(double i, double j, double amount) {
if (!ScreenHelper.isOverlayVisible())
return false;
- if (rectangle.contains(ClientUtils.getMouseLocation())) {
+ if (isInside(ClientUtils.getMouseLocation())) {
if (amount > 0 && buttonLeft.enabled)
buttonLeft.onPressed();
else if (amount < 0 && buttonRight.enabled)
@@ -467,7 +466,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
for(Element listener : widgets)
if (listener.keyPressed(int_1, int_2, int_3))
return true;
- if (ClientHelper.HIDE.matchesKey(int_1, int_2)) {
+ if (ClientHelper.getInstance().getHideKeyBinding().matchesKey(int_1, int_2)) {
ScreenHelper.toggleOverlayVisible();
return true;
}
@@ -478,10 +477,10 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
if (ScreenHelper.getLastContainerScreenHooks().rei_getHoveredSlot() != null && !ScreenHelper.getLastContainerScreenHooks().rei_getHoveredSlot().getStack().isEmpty())
itemStack = ScreenHelper.getLastContainerScreenHooks().rei_getHoveredSlot().getStack();
if (itemStack != null && !itemStack.isEmpty()) {
- if (ClientHelper.RECIPE.matchesKey(int_1, int_2))
- return ClientHelper.executeRecipeKeyBind(itemStack);
- else if (ClientHelper.USAGE.matchesKey(int_1, int_2))
- return ClientHelper.executeUsageKeyBind(itemStack);
+ if (ClientHelper.getInstance().getRecipeKeyBinding().matchesKey(int_1, int_2))
+ return ClientHelper.getInstance().executeRecipeKeyBind(itemStack);
+ else if (ClientHelper.getInstance().getUsageKeyBinding().matchesKey(int_1, int_2))
+ return ClientHelper.getInstance().executeUsageKeyBind(itemStack);
}
return false;
}
@@ -515,4 +514,19 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
return false;
}
+ public boolean isInside(double mouseX, double mouseY) {
+ if (!rectangle.contains(mouseX, mouseY))
+ return false;
+ for(DisplayHelper.DisplayBoundsHandler handler : RoughlyEnoughItemsCore.getDisplayHelper().getSortedBoundsHandlers(MinecraftClient.getInstance().currentScreen.getClass())) {
+ ActionResult in = handler.isInZone(!RoughlyEnoughItemsCore.getConfigManager().getConfig().mirrorItemPanel, mouseX, mouseY);
+ if (in != ActionResult.PASS)
+ return in == ActionResult.SUCCESS;
+ }
+ return true;
+ }
+
+ public boolean isInside(Point point) {
+ return isInside(point.getX(), point.getY());
+ }
+
}