public static void GenerateNewContracts()
    {
        // Debug.Log("To Remove Count: " + contractsToRemove.Count);
        if (contractsToRemove.Count > 0)
        {
            for (int i = contractsToRemove.Count - 1; i >= 0; i--)
            {
                if (contractsToRemove[i] <= availableContracts.Count - 1)
                {
                    // Debug.Log("Remove Index: " + contractsToRemove[i] + " | Loop Index: " + i);
                    availableContracts.RemoveAt(contractsToRemove[i]);
                }
            }
            contractsToRemove.Clear();
        }

        totalNumberToDisplay = PlayerRooms.GetKitchenRoomValue();
        freeContractSpaces   = totalNumberToDisplay - availableContracts.Count;

        for (int j = 0; j < freeContractSpaces; j++)
        {
            int            difficulty = GenerateDifficulty();
            LumberContract toAdd      = new LumberContract(difficulty);

            // Debug.Log("C" + j + ": " + toAdd.GetDifficulty().difficulty + ", " + toAdd.GetDifficulty().GetQualityGradeInt());

            availableContracts.Add(toAdd);
        }

        if (SceneManager.GetActiveScene().name.Equals("MainCabin"))
        {
            AvailableContractsReference.PopulateCanvasObjcets();
        }
    }
    public void PopulateCanvasObjcets()
    {
        totalNumberToDisplay = PlayerRooms.GetKitchenRoomValue();

        for (int i = 0; i < contractsContent.childCount; i++)
        {
            contractsContent.GetChild(i).gameObject.SetActive(i < totalNumberToDisplay);
        }

        //This shows newest contracts last. consider starting at end of list and going backward to show newest first
        // Debug.Log("Available Count: " + availableContracts.Count);
        // Debug.Log("Available Total Display: " + totalNumberToDisplay);
        for (int j = 0; j < totalNumberToDisplay; j++)
        {
            // Debug.Log("Available Populate Index: " + j);
            contractsContent.GetChild(j).GetChild(0).GetComponent <Text>().text = availableContracts[j].GetCompletionDeadline().ToString();
            contractsContent.GetChild(j).GetChild(1).GetComponent <Text>().text = "Quality Grade: " + availableContracts[j].GetRequiredLumber().GetTreeGrade();
            contractsContent.GetChild(j).GetChild(2).GetComponent <Text>().text = availableContracts[j].GetRequiredLumber().StringWithoutQuality();
            contractsContent.GetChild(j).GetChild(3).GetComponent <Text>().text = availableContracts[j].GetPayout().ToString();

            contractsContent.GetChild(j).GetChild(6).GetComponent <Button>().interactable = (availableContracts[j].GetStatus() == ContractStatus.AVAILABLE);
            contractsContent.GetChild(j).GetChild(7).GetComponent <Button>().interactable = (availableContracts[j].GetStatus() == ContractStatus.AVAILABLE);
        }
    }