// Selection handling //
    public void OnChildShelfSelected(ShelfGenerator shg)
    {
        if (!selected)
        {
            SetSelected();
        }

        // Clear previously selected child
        if (child_selected != null && child_selected != shg)
        {
            child_selected.ClearSelected();
        }
        child_selected = shg;
    }