Search in sources :

Example 1 with RecipeCharset

use of pl.asie.charset.lib.recipe.RecipeCharset 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;
}
Also used : Item(net.minecraft.item.Item) RecipeCharset(pl.asie.charset.lib.recipe.RecipeCharset) ItemStackHashSet(pl.asie.charset.lib.utils.ItemStackHashSet) IRecipe(net.minecraft.item.crafting.IRecipe) ArrayList(java.util.ArrayList) List(java.util.List) ArrayList(java.util.ArrayList) ItemStack(net.minecraft.item.ItemStack)

Example 2 with RecipeCharset

use of pl.asie.charset.lib.recipe.RecipeCharset in project Charset by CharsetMC.

the class JEIPluginCharset method register.

@Override
public void register(@Nonnull IModRegistry registry) {
    STACKS = registry.getJeiHelpers().getStackHelper();
    GUIS = registry.getJeiHelpers().getGuiHelper();
    RECIPE_TRANSFER_HANDLERS = registry.getJeiHelpers().recipeTransferHandlerHelper();
    for (IRecipe recipe : ForgeRegistries.RECIPES) {
        if (recipe instanceof RecipeCharset) {
            InventoryCraftingIterator iterator = new InventoryCraftingIterator((RecipeCharset) recipe, false);
            while (iterator.hasNext()) {
                iterator.next();
                if (recipe.matches(iterator, null)) {
                    InventoryCraftingIterator.Container ctr = iterator.contain();
                    registry.addRecipes(Collections.singletonList(ctr), VanillaRecipeCategoryUid.CRAFTING);
                }
            }
        }
    }
    // registry.handleRecipes(RecipeCharset.class, JEIRecipeCharset::create, VanillaRecipeCategoryUid.CRAFTING);
    registry.handleRecipes(InventoryCraftingIterator.Container.class, JEIRecipeContainer::create, VanillaRecipeCategoryUid.CRAFTING);
    registry.handleRecipes(DyeableItemRecipeFactory.Recipe.class, JEIRecipeDyeableItem::create, VanillaRecipeCategoryUid.CRAFTING);
    for (IModPlugin plugin : getPlugins()) {
        plugin.register(registry);
    }
}
Also used : RecipeCharset(pl.asie.charset.lib.recipe.RecipeCharset) IRecipe(net.minecraft.item.crafting.IRecipe) InventoryCraftingIterator(pl.asie.charset.lib.recipe.InventoryCraftingIterator) DyeableItemRecipeFactory(pl.asie.charset.lib.recipe.DyeableItemRecipeFactory)

Aggregations

IRecipe (net.minecraft.item.crafting.IRecipe)2 RecipeCharset (pl.asie.charset.lib.recipe.RecipeCharset)2 ArrayList (java.util.ArrayList)1 List (java.util.List)1 Item (net.minecraft.item.Item)1 ItemStack (net.minecraft.item.ItemStack)1 DyeableItemRecipeFactory (pl.asie.charset.lib.recipe.DyeableItemRecipeFactory)1 InventoryCraftingIterator (pl.asie.charset.lib.recipe.InventoryCraftingIterator)1 ItemStackHashSet (pl.asie.charset.lib.utils.ItemStackHashSet)1