Resolves one part of
https://github.com/ppy/osu/discussions/32568#discussioncomment-12612928
A few caveats:
- Layout is slightly different than web intentionally. Web does things
that I think will be difficult to reproduce or just plain look bad in
client, such as:
- On web, the metadata info box has 200px min height and 300px max
height. I just hardcoded 300 units.
- On web, user tags and mapper tags are individually scrollable, and
the amount of space taken up by each is calculated in a way that
is - as far as I can tell - indeterminate, and probably influenced
by some flexbox magic. I just made the entire thing scrollable
instead.
- Because song select shares controls with the beatmap set overlay, now
song select says "Mapper Tags" in the header instead of just "Tags"
too. I think this is fine, because people asked for user tags to be
shown in song select too.
- Search query syntax lifted from
https://github.com/ppy/osu-web/pull/12047.
- Using hardcoded English strings for now, will update to the
translations after the next osu-resources localisations update.
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?????