public static bool CanCraft(MaterialInventory inventory, CraftingRecipe craftingRecipe) { bool can = true; MaterialInventory recipe = new MaterialInventory(craftingRecipe.Materials, craftingRecipe.MaterialAmounts); for (int i = 0; i < craftingRecipe.Materials.Count; i++) { if (!(inventory.GetItemCount(craftingRecipe.Materials[i]) >= recipe.GetItemCount(craftingRecipe.Materials[i]))) { // We don't have enough of a certain material, and so we set the return value to false can = false; } } return(can); }