1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-15 23:23:04 +08:00
Commit Graph

439 Commits

Author SHA1 Message Date
Dean Herbert
1f0ad5cff2
Apply same fix in more places 2024-01-22 15:56:16 +09:00
Dean Herbert
74f05a5c4b
Use container itself rather than ScrollContent 2024-01-22 15:54:24 +09:00
Andrei Zavatski
cec4f670d1 Reduce allocation overhead in BeatmapCarousel 2024-01-22 03:12:23 +03:00
Dean Herbert
81c6fd5589
Load items closer to the centre of the screen as a priority 2024-01-04 19:25:12 +09:00
Dean Herbert
adac3b65ce
Fix beatmap carousel not preloading panels when off-screen 2024-01-04 19:25:12 +09:00
Nathan Tran
060bf8beff Fix rewind backtracking 2023-12-25 15:27:32 -08:00
Dean Herbert
7fa4dcf0fb
Fix selection retention logic copy paste failure 2023-12-20 19:27:57 +09:00
Dean Herbert
e003462f7d
Fix beatmap updates causing one extra carousel selection 2023-12-20 19:15:02 +09:00
Dean Herbert
64f62e7d90
Fix song select running updates when screen is not active
Who would have guessed that `Schedule` calls were there for a reason!

I've tidied things up. Most of the changes I've made here are not
required – the schedule is the main thing here. The reason the sound was
playing is because one-too-many schedules was removed causing beatmap
updates to update carousel specifics while still at the player loader
screen.

Note that the selection sound still plays on returning to song select,
but this is not a regression. I'm looking at fixing this in a separate
PR because I'm in a good place as far as understanding the logic right
now and it would be a waste to leave it broken.

Closes https://github.com/ppy/osu/issues/25875.
2023-12-20 17:31:09 +09:00
Dean Herbert
502e3edac3
Add missing invalidation call 2023-12-19 19:39:48 +09:00
Dean Herbert
8f5d21dc70
Actually fix realm selection retention regression 2023-12-19 18:10:55 +09:00
Dean Herbert
7e9c1b2acb
Use sender's realm (because we can) 2023-12-19 17:27:52 +09:00
Dean Herbert
25e3a8e82e
Fix a few of silly issues 2023-12-18 22:45:58 +09:00
Dean Herbert
5755fa214a
Cache non-filtered beatmap counts to massively improve count performance 2023-12-18 20:44:08 +09:00
Dean Herbert
6fa1f5ef9b
Simplify invalidation logic
The only case where this was checking is guaranteed by realm to only be called once.
2023-12-18 20:31:02 +09:00
Dean Herbert
87b7699fcc
Avoid calling invalidation logic per beatmap set updated
Realm will batch the updates. We don't want to do expensive operations per set when we don't need to.
2023-12-18 20:31:02 +09:00
Dean Herbert
32cc3f9ef7
Combine multiple similar invalidation logic into single event 2023-12-18 20:31:02 +09:00
Dean Herbert
137a1d948d
Allow interacting with the carousel anywhere in empty space at song select 2023-10-20 20:04:11 +09:00
Bartłomiej Dach
63e92f8fab
Fix status on carousel beatmap set not showing in split difficulty mode 2023-09-06 08:25:19 +02:00
Bartłomiej Dach
b9795eb3d4
Fix changes to beatmap sets being undone on switching sort mode 2023-08-28 11:02:22 +02:00
Bartłomiej Dach
80ec18d117
Fix incorrect selection restore code in split case
The fallback to "any of the added sets" needs to be applied after
they've all been added, rather than with every added one. Otherwise, in
flows that expect a particular difficulty to be selected in the end
(such as exiting from editor) would end up switching away from the
edited beatmap.
2023-08-28 10:06:26 +02:00
Bartłomiej Dach
0af6cc1394
Fix online ID not being propagated in split difficulty mode
Would result in failures to re-download the beatmap in update flows, for
instance.
2023-08-28 10:05:59 +02:00
Dean Herbert
10b1450138 Rename remove method to better explain return type being IEnumerable 2023-08-25 18:10:54 +09:00
Dean Herbert
89eeff515b Reduce complexity of selection restore 2023-08-25 00:52:54 +09:00
Dean Herbert
9e94f38091 Fix typo in local variable 2023-08-24 18:33:15 +09:00
Dean Herbert
018be4c20f Fix selection not being retained when switching between split mode 2023-08-22 18:49:02 +09:00
Dean Herbert
ecbf0f138e Fix incorrect handling when new beatmaps arrive 2023-08-22 18:48:07 +09:00
Dean Herbert
2b1c6ae612 Ensure ID is maintained in temporary BeatmapSetInfos 2023-08-22 18:48:07 +09:00
Dean Herbert
290d18ad69 Split out difficulties in beatmap carousel in a bit of a hacky way
Seems like the simplest path forward for now, without a full rewrite.
2023-08-22 18:47:41 +09:00
Dean Herbert
a98a36872e Bring realm library up-to-date 2023-07-06 13:37:43 +09:00
Salman Ahmed
39db17d2e9 Use better method to avoid rewinding to deleted beatmaps 2023-06-15 11:22:11 +03:00
Renzo Poggio
0991c56e1c
Add extra check in 'SelectPreviousRandom'
Check if the poped beatmap exists within the beatmapSets
2023-04-25 00:05:15 -03:00
Joseph Madamba
f80de08f24
Adjust BeatmapSetsChanged xmldoc
Co-Authored-By: Dean Herbert <pe@ppy.sh>
2023-04-10 11:28:23 -07:00
Joseph Madamba
c7dea71793
Use existing BeatmapSetsChanged action 2023-04-10 11:26:18 -07:00
Joseph Madamba
7f5b99c91b
Fix song select beatmap difficulty count not updating when deleting 2023-04-09 22:12:51 -07:00
Dean Herbert
dc669835e2 Show count of visible beatmaps at song select 2023-03-03 15:28:51 +09:00
Dean Herbert
4ad79a8a0a Move IsLoaded check inside BeatmapCarousel 2023-01-18 12:00:47 +09:00
Dean Herbert
93038ce496 Use OfType instead of forceful nullability 2023-01-10 17:52:21 +09:00
mk56-spn
6abbc7dc28 Further fix nullability 2023-01-09 20:59:28 +01:00
mk56-spn
69260ca3c3 remove unnecessary usages of nullable forgiveness, add asserts for debugging 2023-01-09 18:36:55 +01:00
mk56-spn
47fb467012 Remove nullable disabling in carousel 2023-01-08 19:02:48 +01:00
Dan Balasescu
7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
Bartłomiej Dach
7b274083d3
Fix phantom beatmap sets appearing on carousel after delete/update
Regressed in c40c70509e.

As it turns out, `item.Item.Filtered.Value` is not the only condition
that should be checked to determine if a carousel item should be hidden
or not - `item.Item.State.Value != CarouselItemState.Collapsed` should
also be true. This was even available as the `item.Item.Visible`
convenience property, which is used in this commit.

Failing to check `item.Item.State.Value` led to setting non-zero alpha
on collapsed carousel items, leading to phantom beatmap sets appearing,
as the alpha was set in the entire carousel's `Update()` method, thus
firing every frame.
2022-11-20 10:08:34 +01:00
Dean Herbert
c40c70509e Improve song select transition to gameplay 2022-11-04 15:24:37 +09:00
Endrik Tombak
5a118cfdc3 Merge branch 'master' of https://github.com/ppy/osu into carousel-perform-selection
 Conflicts:
	osu.Game.Tests/Visual/SongSelect/TestSceneBeatmapCarousel.cs
2022-10-24 21:40:48 +03:00
Dean Herbert
f3bda4e040 Fix weird edge case of nullability in CarouselRoot
A bit unfortunately, but it's what we get for having ctor level bindings..
2022-09-07 14:27:25 +09:00
Dean Herbert
e18b524f8e Fix missing null checks on selectedBeatmap fields in BeatmapCarousel 2022-09-07 14:12:35 +09:00
Dean Herbert
241d33d415 Apply NRT to BeatmapCarousel 2022-09-07 14:07:53 +09:00
Salman Ahmed
a3e595a9aa Update comment to include inserted indices 2022-08-26 14:51:19 +03:00
Salman Ahmed
81c0a641b4 Fix selection fallback path not updated to check inserted indices 2022-08-26 14:51:08 +03:00