This includes several improvements related to selection and animations:
AnimationEditor remembers the handles of the most recently selected AnimationPlayer and Animation so that it can continue to treat them as if they are currently selected, even while the user may be selecting other things. This involved adding two additional fields to AnimationEditor and modifying fetch_selection.
The animation curve editor is now enabled whenever an animation is selected, since there may potentially be visible curves even if no curve is selected.
Instead of checking whether the selection is empty, the inspector now always tries first_selected_entity and clears itself if no entity is found. This allows first_selected_entity to potentially find entities to inspect even in empty selections, especially when the selection is an AnimationSelection with an empty item list. The inspector can keep inspecting the AnimationPlayer in spite of the selection being empty.
The CurveEditor can now show curves that are not currently being edited. I have called these "background curves," since they serve as references for the user while editing other curves and signals. Background curves are uncolored and do not have handles.
Fixed bug in is_slice_equal_permutation which was affecting when the selection was recognized as having changed. Added tests to ensure that is_slice_equal_permutation is working correctly.
Made it so that PartialEq for Selection recognizes None == None. I presume this is how it was intended to work.
This includes several improvements related to selection and animations:
fetch_selection
.first_selected_entity
and clears itself if no entity is found. This allowsfirst_selected_entity
to potentially find entities to inspect even in empty selections, especially when the selection is an AnimationSelection with an empty item list. The inspector can keep inspecting the AnimationPlayer in spite of the selection being empty.is_slice_equal_permutation
which was affecting when the selection was recognized as having changed. Added tests to ensure thatis_slice_equal_permutation
is working correctly.