aboutsummaryrefslogtreecommitdiff
path: root/api/src/main/java/me
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-03-27 01:12:02 +0800
committershedaniel <daniel@shedaniel.me>2021-03-27 01:12:02 +0800
commitb11c3866aada638f0ad758ced4068c71e620ce23 (patch)
tree332f3ddab9be3da68b06d84823683608028d5b4c /api/src/main/java/me
parent659027baa60c56b5aeab38d4f7c676c37857ec68 (diff)
downloadRoughlyEnoughItems-b11c3866aada638f0ad758ced4068c71e620ce23.tar.gz
RoughlyEnoughItems-b11c3866aada638f0ad758ced4068c71e620ce23.tar.bz2
RoughlyEnoughItems-b11c3866aada638f0ad758ced4068c71e620ce23.zip
Make Recipe Transfer work
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'api/src/main/java/me')
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/search/SearchFilter.java5
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/entry/EntryIngredient.java8
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/entry/EntryStack.java9
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/entry/type/EntryDefinition.java3
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/plugins/PluginManager.java2
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/util/EntryIngredients.java2
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();
}