aboutsummaryrefslogtreecommitdiff
path: root/api/src/main/java/me/shedaniel
diff options
context:
space:
mode:
Diffstat (limited to 'api/src/main/java/me/shedaniel')
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/config/ConfigManager.java1
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/DelegateWidget.java5
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Widgets.java47
3 files changed, 50 insertions, 3 deletions
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/config/ConfigManager.java b/api/src/main/java/me/shedaniel/rei/api/client/config/ConfigManager.java
index db6baac9d..9bc243750 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/config/ConfigManager.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/config/ConfigManager.java
@@ -75,5 +75,4 @@ public interface ConfigManager extends Reloadable<REIClientPlugin> {
Screen getConfigScreen(Screen parent);
ConfigObject getConfig();
-
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/DelegateWidget.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/DelegateWidget.java
index fdda2dea6..6275f438d 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/DelegateWidget.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/DelegateWidget.java
@@ -85,4 +85,9 @@ public class DelegateWidget extends WidgetWithBounds {
public boolean containsMouse(double mouseX, double mouseY) {
return widget.containsMouse(mouseX, mouseY);
}
+
+ @Override
+ public boolean isDragging() {
+ return true;
+ }
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Widgets.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Widgets.java
index fea6292e3..0ac417634 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Widgets.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Widgets.java
@@ -26,6 +26,7 @@ package me.shedaniel.rei.api.client.gui.widgets;
import com.google.common.collect.AbstractIterator;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Matrix4f;
+import com.mojang.math.Vector4f;
import me.shedaniel.math.Dimension;
import me.shedaniel.math.Point;
import me.shedaniel.math.Rectangle;
@@ -94,9 +95,46 @@ public final class Widgets {
public void render(PoseStack poseStack, int i, int j, float f) {
poseStack.pushPose();
poseStack.last().pose().multiply(translate.get());
- super.render(poseStack, i, j, f);
+ Vector4f mouse = transformMouse(i, j);
+ super.render(poseStack, (int) mouse.x(), (int) mouse.y(), f);
poseStack.popPose();
}
+
+ private Vector4f transformMouse(double mouseX, double mouseY) {
+ Vector4f mouse = new Vector4f((float) mouseX, (float) mouseY, 0, 1);
+ mouse.transform(translate.get());
+ return mouse;
+ }
+
+ @Override
+ public boolean containsMouse(double mouseX, double mouseY) {
+ Vector4f mouse = transformMouse(mouseX, mouseY);
+ return super.containsMouse(mouse.x(), mouse.y());
+ }
+
+ @Override
+ public boolean mouseClicked(double d, double e, int i) {
+ Vector4f mouse = transformMouse(d, e);
+ return super.mouseClicked(mouse.x(), mouse.y(), i);
+ }
+
+ @Override
+ public boolean mouseReleased(double d, double e, int i) {
+ Vector4f mouse = transformMouse(d, e);
+ return super.mouseReleased(mouse.x(), mouse.y(), i);
+ }
+
+ @Override
+ public boolean mouseDragged(double d, double e, int i, double f, double g) {
+ Vector4f mouse = transformMouse(d, e);
+ return super.mouseDragged(mouse.x(), mouse.y(), i, f, g);
+ }
+
+ @Override
+ public boolean mouseScrolled(double d, double e, double f) {
+ Vector4f mouse = transformMouse(d, e);
+ return super.mouseScrolled(mouse.x(), mouse.y(), f);
+ }
}
private static class VanillaWrappedWidget extends Widget {
@@ -134,7 +172,12 @@ public final class Widgets {
((ContainerEventHandler) element).setFocused(guiEventListener);
}
}
-
+
+ @Override
+ public boolean isDragging() {
+ return true;
+ }
+
@Override
public boolean containsMouse(double mouseX, double mouseY) {
return element.isMouseOver(mouseX, mouseY);