aboutsummaryrefslogtreecommitdiff
path: root/api/src/main/java/me/shedaniel
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2022-06-11 00:18:06 +0800
committershedaniel <daniel@shedaniel.me>2022-06-11 00:18:06 +0800
commit4a8a83a1bfc68eeb80581cde55ef23d16e59f52c (patch)
treec571a004ac6f2d34547a0cbed1ae6950a625783f /api/src/main/java/me/shedaniel
parent0ec9d4ad3ab50e7ec7c0f6ce2ab65bd7596ee771 (diff)
downloadRoughlyEnoughItems-4a8a83a1bfc68eeb80581cde55ef23d16e59f52c.tar.gz
RoughlyEnoughItems-4a8a83a1bfc68eeb80581cde55ef23d16e59f52c.tar.bz2
RoughlyEnoughItems-4a8a83a1bfc68eeb80581cde55ef23d16e59f52c.zip
Add TransferHandler.Result.tooltip()
Diffstat (limited to 'api/src/main/java/me/shedaniel')
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/registry/transfer/TransferHandler.java18
1 files changed, 16 insertions, 2 deletions
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/registry/transfer/TransferHandler.java b/api/src/main/java/me/shedaniel/rei/api/client/registry/transfer/TransferHandler.java
index ad79d1d92..d379c381c 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/registry/transfer/TransferHandler.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/registry/transfer/TransferHandler.java
@@ -36,6 +36,7 @@ import net.minecraft.world.inventory.AbstractContainerMenu;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
+import java.util.ArrayList;
import java.util.List;
import java.util.function.BiConsumer;
import java.util.function.Supplier;
@@ -143,6 +144,8 @@ public interface TransferHandler extends Comparable<TransferHandler> {
@ApiStatus.Experimental
Result overrideTooltipRenderer(BiConsumer<Point, TooltipSink> renderer);
+ Result tooltip(Component component);
+
/**
* @return whether this handler has successfully handled the transfer.
*/
@@ -229,6 +232,7 @@ public interface TransferHandler extends Comparable<TransferHandler> {
final class ResultImpl implements Result {
private boolean successful, applicable, returningToScreen, blocking;
private Component error;
+ private List<Component> tooltips = new ArrayList<>();
private Object errorRenderer;
private BiConsumer<Point, TooltipSink> tooltipRenderer;
private int color;
@@ -290,6 +294,12 @@ public interface TransferHandler extends Comparable<TransferHandler> {
}
@Override
+ public Result tooltip(Component component) {
+ this.tooltips.add(component);
+ return this;
+ }
+
+ @Override
public boolean isSuccessful() {
return successful;
}
@@ -330,8 +340,12 @@ public interface TransferHandler extends Comparable<TransferHandler> {
@Override
public void fillTooltip(List<Component> components) {
- if (!isSuccessful() && isApplicable()) {
- components.add(getError());
+ if (isApplicable()) {
+ if (isSuccessful()) {
+ components.addAll(tooltips);
+ } else {
+ components.add(getError());
+ }
}
}
}