diff options
| author | shedaniel <daniel@shedaniel.me> | 2022-06-27 23:27:37 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2022-06-27 23:29:11 +0800 |
| commit | b7092f587069063548bcf30aa2c7cd745114b5c9 (patch) | |
| tree | fcc89bba8f2084417ee6ac18ce949f44f52460cc /api | |
| parent | 518b3085443a2f0d6ffdcef8c6981dc0160eb09c (diff) | |
| download | RoughlyEnoughItems-b7092f587069063548bcf30aa2c7cd745114b5c9.tar.gz RoughlyEnoughItems-b7092f587069063548bcf30aa2c7cd745114b5c9.tar.bz2 RoughlyEnoughItems-b7092f587069063548bcf30aa2c7cd745114b5c9.zip | |
Add expanded view to tag trees, fix #948
Diffstat (limited to 'api')
4 files changed, 44 insertions, 6 deletions
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/REIRuntime.java b/api/src/main/java/me/shedaniel/rei/api/client/REIRuntime.java index 8c3d68d4f..a17751703 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/REIRuntime.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/REIRuntime.java @@ -37,6 +37,7 @@ import net.fabricmc.api.Environment; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; import java.util.Optional; @@ -144,6 +145,15 @@ public interface REIRuntime extends Reloadable<REIClientPlugin> { void queueTooltip(@Nullable Tooltip tooltip); /** + * Clear all queued tooltips. + * + * @see Tooltip#queue() + * @since 8.3 + */ + @ApiStatus.Experimental + void clearTooltips(); + + /** * Returns the texture location of the default display background. * <p> * This is different depending on whether dark mode is enabled. 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 1bf43694b..e4ff00b7b 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 @@ -34,11 +34,9 @@ import java.util.List; public class DelegateWidget extends WidgetWithBounds { private static final Rectangle EMPTY = new Rectangle(); protected final Widget widget; - private final List<Widget> children; public DelegateWidget(Widget widget) { this.widget = widget; - this.children = Collections.singletonList(widget); } protected Widget delegate() { @@ -52,7 +50,7 @@ public class DelegateWidget extends WidgetWithBounds { @Override public List<? extends GuiEventListener> children() { - return children; + return Collections.singletonList(delegate()); } @Override @@ -126,4 +124,9 @@ public class DelegateWidget extends WidgetWithBounds { this.setDragging(false); return delegate().mouseReleased(mouseX, mouseY, button); } + + @Override + public double getZRenderingPriority() { + return delegate().getZRenderingPriority(); + } } diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Widget.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Widget.java index df350c9c7..16ef576ee 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Widget.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Widget.java @@ -37,10 +37,7 @@ import net.fabricmc.api.Environment; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.Nullable; -import java.io.Closeable; -import java.io.IOException; import java.util.Stack; /** @@ -122,6 +119,11 @@ public abstract class Widget extends AbstractContainerEventHandler implements ne } @ApiStatus.Experimental + public double getZRenderingPriority() { + return 0; + } + + @ApiStatus.Experimental public static CloseableScissors scissor(PoseStack matrices, Rectangle bounds) { return scissor(matrices.last().pose(), bounds); } 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 eb1f54d7d..028947c34 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 @@ -327,6 +327,29 @@ public final class Widgets { return ClientInternals.getWidgetsProvider().wrapPadded(padLeft, padRight, padTop, padBottom, widget); } + public static Widget delegate(Supplier<Widget> supplier) { + return new DelegateWidget(Widgets.noOp()) { + @Override + protected Widget delegate() { + return supplier.get(); + } + }; + } + + public static WidgetWithBounds delegateWithBounds(Supplier<WidgetWithBounds> supplier) { + return new DelegateWidgetWithBounds(Widgets.noOp(), Rectangle::new) { + @Override + protected WidgetWithBounds delegate() { + return supplier.get(); + } + + @Override + public Rectangle getBounds() { + return delegate().getBounds(); + } + }; + } + public static <T> Iterable<T> walk(Iterable<? extends GuiEventListener> listeners, Predicate<GuiEventListener> predicate) { return () -> new AbstractIterator<T>() { Stack<Iterator<? extends GuiEventListener>> stack; |
