Dean Herbert
a362382d38
Add back more correct null checks
2021-02-25 14:06:21 +09:00
Dean Herbert
8a97e2e28d
Update LocalisedString usages to RomanisedString
2021-02-22 19:01:42 +09:00
Dean Herbert
1fd76ea3fb
Apply changes to UI components overriding functions with changing signatures
2021-02-22 19:01:42 +09:00
Dan Balasescu
6240d3964c
Merge pull request #11817 from peppy/fix-collection-dropdown-cross-thread-manipulation
...
Fix potential crash from cross-thread drawable manipulation in CollectionFilterDropdown
2021-02-19 10:06:42 +09:00
Dan Balasescu
46b67dd7bc
Merge pull request #11821 from peppy/fix-carousel-border-additive-alplha
...
Fix carousel items' borders getting blown out when selected and hovered
2021-02-18 17:45:58 +09:00
Dean Herbert
b713eb2eae
Make field readonly
2021-02-18 17:13:48 +09:00
Dean Herbert
c3a98b6ad1
Fix carousel items' borders getting blown out when selected and hovered
...
I tried restructuring the hierarchy to avoid needing this added property
(moving the hover layer out of the border container) but this leads to
some subpixel leakage outside the borders which looks even worse.
Closes #6915 .
2021-02-18 16:59:44 +09:00
Dean Herbert
421cdb6650
Consume new method in existing usages (and remove some unnecessary set/unset code)
2021-02-18 15:01:11 +09:00
Dean Herbert
90dce52042
Fix potential crash from cross-thread drawable manipulation in CollectionFilterDropdown
2021-02-18 14:10:28 +09:00
smoogipoo
d3f0c0730d
Merge branch 'master' into non-concurrent-sample-playback
2021-02-12 17:22:15 +09:00
Dean Herbert
cd01591dda
Consume new debounce logic in carousel header
2021-02-12 12:22:35 +09:00
Dean Herbert
98c5b0220c
Merge pull request #11725 from smoogipoo/freemods-user-settings
...
Add local user customisation for freemod mod settings
2021-02-11 16:02:24 +09:00
Dean Herbert
eaa7b4cb93
Rename second usage variable name to match
2021-02-11 14:54:50 +09:00
smoogipoo
6fff7c39da
Ensure tracker is disposed
2021-02-10 20:09:45 +09:00
smoogipoo
393cd6c74a
Add helper class for tracking changes to mod settings
2021-02-10 19:40:07 +09:00
Jamie Taylor
bc7f4a4f88
Use a single sample for CarouselHeader on-hover with randomised pitch instead of multiple samples
2021-02-10 17:53:47 +09:00
smoogipoo
69ca440ae5
Merge branch 'master' into more-accurate-most-common-bpm
2021-02-08 18:40:58 +09:00
Dean Herbert
3e750feaa4
Subclass LocalPlayerModSelectOverlay to correctly deselect incompatible mods on free mod selection
2021-02-05 16:42:35 +09:00
smoogipoo
97e3023df9
Renamespace/rename MatchSongSelect -> PlaylistsSongSelect
2021-02-01 20:16:58 +09:00
smoogipoo
9c4c47599f
Merge branch 'master' into freemods
2021-02-01 19:28:10 +09:00
smoogipoo
89a42d60fb
General cleanup
2021-02-01 18:50:32 +09:00
smoogipoo
426569c2a9
Move common song select implementation for online play
2021-02-01 14:57:39 +09:00
smoogipoo
230b347c1e
Move ModSelectOverlay.IsValidMod to a property
2021-02-01 12:18:11 +09:00
smoogipoo
45e41aaeac
Initial implementation of freemod selection overlay
2021-01-27 22:15:53 +09:00
smoogipoo
4019cc38e5
Allow footer buttons to be customised
2021-01-27 22:03:51 +09:00
smoogipoo
91d34d86f7
Abstractify ModSelectOverlay
2021-01-27 22:02:23 +09:00
Dean Herbert
a6516e3be5
Merge branch 'master' into scroll-to-20
2021-01-21 14:28:17 +09:00
Dean Herbert
7c4a072568
Merge branch 'master' into scroll-to-20
2021-01-21 13:48:26 +09:00
smoogipoo
eb85efcea2
Add check to playlists too
2021-01-20 20:59:28 +09:00
smoogipoo
de9d075f94
Initial sample + samplechannel rework
2021-01-19 17:11:40 +09:00
Dean Herbert
0b165dce4b
Fix multiplayer mod select showing autoplay as a choice
2021-01-18 17:50:32 +09:00
smoogipoo
24e991a5ef
Actually return beat length and not BPM
2021-01-15 14:35:09 +09:00
smoogipoo
c6e9a6cd5a
Make most common BPM more accurate
2021-01-15 14:28:49 +09:00
Dean Herbert
0a65ae8f1e
Fix the beatmap carousel playing the difficulty change sample on beatmap change
2021-01-15 14:07:24 +09:00
Dean Herbert
4973e23003
Merge branch 'master' into fix-transform-mutation-mod-selection
2021-01-08 11:16:15 +09:00
Bartłomiej Dach
4998aaaa98
Remove outdated warning disable
...
Does not trigger any more on Rider 2020.3.2.
2021-01-06 18:38:25 +01:00
Bartłomiej Dach
7651d4554a
Merge branch 'master' into fix-transform-carousel
2021-01-06 13:49:05 +01:00
Bartłomiej Dach
43b9fde457
Add some nullability annotations for good measure
2021-01-06 13:15:15 +01:00
Dean Herbert
99701a6d9b
Add null check on beatmapContainer for safety
2021-01-06 21:06:33 +09:00
Dean Herbert
ffafdf2209
Merge branch 'master' into fix-transform-carousel
2021-01-06 21:03:22 +09:00
Bartłomiej Dach
25b4628672
Merge branch 'master' into fix-transform-mutation-from-background
2021-01-06 11:04:51 +01:00
Bartłomiej Dach
52687fc37c
Merge branch 'master' into fix-transform-mutation-loading-layer
2021-01-05 23:10:51 +01:00
Dean Herbert
4b539b01c1
Match code between updateSelectedBeatmap/Ruleset
2021-01-05 20:38:58 +09:00
Dean Herbert
83dbba3cbf
Fix carousel beatmap set panels applying transforms to difficulties while they are loading
2021-01-05 18:41:45 +09:00
Dean Herbert
54982dcdd7
Refactor LoadingLayer to avoid applying effects to external drawables
...
In theory this seemed like a good idea (and an optimisation in some
cases, due to lower fill rate), but in practice this leads to weird edge
cases.
This aims to do away with the operations on external drawables by
applying a dim to the area behind the `LoadingLayer` when required.
I went over each usage and ensured they look as good or better than
previously.
The specific bad usage here was the restoration of the colour on dispose
(if the `LoadingLayer` was disposed in a still-visible state).
I'm aware that the `BeatmapListingOverlay` will now dim completely during
load. I think this is fine for the time being.
2021-01-05 17:31:45 +09:00
Dean Herbert
9bac791a57
Fix deselection of autoplay mod failing
2021-01-05 16:17:58 +09:00
Dean Herbert
b3f08b29ca
Ensure that all changes to screen backgrounds are on the correct thread
2021-01-05 15:22:50 +09:00
Dean Herbert
a3e4e2f6c3
Switch ResultsScreen and SongSelect inheritance and remove local implementation
2021-01-05 15:22:50 +09:00
Dean Herbert
53e6a349bb
Fix incorrect initial conditional
...
Turns out this wasn't actually required.
2021-01-03 22:44:32 +09:00
Dean Herbert
efb71713ef
Fix null condition inhibiting deselection events
2021-01-03 22:43:02 +09:00
Dean Herbert
a6d4992997
Ensure SelectionChanged events are only sent once when selection is null
2021-01-03 12:53:25 +09:00
Dean Herbert
caa5109e3a
Add precautionary null checks to update methods in SongSelect
2021-01-03 12:18:35 +09:00
Dean Herbert
e2de5bb8f9
Fix the beatmap carousel not returning to centre correctly after resizing window
2021-01-02 22:05:41 +09:00
Bartłomiej Dach
4c43a67b68
Rename I{Multiplayer -> OnlinePlay}SubScreen
2020-12-25 18:07:34 +01:00
Bartłomiej Dach
83fb7c7a1a
Re-namespace all files in OnlinePlay directory
2020-12-25 16:50:09 +01:00
Dean Herbert
5d4b73baa5
RealtimeMultiplayer -> Multiplayer
2020-12-25 14:10:59 +09:00
Endrik Tombak
78c14fd696
Refactor code into UserTrackingScrollContainer
2020-12-22 17:36:44 +02:00
Dean Herbert
df5e1d83bd
Allow recommender to potentially be null
2020-12-22 14:36:52 +09:00
Dean Herbert
8cc2ed3fae
Move from OsuGameBase to OsuGame
...
Also moves to a more suitable namespace.
2020-12-22 14:28:27 +09:00
Dean Herbert
626b7615ad
Move and rename some fields for better readability
2020-12-22 14:23:33 +09:00
Dean Herbert
dff865f335
Tidy up comments, code, and multiple linq enumeration
2020-12-22 14:12:02 +09:00
Dean Herbert
d229fbba6e
Merge branch 'master' into present-recommended
2020-12-22 13:52:29 +09:00
Endrik Tombak
c25e2c3dd5
Select recommended beatmap if last selection is filtered
2020-12-03 23:13:14 +02:00
Endrik Tombak
49be4978bd
Avoid calling ToList twice
2020-12-03 19:53:41 +02:00
Endrik Tombak
4cd2e207ac
Document getBestRulesetOrder
2020-12-03 19:53:06 +02:00
Endrik Tombak
48dad61a46
Apply review suggestions
2020-12-03 19:44:12 +02:00
Endrik Tombak
cbbcf36eaa
Merge branch 'master' of https://github.com/ppy/osu into present-recommended
2020-12-03 19:38:32 +02:00
Dan Balasescu
1d92800761
Merge pull request #11068 from peppy/fix-carousel-edge-masking
...
Fix beatmap carousel panels getting masked away when out of scroll bounds
2020-12-03 20:40:44 +09:00
smoogipoo
31f7f7072d
Fix song select panels not loading if partially offscreen
2020-12-03 15:13:20 +09:00
Dean Herbert
897f593b37
Fix beatmap carousel panels getting masked away when out of scroll bounds
...
Regressed in https://github.com/ppy/osu/pull/10973 due to removed masking specification.
Closes #11067 .
2020-12-03 13:26:28 +09:00
Dean Herbert
a852a27dfb
Fix current beatmap temporarily becoming empty during ruleset change
...
When changing the ruleset at song select, there was a scenario where it
would be set to default (empty) for one debounce length where this was
not actually required. This occurs when the currently selected beatmap
set has other difficulties which match the target ruleset, specifically.
2020-11-30 19:36:30 +09:00
Dean Herbert
792934f2c4
Allow scroll type to be specified
...
This brings back the ability for the carousel to scroll in a classic
way. It turns out this is generally what we want for "seek" operations
like "random", else it's quite hard to get the expected animation.
I did experiment with applying the animation after the pooled panels are
retrieved, but in a best-case scenario there is still a gap where no
panels are displayed during the random seek operation.
2020-11-27 13:54:38 +09:00
Dean Herbert
0a48dd8f76
Delegate scroll animation to panels themselves
2020-11-26 18:42:51 +09:00
Dean Herbert
ad258e2e52
Update scroll position before applying any panel animations
...
In the case of automatic scroll requirements (ie. scroll to selected) we
are delegating the animation logic to the panels themselves. In order to
make this work correctly, the scroll operation needs to take effect
before any animation updates are run.
2020-11-26 18:33:41 +09:00
Dean Herbert
6058c66edb
Move drawable carousel set movement logic into panels themselves
2020-11-26 18:32:43 +09:00
Dean Herbert
f8db7a9902
Remove ScrollableContent container from carousel
...
This was causing multiple issues with masking and sizing and really
didn't need to exist in the first place. Also not sure why the pool was
nested inside the scroll container, but it isn't any more. Probably for
the best.
2020-11-26 18:28:54 +09:00
Endrik Tombak
72d9da5fac
Apply review suggestions
2020-11-21 14:26:09 +02:00
Endrik Tombak
6c5a6b42e5
Only calculate recommended SR once
2020-11-21 14:09:32 +02:00
Endrik Tombak
944f3480c2
Merge branch 'master' of https://github.com/ppy/osu into present-recommended
...
Conflicts:
osu.Game/OsuGameBase.cs
osu.Game/Screens/Select/DifficultyRecommender.cs
osu.Game/Screens/Select/SongSelect.cs
2020-11-21 14:01:01 +02:00
Dean Herbert
2db42f8e67
Remove default allowRetry parameter value from ResultsScreen
2020-11-20 14:35:44 +09:00
Dean Herbert
5113d4af8f
Rename BeatmapDifficultyManager to BeatmapDifficultyCache
2020-11-06 13:14:29 +09:00
Dan Balasescu
98c992004b
Merge pull request #10660 from peppy/fix-song-select-first-track-looping
...
Fix looping mode not being set on first track after entering song select
2020-11-04 14:37:27 +09:00
Dean Herbert
cfe3218239
Move scheduler call to inside method itself for added safety
2020-11-04 10:23:06 +09:00
Dean Herbert
d788931661
Fix LoadComponentAsync calls potentially occuring after beatmap wedge disposal
...
As seen in https://ci.appveyor.com/project/peppy/osu/builds/36109658/tests .
Also adds cancellation logic for good measure.
2020-11-03 19:53:45 +09:00
Dean Herbert
df9ff76f23
Reduce assert to guard in the outwards direction
2020-11-03 16:49:13 +09:00
Dean Herbert
d5c95a8b46
Centralise into methods and add assertions for safety
2020-11-03 00:45:55 +09:00
Dean Herbert
c3d3856a64
Fix looping mode not being set on first track after entering song select
...
Closes #10656 .
2020-11-02 23:51:02 +09:00
smoogipoo
6f623d8cca
Rename IsUserPaused -> UserPauseRequested
2020-11-02 16:08:59 +09:00
Dean Herbert
8f2cd0e8c5
Add matching requestedByUser parameter to Play method
2020-11-02 15:01:30 +09:00
Dean Herbert
6e2d722b8a
Merge pull request #10649 from ppy/dependabot/nuget/Microsoft.CodeAnalysis.FxCopAnalyzers-3.3.1
2020-11-02 11:52:38 +09:00
Dean Herbert
61c9bb3245
Merge branch 'master' into dependabot/nuget/Microsoft.CodeAnalysis.FxCopAnalyzers-3.3.1
2020-11-02 10:56:09 +09:00
Dan Balasescu
b1b52f9073
Merge branch 'master' into fix-resume-beatmap-options-edit
2020-11-02 10:46:31 +09:00
Joehu
71d55f16f3
Fix edit beatmap options button not resuming back to song select
2020-11-01 13:50:38 -08:00
Bartłomiej Dach
3090b6ccb5
Resolve CA2249 inspections
...
"Use `string.Contains` instead of `string.IndexOf` to improve
readability"
2020-11-01 18:54:44 +01:00
cadon0
a1fa6588f6
Fix "bounce" when metadata container text is empty
2020-10-31 01:06:19 +13:00
Dean Herbert
8b04cd2cb0
Fix a potential null reference when loading carousel difficulties
2020-10-25 20:28:24 +09:00
Dean Herbert
8232bf1957
Merge pull request #10576 from Game4all/song-select-wedge-dynamic-star-rating
2020-10-23 15:39:02 +09:00
Dean Herbert
9753dab93b
Remove IOnlineComponent and change existing components to use bindable flow
2020-10-22 14:19:12 +09:00
Lucas A
cf69eacae9
Make StarRatingDisplay dynamic.
2020-10-21 19:05:14 +02:00
Lucas A
670775cecb
Make beatmap wedge difficulty indicator color update dynamically.
2020-10-21 18:57:48 +02:00
Dan Balasescu
1fe987d4b3
Merge pull request #10497 from peppy/beatmap-carousel-less-diffcalc-stutter
...
Disable difficulty calculation for set-level difficulty icons
2020-10-20 14:57:34 +09:00
Dan Balasescu
976f96b51d
Merge branch 'master' into beatmap-carousel-refactor-less-alloc-overhead
2020-10-20 14:26:23 +09:00
Dan Balasescu
13060b8575
Merge branch 'master' into beatmap-carousel-less-diffcalc-stutter
2020-10-20 14:26:16 +09:00
Dean Herbert
d5940193a2
Ensure visible items is greater than zero before trying to display a range
2020-10-19 19:55:20 +09:00
Dean Herbert
9106e97c37
Ensure max value in clamp is at least zero
2020-10-19 19:10:01 +09:00
Dean Herbert
1c2185e969
Replace comment with link to issue
2020-10-19 18:41:28 +09:00
Dean Herbert
044622a7a6
Fix out of bounds issues
2020-10-19 18:41:17 +09:00
Dean Herbert
467bb9b96f
Merge branch 'master' into beatmap-carousel-refactor
2020-10-19 13:17:11 +09:00
Dean Herbert
bff3856c83
Account for panel height when removing as off-screen
2020-10-19 13:13:32 +09:00
Dean Herbert
ee0efa0b4c
Fix off-by-one in display range retrieval logic
2020-10-19 13:05:42 +09:00
Dean Herbert
4590d9b93b
Remove outdated comment logic
2020-10-19 13:04:12 +09:00
Berkan Diler
cc11283143
Use string.Starts-/EndsWith char overloads
2020-10-16 11:27:02 +02:00
Dean Herbert
88ffcb9234
Update EndsWith usages
2020-10-16 12:58:34 +09:00
Dean Herbert
30e1fce7a4
Reduce alloc overhead of DrawableCarouselBeatmapSet using new function-based ctor
2020-10-14 15:10:50 +09:00
Dean Herbert
07e6609e6d
Disable difficulty calculation for set-level difficulty icons
2020-10-14 14:16:22 +09:00
Dean Herbert
e662dc5342
Add missing licence headers
2020-10-13 20:57:26 +09:00
Dean Herbert
8057ea1097
Fix formatting issues
2020-10-13 20:50:36 +09:00
Dean Herbert
3d416f4d64
Clean up beatmapSet resolution in DrawableCarouselBeatmapSet
2020-10-13 19:31:29 +09:00
Dean Herbert
75b6a5e17e
Remove unnecessary hack (fixed via framework update)
2020-10-13 19:31:29 +09:00
Dean Herbert
5d11db7753
Locallise ChildItems to DrawableCarouselBeatmapSet for clarity
2020-10-13 19:31:29 +09:00
Dean Herbert
37daefc2b5
Remove outdated comment
2020-10-13 19:12:33 +09:00
Dean Herbert
8eca28e8bc
Add comment about off-screen loading
2020-10-13 19:10:35 +09:00
Dean Herbert
834b0186f4
Adjust fade duration to be slightly shorter
2020-10-13 18:50:10 +09:00
Dean Herbert
2346644c04
Switch DelayedLoadUnloadWrappers to DelayedLoadWrappers
...
Due to pooling usage, there is no time we need to unload. Switching to
DelayedLoadWrapper cleans up the code and reduces overhead
substantially.
2020-10-13 18:47:40 +09:00
Dean Herbert
a1801f8ae4
Unmark todo for now
2020-10-13 18:47:36 +09:00
Dean Herbert
40a0ab7aaa
Avoid allocating CarouselItems for bounds checks
2020-10-13 18:33:31 +09:00
Dean Herbert
4f4f222514
Remove unnecessary fade (already applied by base DrawableCarouselItem)
2020-10-13 18:28:28 +09:00
Dean Herbert
83358d487f
Remove logging
2020-10-13 18:18:22 +09:00
Dean Herbert
3d9ea852ec
Remove masking override (no longer needed as our size is now correct)
2020-10-13 18:14:23 +09:00
Dean Herbert
69650c16fc
Simplify vertical position calculations by including spacing in height definition
2020-10-13 18:13:36 +09:00
Dean Herbert
b1ddb08a4e
Fix right click context menus appearing in incorrect locations
2020-10-13 18:01:12 +09:00
Dean Herbert
d9a6a6b245
Split content out into own class
2020-10-13 18:01:12 +09:00
Dean Herbert
9b2ebb8f0f
Fix main content DelayedLoadUnloadWrapper not getting a valid size before load
2020-10-13 17:45:41 +09:00
Dean Herbert
f3b937e358
Fix masking issues with certain aspect ratio displays
2020-10-13 17:37:33 +09:00
Dean Herbert
fdd4d95cdc
Fix difficulties being at incorrect vertical positions after filter is applied
2020-10-13 17:37:33 +09:00
Dean Herbert
1f0aa974dd
Fix failing tests
2020-10-13 17:37:33 +09:00
Dean Herbert
b536f571fd
Move header height propagation to update for safety
2020-10-13 17:37:33 +09:00
Dean Herbert
ded09b78cb
Avoid usage of AutoSize for DrawableCarouselItems in general
2020-10-13 17:37:33 +09:00
Dean Herbert
cecdf14f53
Avoid reconstructing beatmap difficulties that were recently displayed
2020-10-13 17:37:33 +09:00
Dean Herbert
1da49073ab
Calculate content height automatically
2020-10-13 17:37:33 +09:00
Dean Herbert
c08b5e8d03
Align beatmap difficulties correctly
2020-10-13 17:37:33 +09:00
Dean Herbert
cfec4f4fc1
Extract header element from base DrawableCarouselItem class
2020-10-13 17:37:33 +09:00
Dean Herbert
2aad482545
Fix x offsets of difficulties not being updated
2020-10-13 17:37:33 +09:00
Dean Herbert
1b7e3397c6
Use expiry to avoid ToArray
2020-10-13 17:37:33 +09:00
Dean Herbert
075bf23714
Better track off-screen drawables (and return to pool less often)
2020-10-13 17:37:33 +09:00
Dean Herbert
29983afcef
Replace pool/cleanup logic with simplest form possible
...
This will temporarily break panels that go off-screen, as they will
disappear immediately
2020-10-13 17:37:33 +09:00
Dean Herbert
06e84c8eb3
Add comments and split out update steps into a more logical flow
2020-10-13 17:37:33 +09:00
Dean Herbert
20b54fb904
Move transform clean-up to pooling free call
2020-10-13 17:37:33 +09:00
Dean Herbert
f6aa448523
Store y positions inside items rather than in a separate array
2020-10-13 17:37:33 +09:00
Dean Herbert
b92c22ad42
Add logging
2020-10-13 17:37:33 +09:00