From d21a84ac2e07fe30685f1d703481425b0f01c93d Mon Sep 17 00:00:00 2001 From: shedaniel Date: Fri, 19 Mar 2021 19:16:12 +0800 Subject: Implement ItemComparatorRegistry as a replacement for previous check tags and check amount flags Signed-off-by: shedaniel --- .../main/java/me/shedaniel/rei/impl/Internals.java | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'api/src/main/java/me/shedaniel/rei/impl/Internals.java') diff --git a/api/src/main/java/me/shedaniel/rei/impl/Internals.java b/api/src/main/java/me/shedaniel/rei/impl/Internals.java index 9762f4b28..2f2b6325d 100644 --- a/api/src/main/java/me/shedaniel/rei/impl/Internals.java +++ b/api/src/main/java/me/shedaniel/rei/impl/Internals.java @@ -33,8 +33,9 @@ import me.shedaniel.rei.api.gui.Renderer; import me.shedaniel.rei.api.gui.widgets.*; import me.shedaniel.rei.api.ingredient.EntryIngredient; import me.shedaniel.rei.api.ingredient.EntryStack; -import me.shedaniel.rei.api.ingredient.entry.EntryDefinition; -import me.shedaniel.rei.api.ingredient.entry.EntryType; +import me.shedaniel.rei.api.ingredient.entry.renderer.EntryRenderer; +import me.shedaniel.rei.api.ingredient.entry.type.EntryDefinition; +import me.shedaniel.rei.api.ingredient.entry.type.EntryType; import me.shedaniel.rei.api.plugins.BuiltinPlugin; import me.shedaniel.rei.api.plugins.PluginManager; import me.shedaniel.rei.api.registry.screen.ClickArea; @@ -42,6 +43,7 @@ import me.shedaniel.rei.api.view.ViewSearchBuilder; import me.shedaniel.rei.api.view.Views; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; +import net.minecraft.nbt.Tag; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.FormattedText; import net.minecraft.resources.ResourceLocation; @@ -55,6 +57,7 @@ import java.util.Collection; import java.util.function.BiFunction; import java.util.function.Function; import java.util.function.Supplier; +import java.util.function.ToLongFunction; @ApiStatus.Internal public final class Internals { @@ -66,6 +69,8 @@ public final class Internals { private static Function> entryTypeDeferred = (object) -> throwNotSetup(); private static Supplier views = Internals::throwNotSetup; private static Supplier pluginManager = Internals::throwNotSetup; + private static Supplier nbtHasherProvider = Internals::throwNotSetup; + private static Supplier> emptyEntryRenderer = Internals::throwNotSetup; private static BiFunction, Supplier, FavoriteEntry> delegateFavoriteEntry = (supplier, toJson) -> throwNotSetup(); private static Function favoriteEntryFromJson = (object) -> throwNotSetup(); private static Function<@NotNull Boolean, ClickArea.Result> clickAreaHandlerResult = (result) -> throwNotSetup(); @@ -149,6 +154,14 @@ public final class Internals { return pluginManager.get(); } + public static ToLongFunction getNbtHasher(String[] ignoredKeys) { + return nbtHasherProvider.get().provide(ignoredKeys); + } + + public static EntryRenderer getEmptyEntryRenderer() { + return emptyEntryRenderer.get().cast(); + } + public interface EntryStackProvider { EntryStack empty(); @@ -191,4 +204,8 @@ public final class Internals { DrawableConsumer createFillRectangleConsumer(Rectangle rectangle, int color); } + + public interface NbtHasherProvider { + ToLongFunction provide(String... ignoredKeys); + } } -- cgit