aboutsummaryrefslogtreecommitdiff
path: root/api/src/main/java/me/shedaniel
diff options
context:
space:
mode:
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());
+ }
}
}
}