1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-08 07:42:52 +08:00
Commit Graph

535 Commits

Author SHA1 Message Date
Bartłomiej Dach
fc24a56478
Add protection from recursive updates from external selection 2022-05-11 22:31:25 +02:00
Bartłomiej Dach
83ba06e7af
Extract helper property for accessing all mods 2022-05-11 22:31:25 +02:00
Bartłomiej Dach
11ae1da65a
Hoist reference replacement logic to overlay level 2022-05-11 22:26:47 +02:00
Bartłomiej Dach
05a21fbbe0
Hoist ModState to overlay level 2022-05-11 22:26:21 +02:00
Bartłomiej Dach
e86444c4bf
Hoist ModState to column level 2022-05-11 22:03:49 +02:00
Bartłomiej Dach
74599c9c62
Use ModState in mod panels 2022-05-11 22:03:48 +02:00
Bartłomiej Dach
478cfc0b87
Split model class for mod state 2022-05-11 22:03:48 +02:00
Bartłomiej Dach
ddb2d4eef5
Rename FreeModSelect{Screen -> Overlay} reference in inline comment 2022-05-11 18:06:09 +02:00
Bartłomiej Dach
a104277e7f
Rename ModSelect{Screen -> Overlay}Strings 2022-05-11 18:01:33 +02:00
Bartłomiej Dach
76c63f1d0a
Rename ModSelect{Screen -> Overlay} in place of removed old design 2022-05-10 22:56:50 +02:00
Bartłomiej Dach
33634cba1e
Remove old mod buttons 2022-05-10 21:58:22 +02:00
Bartłomiej Dach
8b0ece1c09
Remove old mod section 2022-05-10 21:55:54 +02:00
Bartłomiej Dach
dfd97701d7
Remove old mod settings container & related controls 2022-05-10 21:53:42 +02:00
Bartłomiej Dach
128468e13d
Remove old base mod select overlay 2022-05-10 21:52:30 +02:00
Bartłomiej Dach
24c59e2f2f
Remove old user mod select overlay 2022-05-10 21:52:17 +02:00
Dan Balasescu
8ccf2ee075 Add inline comment 2022-05-10 15:07:08 +09:00
Dan Balasescu
2b7eeadac0 Workaround bad performance when selecting all freemods 2022-05-10 14:48:41 +09:00
Bartłomiej Dach
626fcd5d35
Merge branch 'master' into column-flow-cq 2022-05-09 19:22:29 +02:00
Joseph Madamba
172d14bcc6 Improve code quality of mod column flow container 2022-05-08 11:40:14 -07:00
Bartłomiej Dach
d964b4f23c
Fix uneven spacing when some mod columns are hidden 2022-05-08 15:40:21 +02:00
Bartłomiej Dach
6bdcf893b7
Move alpha management closer to screen level
Felt bad messing with alpha at the column level.
2022-05-08 15:40:10 +02:00
Bartłomiej Dach
92ccec20d7
Hide mod columns if all mods within are filtered out 2022-05-08 14:53:59 +02:00
Dean Herbert
b8cb2c1b82 Increase scroll amount slightly 2022-05-08 19:57:03 +09:00
Dean Herbert
778497b9e2 Scroll mod select slightly into view on first display 2022-05-08 18:58:54 +09:00
Bartłomiej Dach
b92d95a17a
Fix mod panels playing samples when hidden at a higher level 2022-05-08 10:39:49 +02:00
Bartłomiej Dach
81ca534f87
Implement ISamplePlaybackDisabler in mod select 2022-05-08 10:39:49 +02:00
Dean Herbert
230c4e27b8 Simplify and centralise hiding logic for mod overlay
Behaviourally, this also always toggles via button triggering to add the
button flash animation.
2022-05-08 13:03:28 +09:00
Dean Herbert
2278da563e Add various xmldoc for nested classes 2022-05-08 02:03:28 +09:00
Dean Herbert
03c80d9197 Reorder methods / properties in ModSelectScreen for legibility 2022-05-08 01:58:37 +09:00
Dean Herbert
1d27ef18dc Add xmldoc for IsValidMod 2022-05-08 01:49:29 +09:00
Dean Herbert
0d32bf91eb Hardcode hide key handling in ModSelectScreen 2022-05-08 01:35:11 +09:00
Bartłomiej Dach
0c2b4a6c0b
Fix invalid IsLoaded check
Would fail when `availableMods` would be changed from a different thread
while the columns aren't loaded.
2022-05-07 15:44:22 +02:00
Bartłomiej Dach
528342411e
Merge branch 'master' into mod-overlay/integration 2022-05-07 13:52:19 +02:00
Bartłomiej Dach
fe69bd7ed9
Merge branch 'master' into change-mod-scroll-behaviour 2022-05-07 13:29:02 +02:00
Bartłomiej Dach
9a56f6db44
Merge branch 'mod-overlay/back-button' into mod-overlay/integration 2022-05-07 13:15:13 +02:00
Bartłomiej Dach
a716f62a6a
Flash back button when keyboard back binding is pressed 2022-05-07 13:01:36 +02:00
Salman Ahmed
d4c9de8596 Move button width in mod select to constant 2022-05-07 13:23:48 +03:00
Salman Ahmed
8ee3fdd0aa Change mod scrolling behaviour to not scroll horizontally on columns/settings 2022-05-07 12:15:11 +03:00
Bartłomiej Dach
fd75963ca2
Dismiss mod select if select binding is pressed 2022-05-07 11:01:05 +02:00
Bartłomiej Dach
e7e7486a8e
Merge branch 'mod-overlay/back-button' into mod-overlay/integration 2022-05-07 10:59:30 +02:00
Bartłomiej Dach
b72cf4cd5d
Merge branch 'mod-overlay/localisation-strings' into mod-overlay/back-button 2022-05-07 10:58:09 +02:00
Bartłomiej Dach
f761d4d4d4
Reuse "select/deselect all" localisable string on column toggle 2022-05-07 10:56:03 +02:00
Bartłomiej Dach
fa0a256f48
Add localisable string for difficulty multiplier display 2022-05-07 10:48:15 +02:00
Bartłomiej Dach
271d64fd54
Add back button to mod select overlays 2022-05-07 10:17:32 +02:00
Bartłomiej Dach
6ad990dfc3
Add basic localisation strings for new mod select 2022-05-07 10:17:24 +02:00
Bartłomiej Dach
4ff96f82be
Dim other buttons if customisation panel is open 2022-05-07 09:50:09 +02:00
Bartłomiej Dach
18e4c3ed0f
Update mod columns even if they're not present/offscreen
Important to make "select/deselect all" operations work on all columns
simultaneously, even if they're offscreen. Unfortunately by the nature
of how the existing selection animation works, it is hard-tied to the
update loop, so we need to compensate.
2022-05-07 09:50:09 +02:00
Bartłomiej Dach
9514a5cef7
Only load panels asynchronously outside of BDL 2022-05-07 09:50:09 +02:00
Bartłomiej Dach
9f96dd47d1
Remove schedule in panel load
It was causing selection/deselection of all mods to work improperly if a
select/deselect all operation was requested before the panel was
scrolled into view.

In general the schedule was an over-optimisation - the game-global set
of available mods shouldn't be changing so often as to warrant such an
aggressive debounce.
2022-05-07 09:50:09 +02:00
Bartłomiej Dach
852e4a9766
Add select/deselect all buttons to free mod select screen 2022-05-07 09:29:33 +02:00
Bartłomiej Dach
0b95594f60
Add some more padding between footer and column scroll 2022-05-07 09:29:33 +02:00
Bartłomiej Dach
0c6de331f3
Move footer button padding to a higher level 2022-05-07 09:29:32 +02:00
Bartłomiej Dach
8c73ed7207
Fix sequence equality check not using reference comparison 2022-05-06 21:47:04 +02:00
Bartłomiej Dach
621f746789
Do not modify selected mods through panel state change during external update 2022-05-06 21:47:04 +02:00
Bartłomiej Dach
c199b8fcb6
Simplify state management in ModColumn
Bad sign when you can't follow your own code.

All of the various state changing methods were flattened into one
because it was too hard to follow what was calling what and why.
2022-05-06 21:46:16 +02:00
Bartłomiej Dach
c533c93ffd
Remove leftover border thickness spec in mod settings area
Was never supposed to be there, it was a vestige of a previous design
iteration that went by unnoticed.
2022-05-06 15:34:49 +02:00
Bartłomiej Dach
08fd0ea086
Fix click-to-return container still handling hover when inactive 2022-05-06 12:28:53 +02:00
Bartłomiej Dach
34cf4c6a38
Fix mod overlay not closing on toggle hotkey 2022-05-05 22:16:56 +02:00
Bartłomiej Dach
ac08498f35
Use plum colour scheme in multiplayer to match rest of multiplayer screens 2022-05-05 22:16:54 +02:00
Bartłomiej Dach
79e1b93b30
Close customisation area on escape press before exiting 2022-05-05 19:17:36 +02:00
Bartłomiej Dach
2cc56a4b19
Fix hidden issue with automatic customisation panel show logic
Doesn't cause tests to fail headless, but they do fail in the test
browser.
2022-05-05 19:17:36 +02:00
Dean Herbert
3eead5a6a3 Rename FlushAnimation to FlushPendingSelections to better match purpose 2022-05-04 19:40:08 +09:00
Bartłomiej Dach
f5fa41356e
Rewrite mod instance management again to pass tests 2022-05-03 22:31:34 +02:00
Bartłomiej Dach
970361676b
Fix setting items not creating if mods initially not empty 2022-05-03 21:45:40 +02:00
Bartłomiej Dach
e3641213e1
Always hide unimplemented mods on mod select screen 2022-05-03 21:45:40 +02:00
Bartłomiej Dach
f91ee4b042
Reset panel mod instance settings to defaults on deselect 2022-05-03 21:45:40 +02:00
Bartłomiej Dach
7c04bf5c53
Refactor mod reference management to meet test expectations 2022-05-03 21:45:40 +02:00
Bartłomiej Dach
fe59f4ae58
Fix multiselection operation not flushing on close 2022-05-03 21:45:39 +02:00
Bartłomiej Dach
746a4a7403
Fix mod column using wrong equality type 2022-05-03 21:45:39 +02:00
Dean Herbert
652e022fd6
Merge pull request #17973 from bdach/mod-overlay/dim-columns-offscreen
Dim offscreen columns on new mod select overlay
2022-04-29 11:55:27 +09:00
Dean Herbert
f300b62877 Add ScrollIntoView method which accepts an offset to allow usage in mod select 2022-04-28 20:03:54 +09:00
Dean Herbert
f3a0e2ed55 Increase fade duration 2022-04-28 14:59:39 +09:00
Dean Herbert
1a345c06c6 Fix regression in nested scroll behaviour due to the top level scroll container's type changing 2022-04-27 17:10:27 +09:00
Dean Herbert
b29af28028 Fix mod panels not ignoring super key presses
Most other usages have this included. Noticed that the panel was
changing state when exiting the game using cmd-w.

Would probably be nice to have an exposed `HasAnyModifierPressed` helper
property.
2022-04-27 16:55:17 +09:00
Bartłomiej Dach
a849bfcf60
Rewrite dim test to pass headless
Unfortunately neuters the test a touch, but alas.
2022-04-26 23:11:41 +02:00
Bartłomiej Dach
921e8af3b0
Use more lenient column bounds for checking active state 2022-04-26 22:54:54 +02:00
Bartłomiej Dach
21377d2a4d
Fix inactive columns flickering on and off mid-scroll 2022-04-26 22:43:58 +02:00
Bartłomiej Dach
94d07e147f
Move dimming logic to custom scroll container 2022-04-26 22:37:40 +02:00
Bartłomiej Dach
e9c9c764ca
Fix column dim state changing when scrolling past extent 2022-04-26 22:26:58 +02:00
Bartłomiej Dach
13a36f2e51
Scroll to column when mouse is released rather than pressed 2022-04-26 22:01:24 +02:00
Bartłomiej Dach
b0d6e16658
Invert data flow in column dim implementation 2022-04-26 21:57:19 +02:00
Bartłomiej Dach
e13d0d02ae
Use better way of calculating whether columns are fully on screen 2022-04-25 23:08:05 +02:00
Bartłomiej Dach
e384e074fb
Fix asymmetric margin of column scroll 2022-04-25 23:08:05 +02:00
Bartłomiej Dach
09c08248c4
Fix bounce when scrolling to first/last column 2022-04-25 23:08:05 +02:00
Bartłomiej Dach
ebc8429495
Dim offscreen columns & scroll to them if clicked 2022-04-25 23:08:04 +02:00
Bartłomiej Dach
e246357b36
Merge branch 'master' into sheared-overlay-container-click-away 2022-04-22 22:26:35 +02:00
Dean Herbert
82a1d1cc2e Fix multiplier display not blocking input 2022-04-22 15:22:58 +09:00
Bartłomiej Dach
b7c11cdb8e
Deselect old incompatible mods if any on user mod select screen 2022-04-21 23:49:30 +02:00
Bartłomiej Dach
32722adba9
Allow mod panels to be clicked in incompatible state 2022-04-21 23:37:01 +02:00
Dean Herbert
0f4b40ab15 Add better click-to-dismiss logic for sheared overlays 2022-04-21 16:27:27 +09:00
Dean Herbert
5c0e5eb6f4
Merge pull request #17899 from Joehuu/localise-most-strings
Use existing web localisation for most hardcoded strings
2022-04-21 14:48:12 +09:00
Joseph Madamba
5e5c8e78a6 Use existing web localisation for most hardcoded strings 2022-04-20 16:31:11 -07:00
Dean Herbert
4466e15bfc Rename AllowConfiguration to AllowCustomisation and simplify drawable addition 2022-04-20 23:17:29 +09:00
Dean Herbert
b722ff8dc5 Merge branch 'master' into mod-overlay/extension-points 2022-04-20 23:17:04 +09:00
Dean Herbert
65b2db5e71 Move shear constant to overlay (this is going to likely be used everywhere ever) 2022-04-20 16:30:58 +09:00
Dean Herbert
e17f224793 Fix padding mismatches 2022-04-20 16:28:52 +09:00
Dean Herbert
5c7ff363ce Move title/description to correct class 2022-04-20 16:08:00 +09:00
Dean Herbert
2ee37aeceb Reduce nesting and usage of GridContainer 2022-04-20 16:01:15 +09:00
Dean Herbert
1032dc235d Rename PopupScreenTitle to ShearedOverlayHeader 2022-04-20 16:01:15 +09:00
Dean Herbert
8d31b0bc01 Split out the base design of sheared overlay into its own abstract class
This will allow for reuse with the first-run overlay.
2022-04-20 15:50:16 +09:00