From 4c509726b9814a5f6e451bc147024e833633a1fb Mon Sep 17 00:00:00 2001 From: shedaniel Date: Sat, 11 Jun 2022 00:18:06 +0800 Subject: Add TransferHandler.Result.tooltip() --- .../api/client/registry/transfer/TransferHandler.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'api/src/main/java') 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 26a18110a..46b11547a 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 @@ -38,6 +38,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; @@ -171,6 +172,8 @@ public interface TransferHandler extends Comparable { @ApiStatus.Experimental Result overrideTooltipRenderer(BiConsumer renderer); + Result tooltip(Component component); + /** * @return whether this handler has successfully handled the transfer. */ @@ -257,6 +260,7 @@ public interface TransferHandler extends Comparable { final class ResultImpl implements Result { private boolean successful, applicable, returningToScreen, blocking; private Component error; + private List tooltips = new ArrayList<>(); private Object errorRenderer; private BiConsumer tooltipRenderer; private int color; @@ -317,6 +321,12 @@ public interface TransferHandler extends Comparable { return this; } + @Override + public Result tooltip(Component component) { + this.tooltips.add(component); + return this; + } + @Override public boolean isSuccessful() { return successful; @@ -358,8 +368,12 @@ public interface TransferHandler extends Comparable { @Override public void fillTooltip(List components) { - if (!isSuccessful() && isApplicable()) { - components.add(getError()); + if (isApplicable()) { + if (isSuccessful()) { + components.addAll(tooltips); + } else { + components.add(getError()); + } } } } -- cgit