aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/api/RecipeDisplay.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/shedaniel/rei/api/RecipeDisplay.java')
-rw-r--r--src/main/java/me/shedaniel/rei/api/RecipeDisplay.java68
1 files changed, 64 insertions, 4 deletions
diff --git a/src/main/java/me/shedaniel/rei/api/RecipeDisplay.java b/src/main/java/me/shedaniel/rei/api/RecipeDisplay.java
index 693712fc6..dd563f01a 100644
--- a/src/main/java/me/shedaniel/rei/api/RecipeDisplay.java
+++ b/src/main/java/me/shedaniel/rei/api/RecipeDisplay.java
@@ -5,10 +5,12 @@
package me.shedaniel.rei.api;
-import com.google.common.collect.Lists;
+import me.shedaniel.rei.api.annotations.ToBeRemoved;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Identifier;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.Optional;
@@ -16,21 +18,79 @@ public interface RecipeDisplay {
/**
* @return a list of items
+ * @see RecipeDisplay#getInputStacks()
*/
- List<List<ItemStack>> getInput();
+ @ToBeRemoved
+ @Deprecated
+ default List<List<ItemStack>> getInput() {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @return a list of inputs
+ */
+ default List<List<EntryStack>> getInputEntries() {
+ List<List<ItemStack>> input = getInput();
+ if (input.isEmpty())
+ return Collections.emptyList();
+ List<List<EntryStack>> list = new ArrayList<>();
+ for (List<ItemStack> stacks : input) {
+ List<EntryStack> entries = new ArrayList<>();
+ for (ItemStack stack : stacks) {
+ entries.add(EntryStack.create(stack));
+ }
+ list.add(entries);
+ }
+ return list;
+ }
/**
* @return a list of outputs
*/
- List<ItemStack> getOutput();
+ @ToBeRemoved
+ @Deprecated
+ default List<ItemStack> getOutput() {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @return a list of outputs
+ */
+ default List<EntryStack> getOutputEntries() {
+ List<ItemStack> input = getOutput();
+ if (input.isEmpty())
+ return Collections.emptyList();
+ List<EntryStack> entries = new ArrayList<>();
+ for (ItemStack stack : input) {
+ entries.add(EntryStack.create(stack));
+ }
+ return entries;
+ }
/**
* Gets the required items used in craftable filters
*
* @return the list of required items
*/
+ default List<List<EntryStack>> getRequiredEntries() {
+ List<List<ItemStack>> input = getRequiredItems();
+ if (input.isEmpty())
+ return Collections.emptyList();
+ List<List<EntryStack>> list = new ArrayList<>();
+ for (List<ItemStack> stacks : input) {
+ List<EntryStack> entries = new ArrayList<>();
+ for (ItemStack stack : stacks) {
+ entries.add(EntryStack.create(stack));
+ }
+ list.add(entries);
+ }
+ return list;
+ }
+
+ @ToBeRemoved
+ @Deprecated
default List<List<ItemStack>> getRequiredItems() {
- return Lists.newArrayList();
+ return Collections.emptyList();
}
/**