aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/api/EntryStack.java
diff options
context:
space:
mode:
authorSebastian Hartte <sebastian@hartte.de>2020-07-12 23:30:27 +0200
committerSebastian Hartte <sebastian@hartte.de>2020-07-12 23:36:38 +0200
commit3de9a6a1b94b1fcbc188aed879e381b937cfe65c (patch)
tree9ecb8ad8e20786ebf69b547577a744645d71100e /src/main/java/me/shedaniel/rei/api/EntryStack.java
parent627b2524ee1111a020a38928818858cd8f1bd804 (diff)
downloadRoughlyEnoughItems-3de9a6a1b94b1fcbc188aed879e381b937cfe65c.tar.gz
RoughlyEnoughItems-3de9a6a1b94b1fcbc188aed879e381b937cfe65c.tar.bz2
RoughlyEnoughItems-3de9a6a1b94b1fcbc188aed879e381b937cfe65c.zip
Adds convenience methods to convert from Ingredient and Lists of ItemStacks directly to equivalent EntryStacks.
Diffstat (limited to 'src/main/java/me/shedaniel/rei/api/EntryStack.java')
-rw-r--r--src/main/java/me/shedaniel/rei/api/EntryStack.java35
1 files changed, 30 insertions, 5 deletions
diff --git a/src/main/java/me/shedaniel/rei/api/EntryStack.java b/src/main/java/me/shedaniel/rei/api/EntryStack.java
index 3f2c3490d..a963f4274 100644
--- a/src/main/java/me/shedaniel/rei/api/EntryStack.java
+++ b/src/main/java/me/shedaniel/rei/api/EntryStack.java
@@ -32,7 +32,6 @@ import me.shedaniel.rei.api.widgets.Tooltip;
import me.shedaniel.rei.impl.EmptyEntryStack;
import me.shedaniel.rei.impl.FluidEntryStack;
import me.shedaniel.rei.impl.ItemEntryStack;
-import me.shedaniel.rei.utils.CollectionUtils;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.resource.language.I18n;
@@ -43,15 +42,16 @@ import net.minecraft.item.ItemConvertible;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.StringNbtReader;
-import net.minecraft.text.LiteralText;
+import net.minecraft.recipe.Ingredient;
import net.minecraft.text.Text;
-import net.minecraft.util.Formatting;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.registry.Registry;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
@@ -81,11 +81,36 @@ public interface EntryStack extends TextRepresentable {
static EntryStack create(ItemStack stack) {
return new ItemEntryStack(stack);
}
-
+
static EntryStack create(ItemConvertible item) {
return create(new ItemStack(item));
}
-
+
+ static List<EntryStack> create(Collection<ItemStack> stacks) {
+ List<EntryStack> result = new ArrayList<>(stacks.size());
+ for (ItemStack stack : stacks) {
+ result.add(create(stack));
+ }
+ return result;
+ }
+
+ static List<EntryStack> create(Ingredient ingredient) {
+ ItemStack[] matchingStacks = ingredient.getMatchingStacksClient();
+ List<EntryStack> result = new ArrayList<>(matchingStacks.length);
+ for (ItemStack matchingStack : matchingStacks) {
+ result.add(create(matchingStack));
+ }
+ return result;
+ }
+
+ static List<List<EntryStack>> create(List<Ingredient> ingredients) {
+ List<List<EntryStack>> result = new ArrayList<>(ingredients.size());
+ for (Ingredient ingredient : ingredients) {
+ result.add(create(ingredient));
+ }
+ return result;
+ }
+
@ApiStatus.Internal
static EntryStack readFromJson(JsonElement jsonElement) {
try {