aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me
diff options
context:
space:
mode:
authorDanielshe <shekwancheung0528@gmail.com>2019-11-01 15:13:34 +0800
committerDanielshe <shekwancheung0528@gmail.com>2019-11-01 15:13:43 +0800
commita159e6b1d19b8b8d0051b10f614c5c04be2e55e1 (patch)
treec3d3c0e54a5481f658427a573045587c04bf44c1 /src/main/java/me
parent2ebc99aff27d26aee351ae5e71b148a98bfbf59e (diff)
downloadRoughlyEnoughItems-a159e6b1d19b8b8d0051b10f614c5c04be2e55e1.tar.gz
RoughlyEnoughItems-a159e6b1d19b8b8d0051b10f614c5c04be2e55e1.tar.bz2
RoughlyEnoughItems-a159e6b1d19b8b8d0051b10f614c5c04be2e55e1.zip
Close #161
Diffstat (limited to 'src/main/java/me')
-rw-r--r--src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java44
-rw-r--r--src/main/java/me/shedaniel/rei/gui/credits/CreditsEntryListWidget.java3
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java2
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/SearchFieldWidget.java7
4 files changed, 53 insertions, 3 deletions
diff --git a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
index 1f44adaa4..8ab4f5e3d 100644
--- a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
+++ b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
@@ -134,6 +134,11 @@ public class ContainerScreenOverlay extends Widget {
public boolean changeFocus(boolean boolean_1) {
return false;
}
+
+ @Override
+ public boolean containsMouse(double mouseX, double mouseY) {
+ return isNotInExclusionZones(mouseX, mouseY) && super.containsMouse(mouseX, mouseY);
+ }
});
widgets.add(buttonRight = new ButtonWidget(rectangle.x + rectangle.width - 18, rectangle.y + (RoughlyEnoughItemsCore.getConfigManager().getConfig().getSearchFieldLocation() == SearchFieldLocation.TOP_SIDE ? 24 : 0) + 5, 16, 16, new TranslatableText("text.rei.right_arrow")) {
@Override
@@ -153,6 +158,11 @@ public class ContainerScreenOverlay extends Widget {
public boolean changeFocus(boolean boolean_1) {
return false;
}
+
+ @Override
+ public boolean containsMouse(double mouseX, double mouseY) {
+ return isNotInExclusionZones(mouseX, mouseY) && super.containsMouse(mouseX, mouseY);
+ }
});
}
@@ -203,6 +213,11 @@ public class ContainerScreenOverlay extends Widget {
public boolean changeFocus(boolean boolean_1) {
return false;
}
+
+ @Override
+ public boolean containsMouse(double mouseX, double mouseY) {
+ return isNotInExclusionZones(mouseX, mouseY) && super.containsMouse(mouseX, mouseY);
+ }
});
if (RoughlyEnoughItemsCore.getConfigManager().getConfig().doesShowUtilsButtons()) {
widgets.add(new ButtonWidget(RoughlyEnoughItemsCore.getConfigManager().getConfig().isLeftHandSidePanel() ? window.getScaledWidth() - 55 : 35, 10, 20, 20, "") {
@@ -226,6 +241,11 @@ public class ContainerScreenOverlay extends Widget {
public boolean changeFocus(boolean boolean_1) {
return false;
}
+
+ @Override
+ public boolean containsMouse(double mouseX, double mouseY) {
+ return isNotInExclusionZones(mouseX, mouseY) && super.containsMouse(mouseX, mouseY);
+ }
});
int xxx = RoughlyEnoughItemsCore.getConfigManager().getConfig().isLeftHandSidePanel() ? window.getScaledWidth() - 30 : 10;
for (Weather weather : Weather.values()) {
@@ -253,6 +273,11 @@ public class ContainerScreenOverlay extends Widget {
public boolean changeFocus(boolean boolean_1) {
return false;
}
+
+ @Override
+ public boolean containsMouse(double mouseX, double mouseY) {
+ return isNotInExclusionZones(mouseX, mouseY) && super.containsMouse(mouseX, mouseY);
+ }
});
xxx += RoughlyEnoughItemsCore.getConfigManager().getConfig().isLeftHandSidePanel() ? -25 : 25;
}
@@ -307,6 +332,11 @@ public class ContainerScreenOverlay extends Widget {
setBlitOffset(300);
super.lateRender(mouseX, mouseY, delta);
}
+
+ @Override
+ public boolean containsMouse(double mouseX, double mouseY) {
+ return isNotInExclusionZones(mouseX, mouseY) && super.containsMouse(mouseX, mouseY);
+ }
});
else
toggleButtonWidget = null;
@@ -594,7 +624,7 @@ public class ContainerScreenOverlay extends Widget {
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())) {
+ for (DisplayHelper.DisplayBoundsHandler<?> handler : RoughlyEnoughItemsCore.getDisplayHelper().getSortedBoundsHandlers(MinecraftClient.getInstance().currentScreen.getClass())) {
ActionResult in = handler.isInZone(!RoughlyEnoughItemsCore.getConfigManager().getConfig().isLeftHandSidePanel(), mouseX, mouseY);
if (in != ActionResult.PASS)
return in == ActionResult.SUCCESS;
@@ -602,6 +632,18 @@ public class ContainerScreenOverlay extends Widget {
return true;
}
+ public boolean isNotInExclusionZones(double mouseX, double mouseY) {
+ for (DisplayHelper.DisplayBoundsHandler<?> handler : RoughlyEnoughItemsCore.getDisplayHelper().getSortedBoundsHandlers(MinecraftClient.getInstance().currentScreen.getClass())) {
+ ActionResult in = handler.isInZone(true, mouseX, mouseY);
+ if (in != ActionResult.PASS)
+ return in == ActionResult.SUCCESS;
+ in = handler.isInZone(false, mouseX, mouseY);
+ if (in != ActionResult.PASS)
+ return in == ActionResult.SUCCESS;
+ }
+ return true;
+ }
+
public boolean isInside(Point point) {
return isInside(point.getX(), point.getY());
}
diff --git a/src/main/java/me/shedaniel/rei/gui/credits/CreditsEntryListWidget.java b/src/main/java/me/shedaniel/rei/gui/credits/CreditsEntryListWidget.java
index 0dff38d85..3ff8eec01 100644
--- a/src/main/java/me/shedaniel/rei/gui/credits/CreditsEntryListWidget.java
+++ b/src/main/java/me/shedaniel/rei/gui/credits/CreditsEntryListWidget.java
@@ -5,12 +5,13 @@
package me.shedaniel.rei.gui.credits;
+import me.shedaniel.clothconfig2.gui.widget.DynamicNewSmoothScrollingEntryListWidget;
import me.shedaniel.clothconfig2.gui.widget.DynamicSmoothScrollingEntryListWidget;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.DrawableHelper;
import net.minecraft.text.Text;
-public class CreditsEntryListWidget extends DynamicSmoothScrollingEntryListWidget<CreditsEntryListWidget.CreditsItem> {
+public class CreditsEntryListWidget extends DynamicNewSmoothScrollingEntryListWidget<CreditsEntryListWidget.CreditsItem> {
private boolean inFocus;
diff --git a/src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java
index 7a98f36f4..5f7ce117d 100644
--- a/src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java
+++ b/src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java
@@ -123,7 +123,7 @@ public abstract class ButtonWidget extends WidgetWithBounds {
@Override
public boolean mouseClicked(double mouseX, double mouseY, int button) {
- if (bounds.contains(mouseX, mouseY) && enabled && button == 0) {
+ if (isMouseOver(mouseX, mouseY) && enabled && button == 0) {
minecraft.getSoundManager().play(PositionedSoundInstance.master(SoundEvents.UI_BUTTON_CLICK, 1.0F));
onPressed();
return true;
diff --git a/src/main/java/me/shedaniel/rei/gui/widget/SearchFieldWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/SearchFieldWidget.java
index e6e386c2a..f9f03f87e 100644
--- a/src/main/java/me/shedaniel/rei/gui/widget/SearchFieldWidget.java
+++ b/src/main/java/me/shedaniel/rei/gui/widget/SearchFieldWidget.java
@@ -6,7 +6,9 @@
package me.shedaniel.rei.gui.widget;
import com.mojang.blaze3d.systems.RenderSystem;
+import me.shedaniel.rei.RoughlyEnoughItemsCore;
import me.shedaniel.rei.gui.ContainerScreenOverlay;
+import me.shedaniel.rei.impl.ScreenHelper;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.GuiLighting;
import net.minecraft.client.resource.language.I18n;
@@ -84,6 +86,11 @@ public class SearchFieldWidget extends TextFieldWidget {
}
@Override
+ public boolean containsMouse(double mouseX, double mouseY) {
+ return ScreenHelper.getLastOverlay().isNotInExclusionZones(mouseX, mouseY) && super.containsMouse(mouseX, mouseY);
+ }
+
+ @Override
public void render(int int_1, int int_2, float float_1) {
}