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 BeatmapSetInfo
s
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
Dean Herbert
a146db0e35
Merge branch 'master' into carousel-perform-selection
2022-08-26 19:29:00 +09:00
Dean Herbert
9d2c2b71cf
Change conditional to check for insertions in addition to modifications
...
It is possible that the import process itself marks the previous
beatmaps as deleted due to an overlap in metadata or otherwise.
2022-08-16 16:21:36 +09:00
Dean Herbert
e6a3659581
Guard against NewModifiedIndices
being empty
2022-07-27 14:23:47 +09:00
Dean Herbert
24d75612e2
Always attempt to follow selection, even if difficulty name / metadata change
2022-07-27 14:18:53 +09:00
Dean Herbert
8105d4854a
Fix beatmap carousel not maintaining selection if currently selected beatmap is updated
2022-07-27 13:33:48 +09:00