/// <summary>
    /// Update the traverse data and displays
    /// </summary>
    /// <param name="boulder"></param>
    public void EditTraverse(Traverse traverse)
    {
        StaticTraverseList.Edit(traverse);
        GameObject traverseObject = traverses[traverse];

        traverses.Remove(traverse);
        traverses.Add(traverse, traverseObject);

        traverseObject.GetComponent <BoulderEntryDisplay>().Setup(traverse);
        OldestDisplay.dirtyTraverses = true;
    }
    /// <summary>
    /// Sort the list of traverses for a difficulty
    /// </summary>
    private void SortTraverseEntriesDisplays()
    {
        TraverseListHelper sortedTraverses = (TraverseListHelper)StaticTraverseList.GetByDifficulty(difficulty);

        for (int i = 0; i < sortedTraverses.Count; i++)
        {
            traverses.TryGetValue(sortedTraverses[i], out GameObject traverseObject);
            if (traverseObject == null)
            {
                continue;
            }
            traverseObject.transform.SetSiblingIndex(i + 1);
        }
    }
    public void DirtyTraverses()
    {
        foreach (Transform transform in oldestList.transform)
        {
            Destroy(transform.gameObject);
        }

        foreach (Traverse traverse in StaticTraverseList.GetLastDate())
        {
            BoulderEntryDisplay.InstanciateListObject(traverse, oldestList.transform).GetComponent <Button>().interactable = false;
        }
        LayoutRebuilder.ForceRebuildLayoutImmediate(oldestList.GetComponent <RectTransform>());
        dirtyTraverses = false;
    }
 public List <Traverse> GetTraverses()
 {
     return(StaticTraverseList.GetByDifficulty(difficulty));
 }