Commit Graph

63 Commits

Author SHA1 Message Date
3d14b14cfe Use alternative method for checking panel readiness to eliminate bool flag 2022-08-17 21:56:11 +02:00
f860bc11ee Fix several schedule-related issues arising from new column addition 2022-08-15 20:38:16 +02:00
f21a51aa24 Simplify mirror copy of task logic in ModColumn 2022-08-08 19:20:50 +02:00
b2f8934117 Extract base mod select column presentation logic 2022-07-24 16:39:03 +02:00
f3ceabc53f Rename ModSelect{Overlay -> }Panel 2022-07-22 19:17:22 +02:00
6cd18fad99 Fix code inspections after base panel class extraction 2022-07-21 23:29:08 +02:00
f71f6302fd Remove unnecessary null casts 2022-06-24 14:50:11 +09:00
7013909322 Remove unnecessary protected virtual 2022-06-21 16:43:04 +02:00
da1814e7c3 Restructure everything to fix free mod overlay issue 2022-06-21 14:48:41 +02:00
234120ff43 Forward entire event to IModHotkeyHandler
Required for shift handling in the classic implementation.
2022-06-21 13:37:17 +02:00
658f5341c7 Set up flow for switching between hotkey styles 2022-06-21 13:34:58 +02:00
73124d2b1f Encapsulate mod hotkey selection logic in strategy pattern 2022-06-21 12:49:01 +02:00
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
ed0b841df0 Fix incorrect left/right clicking area of mod panels 2022-05-23 18:29:26 -07:00
2266a5c9a0 Remove no-longer-necessary ModColumn.Filter 2022-05-11 22:31:26 +02:00
1c0166367d Fix remaining column operations being coupled to drawables 2022-05-11 22:31:26 +02:00
b5a9f1310a Fix select/deselect all toggle not working correctly after changes 2022-05-11 22:31:26 +02:00
52bbce12f1 Fix not being able to set AvailableMods before loaded 2022-05-11 22:31:26 +02:00
11ae1da65a Hoist reference replacement logic to overlay level 2022-05-11 22:26:47 +02:00
05a21fbbe0 Hoist ModState to overlay level 2022-05-11 22:26:21 +02:00
e86444c4bf Hoist ModState to column level 2022-05-11 22:03:49 +02:00
76c63f1d0a Rename ModSelect{Screen -> Overlay} in place of removed old design 2022-05-10 22:56:50 +02:00
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
92ccec20d7 Hide mod columns if all mods within are filtered out 2022-05-08 14:53:59 +02:00
1d27ef18dc Add xmldoc for IsValidMod 2022-05-08 01:49:29 +09:00
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
fe69bd7ed9 Merge branch 'master' into change-mod-scroll-behaviour 2022-05-07 13:29:02 +02:00
8ee3fdd0aa Change mod scrolling behaviour to not scroll horizontally on columns/settings 2022-05-07 12:15:11 +03:00
f761d4d4d4 Reuse "select/deselect all" localisable string on column toggle 2022-05-07 10:56:03 +02:00
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
9514a5cef7 Only load panels asynchronously outside of BDL 2022-05-07 09:50:09 +02:00
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
621f746789 Do not modify selected mods through panel state change during external update 2022-05-06 21:47:04 +02:00
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
3eead5a6a3 Rename FlushAnimation to FlushPendingSelections to better match purpose 2022-05-04 19:40:08 +09:00
f5fa41356e Rewrite mod instance management again to pass tests 2022-05-03 22:31:34 +02:00
f91ee4b042 Reset panel mod instance settings to defaults on deselect 2022-05-03 21:45:40 +02:00
7c04bf5c53 Refactor mod reference management to meet test expectations 2022-05-03 21:45:40 +02:00
fe59f4ae58 Fix multiselection operation not flushing on close 2022-05-03 21:45:39 +02:00
746a4a7403 Fix mod column using wrong equality type 2022-05-03 21:45:39 +02:00
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
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
ebc8429495 Dim offscreen columns & scroll to them if clicked 2022-04-25 23:08:04 +02:00
b722ff8dc5 Merge branch 'master' into mod-overlay/extension-points 2022-04-20 23:17:04 +09:00
65b2db5e71 Move shear constant to overlay (this is going to likely be used everywhere ever) 2022-04-20 16:30:58 +09:00
67c44db8d5 Add extension points required for replacing old mod overlay 2022-04-17 23:28:51 +02:00
9fdeb20537 Animate individual ModColumns during togle of oerlay 2022-04-05 18:27:34 +09:00
497e5e3a36 Slightly adjust scroll handling and also apply to ModSettingsContainer 2022-04-05 17:19:33 +09:00
58e9147b12 Simplify and better comment nested scroll conditionals 2022-04-05 16:48:25 +09:00
f156cb797d Improve nested scroll behaviour 2022-04-05 16:46:09 +09:00