aboutsummaryrefslogtreecommitdiff
path: root/api/src/main/java/me
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-04-16 22:30:08 +0800
committershedaniel <daniel@shedaniel.me>2021-04-16 22:30:08 +0800
commit2118580fc418b272723766e080209f06bdf9a2a9 (patch)
tree0ab6eecbff3a2aec122adc240272857fc703215a /api/src/main/java/me
parent29b2ae2033557c6c3824543e15611ebd175bce51 (diff)
downloadRoughlyEnoughItems-2118580fc418b272723766e080209f06bdf9a2a9.tar.gz
RoughlyEnoughItems-2118580fc418b272723766e080209f06bdf9a2a9.tar.bz2
RoughlyEnoughItems-2118580fc418b272723766e080209f06bdf9a2a9.zip
Support Fluid Overlays, fix #505
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'api/src/main/java/me')
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Widgets.java36
1 files changed, 28 insertions, 8 deletions
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 0ac417634..52d0cc172 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
@@ -172,12 +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);
@@ -186,22 +186,29 @@ public final class Widgets {
public static WidgetWithBounds wrapRenderer(Rectangle bounds, Renderer renderer) {
if (renderer instanceof Widget)
- return wrapWidgetWithBounds((Widget) renderer);
- return new RendererWrappedWidget(renderer);
+ return wrapWidgetWithBounds((Widget) renderer, bounds);
+ return new RendererWrappedWidget(renderer, bounds);
}
public static WidgetWithBounds wrapWidgetWithBounds(Widget widget) {
+ return wrapWidgetWithBounds(widget, null);
+ }
+
+ public static WidgetWithBounds wrapWidgetWithBounds(Widget widget, Rectangle bounds) {
if (widget instanceof WidgetWithBounds)
return (WidgetWithBounds) widget;
- return new DelegateWidget(widget);
+ if (bounds == null)
+ return new DelegateWidget(widget);
+ return new DelegateWidgetWithBounds(widget, bounds);
}
private static class RendererWrappedWidget extends WidgetWithBounds {
- private Renderer renderer;
- private Rectangle bounds;
+ private final Renderer renderer;
+ private final Rectangle bounds;
- public RendererWrappedWidget(Renderer renderer) {
+ public RendererWrappedWidget(Renderer renderer, Rectangle bounds) {
this.renderer = Objects.requireNonNull(renderer);
+ this.bounds = Objects.requireNonNull(bounds);
}
@Override
@@ -232,6 +239,19 @@ public final class Widgets {
}
}
+ private static class DelegateWidgetWithBounds extends DelegateWidget {
+ private final Rectangle bounds;
+
+ public DelegateWidgetWithBounds(Widget widget, Rectangle bounds) {
+ super(widget);
+ this.bounds = bounds;
+ }
+
+ @Override
+ public Rectangle getBounds() {
+ return bounds;
+ }
+ }
public static Widget createTexturedWidget(ResourceLocation identifier, Rectangle bounds) {
return createTexturedWidget(identifier, bounds, 0, 0);