/// <summary>
    /// Adds a boulder to the list and the display
    /// </summary>
    /// <param name="boulder"></param>
    public void AddBoulder(Boulder boulder)
    {
        if (!StaticBoulderList.Instance.Add(boulder))
        {
            return;
        }
        GameObject boulderObject = BoulderEntryDisplay.InstanciateListObject(boulder, transform);

        boulderObject.SetActive(toogled && !boulder.pending);
        boulders.Add(boulder, boulderObject);
        OldestDisplay.dirtyBoulders = true;

        SortBoulderEntriesDisplays();
    }
    /// <summary>
    /// Adds a traverse to the list and the display
    /// </summary>
    /// <param name="boulder"></param>
    public void AddTraverse(Traverse traverse)
    {
        if (!StaticTraverseList.Instance.Add(traverse))
        {
            return;
        }
        GameObject traverseObject = BoulderEntryDisplay.InstanciateListObject(traverse, transform);

        traverseObject.SetActive(toogled);
        traverses.Add(traverse, traverseObject);

        SortTraverseEntriesDisplays();
        OldestDisplay.dirtyTraverses = true;
    }
    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 void OnRefresh()
    {
        foreach (Transform child in intersectionsList)
        {
            if (child.gameObject.name == "NoBouldersText")
            {
                continue;
            }
            Destroy(child.gameObject);
        }

        foreach (Traverse traverse in StaticTraverseList.Instance.GetAll())
        {
            BoulderEntryDisplay.InstanciateIntersectionObject(traverse, intersectionsList);
        }
    }