Closes https://github.com/ppy/osu/issues/31038.
If you don't realise why this does anything, realise this: the drawable
creation callback runs for every created sprite text in the text flow.
ANd the created sprite texts are split by whitespace. And Russian /
Ukrainian / Polish etc. use spaces as thousands separators.
So on those languages the first encountered part of the score would
duplicate itself to the remaining parts.
I'm actively convinced it was _more difficult_ to produce what was in
place in `master` than to do it properly. Why did `TextColumn` even have
`LocalisableString Text` and `Bindable<string> Current` next to each
other?????
Also makes the mod display initialization sequence (start expanded, then
unexpand) controlled by HUDOverlay rather than mod display itself. This
enabled different treatment depending on whether the mod display is
viewed in the skin editor or in the player.
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
Better symbolises the intent of this generator which is to convert
hitobjects in their most simple forms - anything with an end time
converts to a hold or otherwise converts to a normal note.
A big part of these changes is refactoring, which is somewhat necessary
because it was previously implemented as two separate pathways which
in-fact need to be joined at the hip when handling spinners.
I've chosen to use `IHasLegacyHitObjectType` here because there's no
other flag that allows us to tell `ConvertHold` apart from
`ConvertSpinner`.