diff options
| author | Sebastian Hartte <sebastian@hartte.de> | 2020-07-12 23:30:27 +0200 |
|---|---|---|
| committer | Sebastian Hartte <sebastian@hartte.de> | 2020-07-12 23:36:38 +0200 |
| commit | 3de9a6a1b94b1fcbc188aed879e381b937cfe65c (patch) | |
| tree | 9ecb8ad8e20786ebf69b547577a744645d71100e /src/main/java/me/shedaniel/rei/api/EntryStack.java | |
| parent | 627b2524ee1111a020a38928818858cd8f1bd804 (diff) | |
| download | RoughlyEnoughItems-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.java | 35 |
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 { |
