public override void OnInspectorGUI()
        {
            base.OnInspectorGUI();

            BulletPoint bulletPointList = target as BulletPoint;

            if (GUILayout.Button("Update All Points", GUILayout.Height(25)))
            {
                foreach (BulletPointItem item in bulletPointList.GetComponentsInChildren <BulletPointItem>())
                {
                    item.Color = bulletPointList.textColor;
                    item.Size  = bulletPointList.textSize;
                }
            }

            EditorGUILayout.Space();
            EditorGUILayout.LabelField("Add new items", EditorStyles.boldLabel);

            EditorGUILayout.LabelField("To add a new bullet point write the content in the text area below and press the \"Add to list\" button");
            EditorStyles.label.wordWrap    = true;
            EditorStyles.textArea.wordWrap = true;

            newItemText = EditorGUILayout.TextArea(newItemText, GUILayout.MinHeight(100));

            if (GUILayout.Button("Add to list", GUILayout.Height(25)))
            {
                bulletPointList.AddBulletPoint(newItemText);
                Debug.Log(newItemText);
            }
            EditorGUILayout.HelpBox("The added bullet point will use the color and size as typed above.", MessageType.Warning);
        }
    private void SpawnRecipes(bool active)
    {
        ClearRecipesOnScreen();
        List <Recipe> recipes = active ? RecipeManager.Instance.ActiveRecipes.Select(r => r.Recipe).ToList() : RecipeManager.Instance.InactiveRecipes;

        foreach (Recipe recipe in recipes)
        {
            var obj = Instantiate(recipePrefab, container).transform;
            UI.ChildText(obj, "Name", recipe.recipeName);
            UI.ChildText(obj, "EstimatedCost", "Estimated cost: <b>" + recipe.Cost + "$</b>");
            BulletPoint.BulletPoint list = obj.Find("List").GetComponent <BulletPoint.BulletPoint> ();
            for (int i = 0; i < recipe.ingredients.Count; i++)
            {
                list.AddBulletPoint(recipe.ingredients[i].ingredientName + " <i><color=#FFB8B2>x" + recipe.ingredientAmount[i] + "</color></i>");
            }
            Button button = obj.Find("Button").GetComponent <Button>();
            if (active)
            {
                TMP_InputField priceField = obj.Find("Price").GetComponent <TMP_InputField>();
                priceField.placeholder.GetComponent <TextMeshProUGUI>().text = "Price: " + RecipeManager.Instance.ActiveRecipes.Find(r => r.Recipe == recipe).Price.ToString() + "$";
                priceField.onEndEdit.AddListener((string cost) => EditPrice(recipe, cost));
                UI.ChildText(button.transform, 0, "Remove");
                button.onClick.AddListener(() =>
                {
                    RecipeManager.Instance.DeleteActiveRecipe(recipe);
                    Destroy(obj.gameObject);
                });
            }
            else
            {
                button.onClick
                .AddListener(() =>
                {
                    float price = 0;
                    try
                    {
                        price = float.Parse(obj.Find("Price").GetComponent <TMPro.TMP_InputField>().text);
                    }
                    catch (System.Exception)
                    {
                        UI.Instance.OpenErrorScreen("The entered price is invalid");
                        return;
                    }
                    RecipeManager.ActiveRecipe addRecipe = new RecipeManager.ActiveRecipe(recipe, price);
                    RecipeManager.Instance.AddActiveRecipe(addRecipe);
                    Destroy(obj.gameObject);
                });
            }
        }
    }