/******************************************************************************* * AbyssalCraft * Copyright (c) 2012 - 2017 Shinoow. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v3 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/lgpl-3.0.txt * * Contributors: * Shinoow - implementation ******************************************************************************/ package com.shinoow.abyssalcraft.integration.jei.engraver; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; import javax.annotation.Nonnull; import net.minecraft.item.ItemStack; import com.shinoow.abyssalcraft.api.item.ACItems; import com.shinoow.abyssalcraft.api.recipe.EngraverRecipes; public class EngravingRecipeMaker { @Nonnull public static List<EngravingRecipeWrapper> getEngraverRecipes() { EngraverRecipes engraverRecipes = EngraverRecipes.instance(); Map<ItemStack, ItemStack> engravingMap = getEngravingMap(engraverRecipes); List<EngravingRecipeWrapper> recipes = new ArrayList<>(); for (Map.Entry<ItemStack, ItemStack> itemStackItemStackEntry : engravingMap.entrySet()) { ItemStack engraving = itemStackItemStackEntry.getKey(); ItemStack output = itemStackItemStackEntry.getValue(); float experience = engraverRecipes.getExperience(output); List<ItemStack> inputs = new ArrayList(); if(output.getItem() == ACItems.coin){ inputs = engraverRecipes.getCoinList(); for(ItemStack stack : inputs) if(stack.getItem() == ACItems.coin){ inputs.remove(stack); break; } } else inputs = Collections.singletonList(new ItemStack(ACItems.coin)); EngravingRecipeWrapper recipe = new EngravingRecipeWrapper(inputs, engraving, output, experience); recipes.add(recipe); } return recipes; } @SuppressWarnings("unchecked") private static Map<ItemStack, ItemStack> getEngravingMap(@Nonnull EngraverRecipes engraverRecipes) { return engraverRecipes.getEngravingList(); } }