aboutsummaryrefslogtreecommitdiff
path: root/api/src/main
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2022-06-27 23:27:37 +0800
committershedaniel <daniel@shedaniel.me>2022-06-27 23:29:11 +0800
commitb7092f587069063548bcf30aa2c7cd745114b5c9 (patch)
treefcc89bba8f2084417ee6ac18ce949f44f52460cc /api/src/main
parent518b3085443a2f0d6ffdcef8c6981dc0160eb09c (diff)
downloadRoughlyEnoughItems-b7092f587069063548bcf30aa2c7cd745114b5c9.tar.gz
RoughlyEnoughItems-b7092f587069063548bcf30aa2c7cd745114b5c9.tar.bz2
RoughlyEnoughItems-b7092f587069063548bcf30aa2c7cd745114b5c9.zip
Add expanded view to tag trees, fix #948
Diffstat (limited to 'api/src/main')
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/REIRuntime.java10
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/DelegateWidget.java9
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Widget.java8
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Widgets.java23
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;