diff options
Diffstat (limited to 'api/src/main/java')
6 files changed, 20 insertions, 9 deletions
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/search/SearchFilter.java b/api/src/main/java/me/shedaniel/rei/api/client/search/SearchFilter.java index 735e5fddf..ce77fe569 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/search/SearchFilter.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/search/SearchFilter.java @@ -27,6 +27,11 @@ import me.shedaniel.rei.api.common.entry.EntryStack; import java.util.function.Predicate; +/** + * A search filter that respects different prefixes, matches a {@link EntryStack}. + * + * @see SearchProvider + */ public interface SearchFilter extends Predicate<EntryStack<?>> { static SearchFilter matchAll() { return new SearchFilter() { diff --git a/api/src/main/java/me/shedaniel/rei/api/common/entry/EntryIngredient.java b/api/src/main/java/me/shedaniel/rei/api/common/entry/EntryIngredient.java index 103586d35..cd179180f 100644 --- a/api/src/main/java/me/shedaniel/rei/api/common/entry/EntryIngredient.java +++ b/api/src/main/java/me/shedaniel/rei/api/common/entry/EntryIngredient.java @@ -28,6 +28,8 @@ import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import java.util.List; +import java.util.function.Predicate; +import java.util.function.UnaryOperator; /** * An immutable representation of a list of {@link EntryStack}. @@ -59,7 +61,7 @@ public interface EntryIngredient extends List<EntryStack<?>> { return Internals.getEntryIngredientProvider().builder(initialCapacity); } - static EntryIngredient from(ListTag tag) { + static EntryIngredient read(ListTag tag) { if (tag.isEmpty()) return empty(); EntryStack<?>[] stacks = new EntryStack[tag.size()]; for (int i = 0; i < tag.size(); i++) { @@ -75,6 +77,10 @@ public interface EntryIngredient extends List<EntryStack<?>> { return (List<EntryStack<T>>) (List) this; } + EntryIngredient filter(Predicate<EntryStack<?>> filter); + + EntryIngredient map(UnaryOperator<EntryStack<?>> transformer); + interface Builder { Builder add(EntryStack<?> stack); diff --git a/api/src/main/java/me/shedaniel/rei/api/common/entry/EntryStack.java b/api/src/main/java/me/shedaniel/rei/api/common/entry/EntryStack.java index 07cbe62f7..ce7201d51 100644 --- a/api/src/main/java/me/shedaniel/rei/api/common/entry/EntryStack.java +++ b/api/src/main/java/me/shedaniel/rei/api/common/entry/EntryStack.java @@ -50,10 +50,7 @@ import net.minecraft.util.Unit; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; +import java.util.*; import java.util.function.BiFunction; import java.util.function.Function; import java.util.function.Supplier; @@ -108,7 +105,7 @@ public interface EntryStack<T> extends TextRepresentable, Renderer { EntryDefinition<?> definition = EntryTypeRegistry.getInstance().get(new ResourceLocation(tag.getString("type"))); EntrySerializer<?> serializer = definition.getSerializer(); if (serializer != null && serializer.supportReading()) { - return EntryStack.of((EntryType<Object>) definition, serializer.read(tag)); + return EntryStack.of((EntryDefinition<Object>) definition, serializer.read(tag)); } throw new UnsupportedOperationException(definition.getType().getId() + " does not support deserialization!"); } @@ -163,6 +160,8 @@ public interface EntryStack<T> extends TextRepresentable, Renderer { EntryStack<T> normalize(); + Collection<ResourceLocation> getTagsFor(); + @Deprecated int hashCode(); diff --git a/api/src/main/java/me/shedaniel/rei/api/common/entry/type/EntryDefinition.java b/api/src/main/java/me/shedaniel/rei/api/common/entry/type/EntryDefinition.java index f08480de1..04ea05d7f 100644 --- a/api/src/main/java/me/shedaniel/rei/api/common/entry/type/EntryDefinition.java +++ b/api/src/main/java/me/shedaniel/rei/api/common/entry/type/EntryDefinition.java @@ -31,6 +31,7 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.TagContainer; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; @@ -67,7 +68,7 @@ public interface EntryDefinition<T> { Component asFormattedText(EntryStack<T> entry, T value); - Collection<ResourceLocation> getTagsFor(EntryStack<T> entry, T value); + Collection<ResourceLocation> getTagsFor(TagContainer tagContainer, EntryStack<T> entry, T value); @ApiStatus.NonExtendable default <O> EntryDefinition<O> cast() { diff --git a/api/src/main/java/me/shedaniel/rei/api/common/plugins/PluginManager.java b/api/src/main/java/me/shedaniel/rei/api/common/plugins/PluginManager.java index 12c35f604..4cd223fa7 100644 --- a/api/src/main/java/me/shedaniel/rei/api/common/plugins/PluginManager.java +++ b/api/src/main/java/me/shedaniel/rei/api/common/plugins/PluginManager.java @@ -55,7 +55,7 @@ public interface PluginManager<P extends REIPlugin<?>> extends ParentReloadable< } static List<PluginManager<? extends REIPlugin<?>>> getActiveInstances() { - return EnvExecutor.getEnvSpecific(() -> () -> Arrays.asList(getInstance(), getClientInstance()), + return EnvExecutor.getEnvSpecific(() -> () -> Arrays.asList(getInstance(), getClientInstance(), getServerInstance()), () -> () -> Arrays.asList(getInstance(), getServerInstance())); } diff --git a/api/src/main/java/me/shedaniel/rei/api/common/util/EntryIngredients.java b/api/src/main/java/me/shedaniel/rei/api/common/util/EntryIngredients.java index 9b022ff28..786a212fc 100644 --- a/api/src/main/java/me/shedaniel/rei/api/common/util/EntryIngredients.java +++ b/api/src/main/java/me/shedaniel/rei/api/common/util/EntryIngredients.java @@ -158,7 +158,7 @@ public final class EntryIngredients { } ImmutableList.Builder<EntryIngredient> ingredients = ImmutableList.builder(); for (Tag tag : listTag) { - ingredients.add(EntryIngredient.from((ListTag) tag)); + ingredients.add(EntryIngredient.read((ListTag) tag)); } return ingredients.build(); } |
