Cootz
7697dbe4b3
Mod panel don't play sound when hidden
2023-06-09 16:55:19 +03:00
Cootz
c3b50e1309
Move the multiplier back to TopRight
2023-06-09 16:25:04 +03:00
Cootz
ba7069df34
Fix SelectAllModsButton
state doesn’t update when search term changed
2023-06-06 16:12:31 +03:00
Cootz
71e6f80c40
Add hotkey for switching search bar focus
2023-06-05 15:54:19 +03:00
Cootz
3ebc801484
Move (de)select all mods hotkeys handling to ModSelectOverlay
2023-06-05 13:49:07 +03:00
Cootz
a46f5b90d4
Move focus handling into PopIn
2023-06-04 18:11:44 +03:00
Cootz
32b9e6ec8f
Make search bar active by default
2023-06-04 17:02:46 +03:00
Cootz
69b640a185
Remove hotkeys handling from DeselectAllModsButton
2023-06-03 10:47:48 +03:00
Cootz
9d4ba5d64a
Remove unnecessary null checks
2023-06-02 12:00:03 +03:00
Cootz
4c7cca101e
Rename IsValid
to Visible
2023-06-02 11:33:38 +03:00
Cootz
d400387329
Replace IConditionalFilterable
with IFilterable
2023-06-02 10:51:33 +03:00
Cootz
325c114c1c
Remove redundant xmldocs
2023-06-02 10:39:27 +03:00
Cootz
39489358fa
Apply appearance animation to aboveColumnsContent
2023-06-01 14:07:05 +03:00
Cootz
5a1c3aeb7e
Fix SearchTerm
set causing infinite loop
2023-05-31 19:36:42 +03:00
Dean Herbert
e35623df22
Update to use new Filter
method and remove silly ForcedSearchTerm
2023-05-30 13:40:59 +09:00
Cootz
22c6d6c526
Prevent checkbox from toggle on when column have no valid panels
2023-05-29 14:22:40 +03:00
Cootz
e43c233b48
Reword ForcedSearchTerm
xmldoc
2023-05-28 13:21:41 +03:00
Cootz
0e5c99b760
Fix search bar showing incorrectly
2023-05-28 13:12:57 +03:00
Cootz
5ff023113f
Update xmldoc for ForcedSearchTerm
2023-05-28 10:04:26 +03:00
Cootz
c3f06ad2db
Merge branch 'master' into add-mod-search-option
2023-05-23 08:55:57 +03:00
Cootz
67bf1b4dfe
Select/deselect first visible mod when GlobalAction.Select
is triggered
2023-05-21 11:05:01 +03:00
Cootz
6647d95ea7
Kill search focus when clicking on ModColumn
2023-05-14 18:32:16 +03:00
Cootz
ca68850730
fix formatting
2023-05-10 19:43:58 +03:00
Cootz
2467813d81
Block deselect all
short key when using the search box
2023-05-09 16:14:42 +03:00
Cootz
60bad35145
Remove weird update usage when 'deselect all' pressed
2023-05-07 15:34:01 +03:00
Cootz
4d235105d1
Convert ModSearchContainer
to block-scoped namespace
2023-05-07 15:14:49 +03:00
Cootz
cbb9f0100e
Update PopIn
and PopOut
filtering. Expose SearchTerm
2023-05-06 11:27:06 +03:00
Cootz
a226caff56
Fix testing
2023-05-06 11:09:44 +03:00
Cootz
7422b5285c
Fix wrong filtering in testing
2023-05-05 22:41:30 +03:00
Cootz
ab94b4dce1
Update ModPresetPanel.FilterTerms
to account mod names and acronyms
2023-05-05 09:52:09 +03:00
Cootz
54757df51f
Fix mod deselect button not working properly when search applied
2023-05-05 09:31:27 +03:00
Cootz
1ac9d900e1
Clear search on ModSelectOverlay.Hide
2023-05-04 19:24:37 +03:00
Dean Herbert
0034124d79
Remove unnecessary content clear
2023-05-04 11:25:10 +09:00
Dean Herbert
26b8c5b852
Fix mod list display not updating after clicking "use current"
...
This is not a regression from my changes. It was broken before them.
2023-05-04 11:23:51 +09:00
Dean Herbert
49fb5da1a2
Stop passing preset panel to popover
2023-05-04 11:19:09 +09:00
Dean Herbert
b12d139317
Remove dead code
2023-05-04 11:16:52 +09:00
Dean Herbert
99d2616c34
Move drawable construction to load
for simplicity
2023-05-04 11:14:51 +09:00
Dean Herbert
be995f1359
Add localisation support for new button string
2023-05-04 11:11:19 +09:00
Dean Herbert
b7abab6d8a
More variable improvements
2023-05-04 11:10:05 +09:00
Dean Herbert
0a584f0652
Simplify check logic and improve variable naming
2023-05-04 11:07:09 +09:00
cdwcgt
967e801f9c
code inspect
2023-05-03 23:26:58 +09:00
cdwcgt
debbd376bd
move scrollContent
update logic to updateActiveState()
2023-05-03 23:24:14 +09:00
cdwcgt
f4b1264cc9
use button Enable
status to ensure preset name is not null
2023-05-03 23:22:46 +09:00
cdwcgt
aa5a026c67
remove local button handle
2023-05-03 23:14:24 +09:00
cdwcgt
c609e6345c
remove Use Current Mods
menu item
2023-05-03 23:02:50 +09:00
Cootz
152d2678d5
Fix ModSelectColumn
completely disappear from ModSelectOverlay
2023-05-03 14:00:46 +03:00
Dean Herbert
e394b487e0
Merge branch 'master' into edit-mods-preset
2023-05-03 12:06:16 +09:00
Cootz
a6ca049739
Manually implement @bdach prototype
2023-05-02 14:15:33 +03:00
Dean Herbert
e808e7316b
Mark delegate value unused and add comment to avoid future regression
2023-05-02 13:29:30 +09:00
Bartłomiej Dach
2e3daf0a54
Fix leak of ModSettingChangeTracker
instances
...
The `SelectedMods.BindValueChanged()` callback in `ModSelectOverlay` can
in some instances run recursively. This is most heavily leaned on in
scenarios where `SelectedMods` is updated by an external component. In
such cases, the mod select overlay needs to replace the mod instances
received externally with mod instances which it owns, so that the changes
made on the overlay can propagate outwards.
This in particular means that prior to this commit, it was possible to
encounter the following scenario:
modSettingChangeTracker?.Dispose();
updateFromExternalSelection(); // mutates SelectedMods to perform the replacement
// therefore causing a recursive call
modSettingChangeTracker?.Dispose();
// inner call continues
modSettingChangeTracker = new ModSettingChangeTracker(SelectedMods.Value);
// outer call continues
modSettingChangeTracker = new ModSettingChangeTracker(SelectedMods.Value);
This leaks one `modSettingChangeTracker` instance from the inner call,
which is never disposed.
To avoid this, move the disposal to the same side of the recursion that
the creation happens on, changing the call pattern to:
updateFromExternalSelection(); // mutates SelectedMods to perform the replacement
// therefore causing a recursive call
modSettingChangeTracker?.Dispose();
// inner call continues
modSettingChangeTracker = new ModSettingChangeTracker(SelectedMods.Value);
modSettingChangeTracker?.Dispose();
// outer call continues
modSettingChangeTracker = new ModSettingChangeTracker(SelectedMods.Value);
which, while slightly wasteful, does not cause any leaks.
The solution is definitely suboptimal, but addressing this properly
would entail a major rewrite of the mod instance management in the mods
overlay, which is probably not the wisest move to make right now.
2023-04-30 17:31:41 +02:00
Cootz
b795e8ac5a
Use ModSearch
in ModeSelectOverlay
2023-04-27 17:26:35 +03:00
Cootz
3c6141f233
Add ModSearch
2023-04-27 17:08:29 +03:00
Hy0tic
56ab029a58
fix issue where multipler does not update when adjusting speed for preset mod
2023-04-22 13:30:08 -04:00
cdwcgt
d025c441ca
delay mod save after click save or not popover hidden
2023-03-16 19:48:45 +09:00
cdwcgt
42bcc8bafc
revert mod store
2023-03-16 19:38:15 +09:00
cdwcgt
15f11bb1e8
scorll container and save mod after popover hidden
...
Requires manual handling of many visual effects
2023-03-11 12:31:33 +09:00
cdwcgt
1cd565193e
public CheckCurrentModCanBeSave
2023-03-11 11:39:35 +09:00
cdwcgt
8b0f127ff2
split ModPresetRow
2023-03-11 11:25:52 +09:00
cdwcgt
f4e2620402
fix test
2023-03-10 00:56:22 +09:00
cdwcgt
ca416175bb
remove useless property
2023-03-09 22:58:44 +09:00
cdwcgt
3d746e8dfb
content Menu
2023-03-09 22:49:33 +09:00
cdwcgt
5a1316f0e5
split save logic
2023-03-09 22:43:06 +09:00
cdwcgt
54564e0557
new design
2023-03-07 21:13:35 +09:00
cdwcgt
4858d3fd42
Added ability to edit mod presets
2023-03-07 02:00:40 +09:00
mk56-spn
908651cc11
make ResetConfirmDialog
properly utilise its parent's logic
...
Adjust name of `DeleteAction` to `DangerousAction`
2023-03-05 20:57:26 +01:00
mk56-spn
90227a6496
Rename DeleteConfirmationDialog.cs
into DangerousActionDialog.cs
2023-02-27 21:57:59 +01:00
Andrei Zavatski
ffcca9fd89
Remove awkward width specification
2023-02-17 23:23:58 +03:00
Andrei Zavatski
51940133df
Adjust width and add comment
2023-02-17 15:18:45 +03:00
Andrei Zavatski
0838fa636f
Make triangles slower
2023-02-17 15:16:00 +03:00
Andrei Zavatski
a84f20bf32
Add triangles to ModSelectColumn
2023-02-17 03:09:32 +03:00
Dan Balasescu
7bc8908ca9
Partial everything
2022-11-27 00:00:27 +09:00
ansel
8cbc0502ae
Inline CalculateEffect
2022-09-12 15:51:18 +03:00
ansel
324a3723a5
Rewrite DMD
2022-09-10 23:23:04 +03:00
ansel
3f93ec8538
Expose counter to inheritors
2022-09-10 23:20:28 +03:00
ansel
667854b034
Make effect display have a built-in counter
2022-09-10 23:18:48 +03:00
ansel
b056cac10a
Remove generic and add default implementation for CalculateEffect
2022-09-10 08:34:29 +03:00
ansel
545e0bbcef
Adjust inheritors and test
2022-08-29 22:49:25 +03:00
ansel
5343c26452
Control colour via Current
bindable
2022-08-29 22:48:27 +03:00
ansel
7faeed88b0
Add ability to override width of value area
2022-08-29 22:08:43 +03:00
ansel
039f009562
Inherit difficulty multiplier display from ModsEffectDiplay
2022-08-27 20:26:05 +03:00
ansel
3e828c3416
Move base layout from DifficultyMultiplierDisplay to another class
2022-08-27 20:11:38 +03:00
Dan Balasescu
0815b01b75
Merge pull request #19783 from bdach/mod-select/presets-dont-open-customisation
...
Fix selecting preset containing Difficulty Adjust automatically opening customisation panel
2022-08-22 15:44:00 +09:00
Dan Balasescu
e1fa959f0b
Fix language change removing mod column bold text
2022-08-22 13:00:47 +09:00
Bartłomiej Dach
aa15e84bea
Adjust rounding in mod select difficulty multiplier to match song select footer
...
The 0.01 `Precision` spec on `DifficultyMultiplierDisplay.Current` would
cause the difficulty multiplier to use a different midpoint rounding
strategy than `double.ToString()`, which is the one that the song select
footer relies on. For example, a value of 0.015 would be rounded down
to 0.01 by `double.ToString()`, but rounded up to 0.02
by `BindableDouble`.
Fix the discrepancy by just deleting the `Precision` spec. Since the
value of the bindable would go through `ToLocalisableString(@"N2")`
anyway, it was redundant as is.
Fixes #19889 .
2022-08-21 23:15:49 +02:00
Bartłomiej Dach
3d14b14cfe
Use alternative method for checking panel readiness to eliminate bool flag
2022-08-17 21:56:11 +02:00
Bartłomiej Dach
3109066e34
Rename {Requires -> Pending}Configuration
2022-08-16 22:45:24 +02:00
Bartłomiej Dach
6bfdfeb153
Refactor mod panel selection logic to avoid overwriting
2022-08-16 22:41:35 +02:00
Bartłomiej Dach
10daac6752
Only open mod customisation panel on explicit selection of single mod
2022-08-15 20:38:23 +02:00
Bartłomiej Dach
f860bc11ee
Fix several schedule-related issues arising from new column addition
2022-08-15 20:38:16 +02:00
Bartłomiej Dach
5ff2e41a55
Add preset column to mod select test scene
2022-08-15 18:38:37 +02:00
Dan Balasescu
76fea25668
Merge pull request #19646 from its5Q/settings-localisation
...
Add missing localisation for settings enums
2022-08-10 18:51:52 +09:00
its5Q
abca3d1b2a
Prefix common strings for context
2022-08-10 00:35:19 +10:00
Bartłomiej Dach
f74fb3491e
Use alternative implementation of preset panel cleanup
2022-08-08 21:08:54 +02:00
Bartłomiej Dach
a0a6e1faee
Fix spurious sample playbacks from already-removed panels
2022-08-08 20:30:55 +02:00
Bartłomiej Dach
f21a51aa24
Simplify mirror copy of task logic in ModColumn
2022-08-08 19:20:50 +02:00
Bartłomiej Dach
00333fb0d2
Change ?? false
test to == true
for legibility
2022-08-08 19:19:13 +02:00
its5Q
5080d62e77
Add missing localisation for settings enums
2022-08-08 21:51:23 +10:00
Dean Herbert
070d156e89
Simplify task logic in ModPresetColumn
2022-08-08 16:13:52 +09:00
Bartłomiej Dach
839409d7ac
Add preset column to solo mod select overlay
2022-08-07 16:20:31 +02:00
Bartłomiej Dach
b318bbd5e6
Allow non-homogenous column types in mod select overlay
2022-08-07 16:20:31 +02:00
Bartłomiej Dach
0287c49ca8
Implement user selection logic for mod presets
2022-08-07 16:20:20 +02:00
Bartłomiej Dach
b1dcd7821c
Automatically toggle preset panels if selected mods match
2022-08-07 15:30:20 +02:00
Bartłomiej Dach
9b3183b2b4
Implement mod preset deletion flow
2022-08-06 21:58:55 +02:00
Bartłomiej Dach
ca1b4689cb
Automatically focus name textbox upon add preset popover open
2022-08-03 21:26:35 +02:00
Bartłomiej Dach
159d3b032c
Rename locals for legibility
2022-08-03 21:23:31 +02:00
Bartłomiej Dach
82d3fbd51b
Split AddPresetPopover
to separate file
2022-08-03 21:22:55 +02:00
Bartłomiej Dach
add2971eb4
Implement preset creation flow with test coverage
2022-08-02 22:05:54 +02:00
Bartłomiej Dach
7251389e43
Add localisations for add preset button
2022-08-02 22:05:34 +02:00
Bartłomiej Dach
059a465fe8
Add border to popover for better visual contrast
2022-08-02 22:03:33 +02:00
Bartłomiej Dach
1b3074d098
Implement popover for creating mod presets
2022-08-02 22:03:33 +02:00
Bartłomiej Dach
085080576a
Add button for creating new mod presets
2022-08-02 22:03:32 +02:00
Bartłomiej Dach
85f77abee1
Fix code quality inspection about ambiguous equality
2022-07-31 23:53:46 +02:00
Bartłomiej Dach
345f103119
Migrate mod preset column to use realm
2022-07-31 23:53:45 +02:00
Bartłomiej Dach
446485f804
Move localisation string to common location
2022-07-24 23:30:52 +02:00
Bartłomiej Dach
8af9cfbe40
Add readonly modifier
2022-07-24 23:29:18 +02:00
Bartłomiej Dach
6a67d76d7c
Add basic mod preset column implementation
2022-07-24 16:39:04 +02:00
Bartłomiej Dach
b2f8934117
Extract base mod select column presentation logic
2022-07-24 16:39:03 +02:00
Bartłomiej Dach
f3ceabc53f
Rename ModSelect{Overlay -> }Panel
2022-07-22 19:17:22 +02:00
Bartłomiej Dach
a3090003de
Add tooltip showing contents of mod preset
2022-07-21 23:29:21 +02:00
Bartłomiej Dach
bdff7f1ef4
Implement basic appearance of mod preset panels
2022-07-21 23:29:21 +02:00
Bartłomiej Dach
6cd18fad99
Fix code inspections after base panel class extraction
2022-07-21 23:29:08 +02:00
Bartłomiej Dach
d796b7d53c
Extract base mod select overlay panel presentation logic
2022-07-21 22:37:00 +02:00
Salman Ahmed
89653b74c7
Only add setting tracker when customisation is permitted
2022-07-19 19:21:16 +03:00
Salman Ahmed
eddae7b143
Fix mod overlay and footer not updating multiplayer on settings change
2022-07-18 07:38:56 +03:00
Dean Herbert
a03abc747b
Tidy up comments and simplify bounding box centre logic
2022-07-02 12:58:34 +09:00
Jamie Taylor
9d28d5f8ee
Update SFX for mod overlay show/hide
2022-07-01 20:43:12 +09:00
Dean Herbert
31a447fda0
Update parameter discards
2022-06-24 21:26:19 +09:00
Dean Herbert
f71f6302fd
Remove unnecessary null
casts
2022-06-24 14:50:11 +09:00
Bartłomiej Dach
7013909322
Remove unnecessary protected virtual
2022-06-21 16:43:04 +02:00
Bartłomiej Dach
f564ed589f
Alter sequential hotkey style to always use visible index
...
Previous behaviour was once mentioned off-hand as unintuitive.
2022-06-21 15:22:18 +02:00
Bartłomiej Dach
9e5cc89edb
Fix classic hotkeys toggling filtered mods
2022-06-21 15:01:33 +02:00
Bartłomiej Dach
da1814e7c3
Restructure everything to fix free mod overlay issue
2022-06-21 14:48:41 +02:00
Bartłomiej Dach
7b7b8c1892
Implement behaviour for classic selection style
2022-06-21 14:24:30 +02:00
Bartłomiej Dach
234120ff43
Forward entire event to IModHotkeyHandler
...
Required for shift handling in the classic implementation.
2022-06-21 13:37:17 +02:00
Bartłomiej Dach
658f5341c7
Set up flow for switching between hotkey styles
2022-06-21 13:34:58 +02:00
Bartłomiej Dach
5abd8a07d2
Add setting for changing mod select hotkey style
2022-06-21 13:33:17 +02:00
Bartłomiej Dach
73124d2b1f
Encapsulate mod hotkey selection logic in strategy pattern
2022-06-21 12:49:01 +02:00
Dan Balasescu
f8830c6850
Automated #nullable processing
2022-06-17 16:37:17 +09:00
Bartłomiej Dach
a1b8fa0992
Disable "select all mods" button if all are selected
2022-05-25 23:06:12 +02:00
Bartłomiej Dach
071e158a29
Expose available mod state outwardly as a bindable
2022-05-25 23:06:12 +02:00
Bartłomiej Dach
f0303d76e8
Split off "select all mods" button to separate class
2022-05-25 22:18:30 +02:00
Bartłomiej Dach
a3f2962558
Disable "deselect all mods" button if none are selected
2022-05-25 22:15:02 +02:00
Bartłomiej Dach
a4bd399b0c
Split off "deselect all mods" button to separate class
2022-05-25 22:14:45 +02:00
Joseph Madamba
ed0b841df0
Fix incorrect left/right clicking area of mod panels
2022-05-23 18:29:26 -07:00
Dean Herbert
062ffe64ac
Remove delay on pop in
2022-05-17 18:21:19 +09:00
Bartłomiej Dach
170df01b46
Adjust difficulty multiplier scale transition on mod overlay
...
The previous transition was supposed to be a center-anchored elastic
scale-in, but this didn't work as intended - because the multiplier
ended up inside of an auto-sized right-aligned container, the animation
itself would end up being anchored right.
Attempts to remove the scale transition resulted in a rather
jarring-looking result, so swap out the elastic scale-in for a sweep-in
effect from the top, to match the header and avoid introducing too many
directions of movement.
Delay values tweaked "to taste" - can be adjusted further if there is an
alternative set of values that feels better.
2022-05-15 20:44:50 +02:00
Dean Herbert
8a01050168
Refactor mod select button initialisation to allow shared usage of deselect button
2022-05-15 03:16:43 +09:00
Dean Herbert
a759cf2dab
Add key binding to deselect all mods
...
Defaults to `Backspace`.
2022-05-15 02:51:58 +09:00
Bartłomiej Dach
981ead68bf
Ensure local mods are constructed in time for Pop{In,Out}()
2022-05-11 22:31:27 +02:00
Bartłomiej Dach
93539160ad
Remove no-longer-necessary guard
2022-05-11 22:31:26 +02:00
Bartłomiej Dach
2266a5c9a0
Remove no-longer-necessary ModColumn.Filter
2022-05-11 22:31:26 +02:00
Bartłomiej Dach
1c0166367d
Fix remaining column operations being coupled to drawables
2022-05-11 22:31:26 +02:00
Bartłomiej Dach
b5a9f1310a
Fix select/deselect all toggle not working correctly after changes
2022-05-11 22:31:26 +02:00
Bartłomiej Dach
52bbce12f1
Fix not being able to set AvailableMods
before loaded
2022-05-11 22:31:26 +02:00
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
Bartłomiej Dach
0d5ce336f4
Hide mod customisation toggle if customisation not permitted
2022-04-17 23:28:53 +02:00
Bartłomiej Dach
881df7663d
Fix filter not taking effect if applied before panel load completion
2022-04-17 23:28:53 +02:00
Bartłomiej Dach
8af865a1c5
Fix incompatibility panel using reference equality
2022-04-17 23:28:53 +02:00
Bartłomiej Dach
ffb5c1e86c
Tweak colours on incompatibility displaying mod panel
2022-04-17 23:28:52 +02:00
Bartłomiej Dach
20c17b8c98
Make base mod select screen abstract
2022-04-17 23:28:51 +02:00
Bartłomiej Dach
7eebc20124
Add replacements for mod overlays used by game
2022-04-17 23:28:51 +02:00
Bartłomiej Dach
67c44db8d5
Add extension points required for replacing old mod overlay
2022-04-17 23:28:51 +02:00
Dean Herbert
ac799aaf7a
Add missing newline
2022-04-05 19:25:47 +09:00
Dean Herbert
32daf64a31
Use newly exposed framework helper function to find closest parent
2022-04-05 19:24:34 +09:00
Dean Herbert
631aa2a6ec
Remove left padding to allow left-most column to exist further to the.. left
2022-04-05 18:44:25 +09:00
Dean Herbert
54715885af
Adjust animation metrics slightly
2022-04-05 18:41:01 +09:00
Dean Herbert
7a1820e6bb
Fix multiplier display resetting transformations
2022-04-05 18:40:48 +09:00
Dean Herbert
9fdeb20537
Animate individual ModColumn
s during togle of oerlay
2022-04-05 18:27:34 +09:00
Dean Herbert
901032bfa2
Animate multiplier display
2022-04-05 18:25:27 +09:00
Dean Herbert
497e5e3a36
Slightly adjust scroll handling and also apply to ModSettingsContainer
2022-04-05 17:19:33 +09:00
Dean Herbert
a408776734
Limit FillFlow
of columns to applicable direction
2022-04-05 17:15:05 +09:00
Dean Herbert
388322cd61
Speed up customisation panel toggle a bit
2022-04-05 16:56:24 +09:00
Dean Herbert
58e9147b12
Simplify and better comment nested scroll conditionals
2022-04-05 16:48:25 +09:00
Dean Herbert
f156cb797d
Improve nested scroll behaviour
2022-04-05 16:46:09 +09:00
Dean Herbert
23dad7bdc4
Move scroll view padding to content level
...
Without doing this, there is a non-masked but also non-interactive area
to the left or right of the view.
2022-04-05 16:43:00 +09:00
Bartłomiej Dach
9b367d645d
Always play pop in sequence
2022-04-04 20:02:47 +02:00
Dean Herbert
57b8c32f25
Remove unused fields
2022-04-04 20:42:14 +09:00
Dean Herbert
bc53adb72a
Adjust customisation transition slightly
2022-04-04 15:50:40 +09:00
Dean Herbert
b5df350007
Adjust pop in/out transitions
2022-04-04 15:45:44 +09:00
Bartłomiej Dach
cd776d21a6
Fix propagation of selected mods to columns
2022-04-03 20:12:34 +02:00
Bartłomiej Dach
e46c2df409
Add testing for customisation panel show/hide logic
2022-04-03 20:12:33 +02:00
Bartłomiej Dach
293ef44836
Implement new mod select screen
2022-04-03 20:12:33 +02:00
Bartłomiej Dach
624f9fc774
Implement mod settings area component
2022-03-16 23:13:11 +01:00
Bartłomiej Dach
643f68e844
Better annotate initial rolling counter value set
2022-03-07 23:11:20 +01:00
Bartłomiej Dach
019f4d965d
Show two decimal digits on mod multiplier rather than one
2022-03-07 22:55:55 +01:00
Bartłomiej Dach
c25d7a1c75
Use rolling counter for multiplier display
2022-03-07 22:50:51 +01:00
Bartłomiej Dach
78a3b5961e
Implement basic difficulty multiplier display
2022-03-07 22:50:51 +01:00
Bartłomiej Dach
899b95e61b
Do not delay inital mod update by a frame
2022-02-28 21:46:58 +01:00
Bartłomiej Dach
e8701f46f1
Add xmldoc to Filter
to explain usage
2022-02-28 21:39:21 +01:00
Bartłomiej Dach
6cc972aa6a
Fix test failures by waiting for panel load
2022-02-28 21:36:13 +01:00
Dean Herbert
4a555d067d
Change ModPanel
to not handle OnMouseDown
to allow drag scrolling in ModColumn
2022-02-28 14:32:50 +09:00
Bartłomiej Dach
774952adda
Rescale components from figma to real dimensions
2022-02-27 23:08:31 +01:00
Bartłomiej Dach
16c6b9b3b3
Add keyboard selection support to mod column
2022-02-27 22:51:29 +01:00
Bartłomiej Dach
b690df05de
Hide multiselection checkbox if everything is filtered
2022-02-27 22:51:29 +01:00
Bartłomiej Dach
a83f96b026
Add filtering support to mod column
2022-02-27 22:51:29 +01:00
Bartłomiej Dach
a80b4334ff
Tweak layout of column display for better spacing
2022-02-27 22:51:28 +01:00
Bartłomiej Dach
53e8072632
Port multiselection from previous design
2022-02-27 22:51:28 +01:00
Bartłomiej Dach
f40bd39487
Add toggle all checkbox to column display
2022-02-27 22:51:28 +01:00
Bartłomiej Dach
2e04a83554
Implement column display for new mod design
2022-02-27 22:51:27 +01:00
Bartłomiej Dach
c189cc5d00
Remove unused using directive
2022-02-24 21:01:37 +01:00
Dean Herbert
435bdd0b4a
Combine and simplify state management logic
...
This makes a few changes to bring things into a better shape during
mouse interactions with the mod panels:
- Dragging away from the panel now works in line with other buttons (ie.
`OsuButton`)
- Hovering now uses a lightened version of the current state, rather
than always using the active colour. I think this feels better.
- Mouse down now uses a transform point of 0.5. This is to give the
button a feeling of one of those latching light switches which resists
until reaching a point of overcoming the spring and switching state. I
think 0.4 (non-active) and 0.6 (from active) may work better, but left
at 0.5 for simplicity of implementation and I think it's good enough?
- Border always uses the gradiented version. I did this for simplicity
of implementation, but also think it looks better.
- Adjusted transform durations to feel better to me.
2022-02-24 15:25:30 +09:00