diff options
| author | shedaniel <daniel@shedaniel.me> | 2021-04-16 22:30:08 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2021-04-16 22:30:08 +0800 |
| commit | 2118580fc418b272723766e080209f06bdf9a2a9 (patch) | |
| tree | 0ab6eecbff3a2aec122adc240272857fc703215a /api/src/main/java | |
| parent | 29b2ae2033557c6c3824543e15611ebd175bce51 (diff) | |
| download | RoughlyEnoughItems-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')
| -rw-r--r-- | api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Widgets.java | 36 |
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); |
