private void clickCraftingRecipe(ClickableTextureComponent c, bool playSound = true) { Item crafted = pagesOfCraftingRecipes[currentCraftingPage][c].createItem(); List <KeyValuePair <int, int> > seasoning = null; if (cooking && crafted is Object && (crafted as Object).Quality == 0) { seasoning = new List <KeyValuePair <int, int> >(); seasoning.Add(new KeyValuePair <int, int>(917, 1)); if (CraftingRecipe.DoesFarmerHaveAdditionalIngredientsInInventory(seasoning, getContainerContents())) { (crafted as Object).Quality = 2; } else { seasoning = null; } } if (heldItem == null) { pagesOfCraftingRecipes[currentCraftingPage][c].consumeIngredients(_materialContainers); heldItem = crafted; if (playSound) { Game1.playSound("coin"); } } else { if (!heldItem.Name.Equals(crafted.Name) || !heldItem.getOne().canStackWith(crafted.getOne()) || heldItem.Stack + pagesOfCraftingRecipes[currentCraftingPage][c].numberProducedPerCraft - 1 >= heldItem.maximumStackSize()) { return; } heldItem.Stack += pagesOfCraftingRecipes[currentCraftingPage][c].numberProducedPerCraft; pagesOfCraftingRecipes[currentCraftingPage][c].consumeIngredients(_materialContainers); if (playSound) { Game1.playSound("coin"); } } if (seasoning != null) { if (playSound) { Game1.playSound("breathin"); } CraftingRecipe.ConsumeAdditionalIngredients(seasoning, _materialContainers); if (!CraftingRecipe.DoesFarmerHaveAdditionalIngredientsInInventory(seasoning, getContainerContents())) { Game1.showGlobalMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Seasoning_UsedLast")); } } Game1.player.checkForQuestComplete(null, -1, -1, crafted, null, 2); if (!cooking && Game1.player.craftingRecipes.ContainsKey(pagesOfCraftingRecipes[currentCraftingPage][c].name)) { Game1.player.craftingRecipes[pagesOfCraftingRecipes[currentCraftingPage][c].name] += pagesOfCraftingRecipes[currentCraftingPage][c].numberProducedPerCraft; } if (cooking) { Game1.player.cookedRecipe(heldItem.parentSheetIndex); } if (!cooking) { Game1.stats.checkForCraftingAchievements(); } else { Game1.stats.checkForCookingAchievements(); } if (Game1.options.gamepadControls && heldItem != null && Game1.player.couldInventoryAcceptThisItem(heldItem)) { Game1.player.addItemToInventoryBool(heldItem); heldItem = null; } }