diff options
| author | shedaniel <daniel@shedaniel.me> | 2021-03-28 23:02:31 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2021-03-28 23:02:31 +0800 |
| commit | 9402858f8f6f4ddee96fbaf171de7f0cfd770d5b (patch) | |
| tree | 3e45f4ae1946c6ad41b27f0026fe7cb7ef2cc191 /api/src/main | |
| parent | 939d940c178637748f0c393e1209647479fdd8f3 (diff) | |
| download | RoughlyEnoughItems-9402858f8f6f4ddee96fbaf171de7f0cfd770d5b.tar.gz RoughlyEnoughItems-9402858f8f6f4ddee96fbaf171de7f0cfd770d5b.tar.bz2 RoughlyEnoughItems-9402858f8f6f4ddee96fbaf171de7f0cfd770d5b.zip | |
Porperly save JEI compatibility settings
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'api/src/main')
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); |
