package ttftcuts.physis.client.gui.journal; import java.util.ArrayList; import java.util.List; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import ttftcuts.physis.Physis; import ttftcuts.physis.client.gui.journal.PageDefs.Category; import ttftcuts.physis.common.PhysisItems; import ttftcuts.physis.common.helper.recipe.IRecipeComponentTranslator; import ttftcuts.physis.common.helper.recipe.RecipeHelper; import ttftcuts.physis.common.item.ItemTrowel; public class JournalArticleTrowels extends JournalArticle { public JournalArticleTrowels(String title, Category cat, JournalPage... args) { super(title, cat, args); } @Override public List<JournalPage> getPages() { List<JournalPage> modified = new ArrayList<JournalPage>(); modified.addAll(super.getPages()); modified.add(new JournalPageCraftingRecipe(new ItemStack(Blocks.carpet))); Item titem = PhysisItems.trowel; List<ItemStack> trowels = new ArrayList<ItemStack>(); titem.getSubItems(titem, titem.getCreativeTab(), trowels); for (ItemStack troweltype : trowels) { List<Object> recipes = new ArrayList<Object>(); ItemStack[] handlevariants = ((ItemTrowel)titem).getHandleVariantsForStack(troweltype); Object recipe = RecipeHelper.getRecipe(troweltype); if (recipe == null) { continue; } IRecipeComponentTranslator translator = RecipeHelper.getTranslatorForRecipe(recipe); if (translator == null) { continue; } for (ItemStack trowel : handlevariants) { Object hrecipe = RecipeHelper.getRecipe(trowel); if (hrecipe == null) { continue; } IRecipeComponentTranslator htranslator = RecipeHelper.getTranslatorForRecipe(hrecipe); if (htranslator == translator) { recipes.add(hrecipe); Physis.logger.info("Adding trowel recipe for "+trowel.getDisplayName()+", wool colour: "+trowel.getTagCompound().getInteger(ItemTrowel.HANDLETAG)); } } JournalPage page = translator.getJournalRecipePage(recipes.toArray()); if (page != null) { modified.add(page); } } return modified; } }