use of pl.asie.charset.lib.utils.ItemStackHashSet in project Charset by CharsetMC.
the class SubItemProviderRecipes method createItemSets.
@Override
protected List<List<ItemStack>> createItemSets() {
List<List<ItemStack>> list = new ArrayList<>();
Item item = itemSupplier.get();
if (group == null) {
group = item.getRegistryName().toString();
}
ItemStackHashSet stackSet = new ItemStackHashSet(false, true, true);
for (IRecipe recipe : ForgeRegistries.RECIPES) {
if ((group == null || group.equals(recipe.getGroup())) && !recipe.getRecipeOutput().isEmpty() && recipe.getRecipeOutput().getItem() == item) {
if (recipe instanceof RecipeCharset) {
for (ItemStack s : ((RecipeCharset) recipe).getAllRecipeOutputs()) {
if (stackSet.add(s)) {
List<ItemStack> stacks = createSetFor(s);
if (stacks != null && stacks.size() > 0)
list.add(stacks);
}
}
} else {
ItemStack s = recipe.getRecipeOutput();
if (stackSet.add(s)) {
List<ItemStack> stacks = createSetFor(s);
if (stacks != null && stacks.size() > 0)
list.add(stacks);
}
}
}
}
return list;
}
use of pl.asie.charset.lib.utils.ItemStackHashSet in project Charset by CharsetMC.
the class RecipeCharset method getAllRecipeOutputs.
public Collection<ItemStack> getAllRecipeOutputs() {
InventoryCraftingIterator inventoryCrafting = new InventoryCraftingIterator(this, true);
ItemStackHashSet stackSet = new ItemStackHashSet(true, true, true);
List<ItemStack> stacks = new ArrayList<>();
InventoryCraftingIterator it = inventoryCrafting;
while (it.hasNext()) {
InventoryCrafting ic = it.next();
ItemStack stack = getCraftingResult(ic);
if (!stack.isEmpty() && stackSet.add(stack)) {
stacks.add(stack);
}
}
return stacks;
}
Aggregations