I'd have preferred a `get; init;` property but tests were also attached
at the hip to the public bindable. Without some extra composition this
is the best that I can do.
The original `IEnumerable` flow prioritised slight performance gains,
but a filter's implementation could actually make this detrimental to
overall performance.
I noticed in passing that there were already potentially multiple
enumerations, via `updateYPositions` and the final `ToList` call. Rather
than faffing around, let's keep things simple and require lists.
In benchmarking, the difference is (currently) negiligible. Slight
improvement if anything.
The new background now briefly fades in. The reason we didn't do this to
date is that there could be a perceived decrease in brightness as the old
and new background transition through opacity.
But a quick fade in, it doesn't seem to cause any visual artifacting.
I've also added a scale effect because it felt quite nice. Willing to
pull that if anyone has an issue with it, but it's a step in the
direction of "adding more motion to song select", which is still an area
I see lacking greatly – even compared to stable.
Fixes startup sounds from potentially being fetched from the wrong
source if API connection establishment takes longer than the intro
screen takes to load.
Closes https://github.com/ppy/osu/issues/22492.
Addresses concerns in https://github.com/ppy/osu/discussions/24226.
I basically adjusted opacity down until it started to visually detract
from the skin. The pro level is lower than I'd want to see, but feels
like a midpoint that some users may find usable.
This is a band-aid fix until we can get proper support for settings like
this into the skin editor.
Mods don't necessarily have to change speed, to change beatmap attributes. Also, speed mods don't affect beatmap attributes in mania, making the text misleading.
This intentionally removes shear specification from root level of
`BeatmapTitleWedge` since shearing is moved one level higher (see fill
flow containing `BeatmapTitleWedge` in `SongSelect`).