// Eats the found food and adds to character hunger
    IEnumerator EatFood(BuildingParts.FoodStores food, GameObject foodStore)
    {
        yield return(new WaitForSeconds(2));

        switch (food)
        {
        case BuildingParts.FoodStores.Bread:
        {
            characterStats.currentHunger += 30;
        }
        break;

        case BuildingParts.FoodStores.None:
        {
            characterStats.currentHunger = 100;
            Debug.LogError("Food eaten by " + gameObject + " was " + food);
        }
        break;
        }
        characterStats.currentTask = characterStats.idleTask;
        foodStore.GetComponent <BuildingPartsData>().inUse = false;
        foodFound = BuildingParts.FoodStores.None;
        buildingOwned.GetComponent <BuildingStats>().foodStores[0] = BuildingParts.FoodStores.None;
        isBusy     = false;
        isStarving = false;
    }
    // Check if the character needs to eat
    void CheckFood()
    {
        if (hasHome && buildingOwned.GetComponent <BuildingStats>().foodStores[0] != BuildingParts.FoodStores.None)
        {
            // Character will eat if hungry and doing nothing, and forces the character to go to eat if they are starving
            if ((characterStats.currentHunger <= 50 && isDoingHobby) ||
                (characterStats.currentHunger <= 30 && characterStats.currentTask != CharacterTasks.CurrentTask.Eating))
            {
                if (characterStats.currentHunger <= 30)
                {
                    isStarving = true;
                }

                // Looks for food storage in the building that is not already in use
                for (int i = 0; i < buildingOwned.GetComponent <BuildingStats>().buildingArea.Length; i++)
                {
                    if (buildingOwned.GetComponent <BuildingStats>().furnitureType[i] == BuildingParts.FurnitureType.FoodStorage)
                    {
                        if (!buildingOwned.transform.GetChild(i).GetComponent <BuildingPartsData>().inUse)
                        {
                            characterStats.nav.destination = new Vector3(buildingOwned.transform.GetChild(i).transform.position.x +
                                                                         buildingOwned.transform.GetChild(i).GetComponent <ObjectNavOffset>().customerNavOffset.x,
                                                                         0,
                                                                         buildingOwned.transform.GetChild(i).transform.position.z +
                                                                         buildingOwned.transform.GetChild(i).GetComponent <ObjectNavOffset>().customerNavOffset.y);
                            foodFound = buildingOwned.GetComponent <BuildingStats>().foodStores[0];
                            isBusy    = true;
                            characterStats.currentTask = CharacterTasks.CurrentTask.Eating;
                            buildingOwned.transform.GetChild(i).GetComponent <BuildingPartsData>().inUse = true;
                            foodStore = buildingOwned.transform.GetChild(i).gameObject;
                            foundFood = true;
                            break;
                        }
                    }
                }
            }

            // Starts eating food once the character reaches the food storage
            if (foundFood)
            {
                if (new Vector3(transform.position.x, 0, transform.position.z) ==
                    new Vector3(characterStats.nav.destination.x, 0, characterStats.nav.destination.z))
                {
                    StartCoroutine(EatFood(foodFound, foodStore));
                    foundFood = false;
                }
            }
        }
    }