From 2c29cac8a5e0878696c8e6635f4e41ed4845b41c Mon Sep 17 00:00:00 2001 From: shedaniel Date: Sat, 20 Mar 2021 18:03:04 +0800 Subject: Remove useless EntryStack settings, properly implement tooltip callbacks Signed-off-by: shedaniel --- .../shedaniel/rei/api/ingredient/EntryStack.java | 26 ++++++++++++++-------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'api/src/main/java/me') diff --git a/api/src/main/java/me/shedaniel/rei/api/ingredient/EntryStack.java b/api/src/main/java/me/shedaniel/rei/api/ingredient/EntryStack.java index d083b425b..b817c33b6 100644 --- a/api/src/main/java/me/shedaniel/rei/api/ingredient/EntryStack.java +++ b/api/src/main/java/me/shedaniel/rei/api/ingredient/EntryStack.java @@ -28,6 +28,7 @@ import com.google.gson.JsonObject; import com.mojang.serialization.Dynamic; import com.mojang.serialization.JsonOps; import me.shedaniel.rei.api.gui.Renderer; +import me.shedaniel.rei.api.gui.widgets.Tooltip; import me.shedaniel.rei.api.ingredient.entry.EntrySerializer; import me.shedaniel.rei.api.ingredient.entry.comparison.ComparisonContext; import me.shedaniel.rei.api.ingredient.entry.renderer.EntryRenderer; @@ -46,10 +47,8 @@ import net.minecraft.util.Unit; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Optional; +import java.util.*; +import java.util.function.BiFunction; import java.util.function.Function; import java.util.function.Supplier; @@ -147,6 +146,18 @@ public interface EntryStack extends TextRepresentable, Renderer { R get(Settings settings); + default EntryStack tooltip(Component... tooltips) { + return tooltip(Arrays.asList(tooltips)); + } + + default EntryStack tooltip(List tooltips) { + return tooltip(stack -> tooltips); + } + + default EntryStack tooltip(Function, List> tooltipProvider) { + return setting(Settings.TOOLTIP_APPEND_EXTRA, tooltipProvider); + } + class Settings { @ApiStatus.Internal private static final List> SETTINGS = new ArrayList<>(); @@ -154,15 +165,12 @@ public interface EntryStack extends TextRepresentable, Renderer { public static final Supplier TRUE = () -> true; public static final Supplier FALSE = () -> false; public static final Function, EntryRenderer> DEFAULT_RENDERER = stack -> stack.getDefinition().getRenderer(); + public static final BiFunction, Tooltip, Tooltip> DEFAULT_TOOLTIP_PROCESSOR = (stack, tooltip) -> tooltip; public static final Settings, EntryRenderer>> RENDER = new Settings<>(DEFAULT_RENDERER); @Deprecated - public static final Settings> TOOLTIP_ENABLED = new Settings<>(TRUE); - @Deprecated - public static final Settings> TOOLTIP_APPEND_MOD = new Settings<>(TRUE); + public static final Settings, Tooltip, Tooltip>> TOOLTIP_PROCESSOR = new Settings<>(DEFAULT_TOOLTIP_PROCESSOR); @Deprecated public static final Settings, List>> TOOLTIP_APPEND_EXTRA = new Settings<>(stack -> Collections.emptyList()); - @Deprecated - public static final Settings, String>> COUNTS = new Settings<>(stack -> null); private static short nextId; private R defaultValue; -- cgit