1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-25 12:52:59 +08:00
Commit Graph

12001 Commits

Author SHA1 Message Date
Dean Herbert
3a17c6df08 Merge branch 'master' into no-gameplay-clock-gameplay-offset 2022-08-25 16:24:55 +09:00
Dean Herbert
a6ed589db4 Remove guard against RemoveFilters running more than once
It turns out this is required to remove some filters immediate, and some
later. Weird.
2022-08-25 14:47:33 +09:00
Dean Herbert
ad3dd1c700 Fix a couple of oversights regarding track nullability 2022-08-25 14:45:00 +09:00
Dean Herbert
ec60e16439 Apply NRT to FailAnimation 2022-08-25 14:35:42 +09:00
Dean Herbert
8f4a953d11 Ensure fail animation sequence isn't run after the player exit sequence has started 2022-08-25 14:26:42 +09:00
Dean Herbert
4c45f7d938 Ensure FailAnimation can't be Started after filters are already removed 2022-08-25 14:26:20 +09:00
Ryuki
5cddc7ed1f
Code cleanup (CPS) 2022-08-24 17:13:23 +02:00
Dean Herbert
f3847b90fd Tidy up attach logic 2022-08-24 19:36:01 +09:00
Dean Herbert
5129716612 Merge branch 'master' into kps 2022-08-24 18:18:45 +09:00
Dean Herbert
2af8c4a2ea
Merge pull request #19904 from novialriptide/add-date-created-sort
Add date submitted sorting
2022-08-24 17:43:28 +09:00
Dean Herbert
27b57947e4 Rename PlayerArea.GameplayClock to SpectatorPlayerClock for clarity 2022-08-24 17:13:14 +09:00
Dean Herbert
5f01f461b3 Ensure elapsed time is always non-zero when advancing SpectatorPlayerClock 2022-08-24 17:13:14 +09:00
Dean Herbert
af56cd0126 Fix merge breakage 2022-08-24 16:52:36 +09:00
Dean Herbert
5079e0d83d Merge branch 'master' into no-gameplay-clock-gameplay-offset 2022-08-24 16:52:10 +09:00
Salman Ahmed
e378c5b866 Remove no longer necessary switch case 2022-08-24 10:50:40 +03:00
Salman Ahmed
8f4a2b4936 Separate passed/failed states from calling EndGameplay 2022-08-24 10:36:13 +03:00
Andrew Hong
a8867d4245
Merge branch 'master' into add-date-created-sort 2022-08-24 03:23:27 -04:00
Dean Herbert
7f9246637a Simplify MultiSpectatorScreen hierarchy construction 2022-08-24 16:08:48 +09:00
Dean Herbert
7c1fc4814e Remove unused CreateMasterGameplayClockContainer method 2022-08-24 16:03:38 +09:00
Dean Herbert
871365bbb0 Inline ReadyToStart action binding for added safety 2022-08-24 16:03:38 +09:00
Dean Herbert
6c50f618a3 Don't use bindable flow for masterState 2022-08-24 16:03:38 +09:00
Dean Herbert
683d49c608 Move MasterClockState handling in to SpectatorSyncManager 2022-08-24 16:03:38 +09:00
Dean Herbert
d33d705684 Make WaitingOnFrames non-bindable 2022-08-24 16:03:38 +09:00
Dean Herbert
d05d8aeb22 Simplify interface implementations 2022-08-24 16:03:38 +09:00
Dean Herbert
2f5be6efca Tidy up ProcessFrame and privatise const 2022-08-24 16:03:38 +09:00
Dean Herbert
b564c34dbc Don't process master clock (is a noop) 2022-08-24 16:03:38 +09:00
Salman Ahmed
2fa8b61f3c Handle completion user state updates during spectating 2022-08-24 10:02:21 +03:00
Dean Herbert
b4eede61fb Use readonly instead of get-only 2022-08-24 15:28:18 +09:00
Dean Herbert
0b271fe4b3 Fix incorrect IsRunning value 2022-08-24 15:27:31 +09:00
Dean Herbert
b6254a1f25 Remove unnecessary casting 2022-08-24 15:23:31 +09:00
Dean Herbert
a86fc6f248 Change running state of SpectatorPlayerClock using IsRunning 2022-08-24 15:17:56 +09:00
Dean Herbert
0c9a4ec13c Don't expose MasterClock in SpectatorClockSyncManager 2022-08-24 15:13:08 +09:00
Dean Herbert
995e6664b6 Rename spectator clock sync classes 2022-08-24 15:13:08 +09:00
Dean Herbert
31f657fe01 Remove ISpectatorPlayerClock interface
Too many levels of redirection.

One interface with one implementation is not useful, IMO.
2022-08-24 15:12:57 +09:00
Dean Herbert
882dd93942 Remove ISyncManager interface
Too many levels of redirection.

One interface with one implementation is not useful, IMO.
2022-08-24 15:12:57 +09:00
Dean Herbert
22963ab951 Fix multiplayer spectator getting stuck 2022-08-24 15:12:57 +09:00
Dean Herbert
ec31f37ff7 Accept MasterGameplayClockContainer rather than generic clock 2022-08-24 14:51:14 +09:00
Dean Herbert
85fbe7abca Fix multiplayer spectator getting stuck 2022-08-24 13:11:53 +09:00
Andrew Hong
3cedd1cd1c
Merge branch 'master' into add-date-created-sort 2022-08-23 12:00:30 -04:00
Dean Herbert
29fed0c4a3 Avoid setting the source clock until gameplay is ready to start
Without this change, the audio track may audibly seek during load
proceedings.
2022-08-23 18:34:17 +09:00
Dean Herbert
ec61a94dc9 Merge branch 'master' into no-gameplay-clock-gameplay-offset 2022-08-23 17:36:06 +09:00
Dean Herbert
553897f2f0 Remove AddClock method to CreateManagedClock 2022-08-23 13:52:43 +09:00
Dean Herbert
1191b6c080 Remove unused Source_Set implementation on ISpectatorPlayerClock 2022-08-23 13:44:41 +09:00
Andrew Hong
55f1b43329 Removed check 2022-08-22 13:41:36 -04:00
HiddenNode
1098e24c40 Improved UprightUnscaledContainer 2022-08-22 14:24:52 +01:00
Dan Balasescu
c59298f0ce Enable NRT 2022-08-22 21:55:04 +09:00
Dean Herbert
489e172a76 Simplify track start/stop/paused tracking 2022-08-22 19:43:18 +09:00
Dan Balasescu
5d3d8681d4 Invert creation of clocks in multi spectator 2022-08-22 19:14:06 +09:00
Andrew Hong
bcab7aea26
Merge branch 'master' into add-date-created-sort 2022-08-22 04:02:46 -04:00
Andrew Hong
c2036d3893 Moved filter exclusion 2022-08-22 03:39:46 -04:00
Andrew Hong
09ef13908c Adjust to reviews 2022-08-22 03:20:27 -04:00
Dean Herbert
058d67f8e8
Merge pull request #19695 from naoei/ruleset-localization
Change most ruleset-accessible string types to Localisable strings
2022-08-22 16:13:23 +09: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
Dean Herbert
e6b669db8e Elaborate with example of GameplayClockContainer managing its own Stop state 2022-08-22 14:14:44 +09:00
Dean Herbert
af2e82d7d5 Move operation of setting GameplayClockContainer.StartTime to Reset call 2022-08-22 14:11:06 +09:00
Andrew Hong
c6a739f5a8 Add date submitted sorting 2022-08-21 23:09:33 -04:00
Ryuki
5cf54a788a
Code cleanup for CPS counter 2022-08-21 16:00:58 +02:00
naoei
29ef1c8db8 Check if StatisticItem.Name is null or empty 2022-08-20 21:48:53 -04:00
naoei
9386d352b8 Make StatisticItem.Name not nullable 2022-08-20 21:48:35 -04:00
Nao
189a407cb1
Merge branch 'master' into ruleset-localization 2022-08-20 21:39:10 -04:00
Dean Herbert
8566e93c72 Guard against SubmittingPlayer potentially getting stuck waiting on request forever 2022-08-20 17:19:17 +09:00
Dean Herbert
da407aa827
Merge branch 'master' into kps 2022-08-20 15:24:58 +09:00
Dean Herbert
cbdd870ecf
Merge pull request #19693 from its5Q/editor-localisation
Add localisation support for beatmap editor setup
2022-08-20 11:51:57 +09:00
Dean Herbert
7bf318541c Reword comment to hopefully read better 2022-08-19 20:57:55 +09:00
Dean Herbert
3f0da14065 Delay start operation by one frame to allow children to see initial start time 2022-08-19 17:39:51 +09:00
its5Q
4c24d8ed58 Improve string consistency 2022-08-19 03:17:05 +10:00
Dean Herbert
3eb1cda6aa Reorganise call order of Start / Reset to make more sense 2022-08-19 01:46:36 +09:00
Ryuki
3de35a1518
Update calculator and tests to match changes on clocks 2022-08-18 18:40:02 +02:00
Dean Herbert
1d774f3f12 Remove redundant ProcessFrame calls
Of note, I'm not sure whether the `IsPaused` check was meaningful, but
it's not reimplemented in the new `FramedBeatmapClock`.
2022-08-19 01:39:02 +09:00
Dean Herbert
7bc96431a7 Remove unnecessary virtual spec from GameplayClockContainer.Seek 2022-08-19 01:39:01 +09:00
Dean Herbert
0e228791c0 Remove unnecessary Reset call in MultiSpectatorScreen 2022-08-19 01:39:01 +09:00
Dean Herbert
43879633db Ensure setting a StartTime on a GameplayClockContainer always resets to the new time 2022-08-18 18:54:10 +09:00
Dean Herbert
343efa1d11 Split OffsetCorrectionClock out of MasterGameplayClockContainer 2022-08-18 18:54:10 +09:00
Dean Herbert
2c6fd1ec6e Fix `GameplayClockContainer potentially resetting external seeks 2022-08-18 18:54:10 +09:00
Dean Herbert
6003afafc7 Use FramedBeatmapClock in GameplayClockContainer 2022-08-18 18:54:10 +09:00
Dean Herbert
9735728cf6 Reverse conditionals to better define intent in addSourceClockAdjustments 2022-08-18 15:08:09 +09:00
Bartłomiej Dach
d06959e1dd
Update incorrect xmldoc 2022-08-17 22:03:35 +02:00
Dean Herbert
e7ddbc41c8
Merge branch 'master' into no-gameplay-clock 2022-08-17 22:21:10 +09:00
Dan Balasescu
0cf3c5570a
Merge pull request #19800 from peppy/fix-editor-ear-rape
Fix slider ticks playing back at infinite rate while making changes to a slider in the editor
2022-08-17 15:50:58 +09:00
Dean Herbert
20256aad11 Merge branch 'master' into no-gameplay-clock 2022-08-17 15:21:20 +09:00
Dean Herbert
21b364cd77 Fix nullref in tests as initialBeatmap may be null 2022-08-17 14:48:00 +09:00
Dean Herbert
6b9dec5996 Restore original event flow to allow for OnSuspend case to work correctly 2022-08-17 14:32:21 +09:00
Dean Herbert
8ce50e98a6 Move delegate debounce logic to Editor itself 2022-08-17 14:04:57 +09:00
Dan Balasescu
8b5ac55fca
Remove newline 2022-08-17 13:48:06 +09:00
Dean Herbert
d9346abb9c Tweak intro timings more and ensure non-theme tracks play from preview point 2022-08-17 13:20:40 +09:00
Dean Herbert
37799e3b31 Allow preparing preview point without looping 2022-08-17 13:20:24 +09:00
Bartłomiej Dach
1861f34427
Merge branch 'master' into editor-setup-no-state-change 2022-08-16 21:46:43 +02:00
Dan Balasescu
24fd411720
Merge pull request #19594 from BlauFx/improve_retry_behaviour
Skip song intro on quick restart
2022-08-16 20:18:12 +09:00
Dean Herbert
5ac314077a Improve intro timings when not using osu! theme
Roughly as proposed in https://github.com/ppy/osu/discussions/19687.
2022-08-16 18:19:30 +09:00
Dean Herbert
ee153a345c Add a few more overlooked beatmap save states on setup screen modifications 2022-08-16 16:31:56 +09:00
Dean Herbert
5238a5c115 Merge branch 'master' into editor-setup-no-state-change 2022-08-16 16:28:29 +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
c8fdfd298c Merge branch 'master' into carousel-maintain-selection-over-update 2022-08-16 16:04:32 +09:00
Dean Herbert
ea50936d71 Fix slider ticks playing back at infinite rate while making changes to a slider in the editor 2022-08-16 15:27:58 +09:00
its5Q
e870ac6456 Fix code quality for CI 2022-08-16 15:51:54 +10:00
Dean Herbert
63819648df Fix up flow of actual skip operation 2022-08-16 14:40:02 +09:00
Dean Herbert
9a1a7bae89 Make test actually test things 2022-08-16 14:40:02 +09:00
Dean Herbert
6761f869f9 Modify flow to avoid weird bindable and value resetting 2022-08-16 14:17:35 +09:00
Dean Herbert
c9baadcf88 Merge branch 'master' into improve_retry_behaviour 2022-08-16 13:06:04 +09:00
Bartłomiej Dach
5ff2e41a55
Add preset column to mod select test scene 2022-08-15 18:38:37 +02:00
its5Q
797a8da996 Replace osu-web strings with new strings and merge to single file 2022-08-16 01:14:16 +10:00
Dean Herbert
61a8873266 Ensure GameplayClockContainer's FramedClock is always non-null 2022-08-15 20:22:36 +09:00
Dean Herbert
1696a905ba Reduce exposed properties in GameplayClockContainer 2022-08-15 20:22:36 +09:00
Dean Herbert
704568ae3b Remove remaining usage of GameplayClock 2022-08-15 20:22:36 +09:00
Dean Herbert
27569e2ed5 Remove FrameStableClock (and redirect usages to FrameStabilityContainer) 2022-08-15 19:19:19 +09:00
Dean Herbert
cc982d374c Cache self rather than GameplayClock 2022-08-15 18:30:53 +09:00
Dean Herbert
c5f8529d20 Mark unused methods as NotImplemented for safety 2022-08-15 18:30:53 +09:00
Dean Herbert
f81c7644b4 Make GameplayClockContainer also an IGameplayClock and expose to remaining tests 2022-08-15 18:30:53 +09:00
Dean Herbert
c8764cb333 Move all usage of GameplayClock to IGameplayClock 2022-08-15 18:30:53 +09:00
Dean Herbert
6d78218142 Update usages of GameplayClockContainer.GameplayClock to access properties directly 2022-08-15 18:08:49 +09:00
Dean Herbert
224f3eaa84 Make GameplayClockContainer non-abstract and use in MultiSpectatorPlayer 2022-08-15 18:08:49 +09:00
Dean Herbert
623e90a7b2 Fix div-by-zero in SongProgress when no object duration could be calculated 2022-08-15 15:05:35 +09:00
naoei
18ce784ae0 Allow StatisticItem's name param to be nullable 2022-08-14 14:51:35 -04:00
Ryuki
2aa3a1b50d
Rename all "KeysPerSecond" usages to "ClicksPerSecond" 2022-08-14 20:12:11 +02:00
Ryuki
9dc806506e
Make ActionListener and KeysPerSecondCalculator not rely on events to add timestamps 2022-08-14 19:31:14 +02:00
Ryuki
d5f10cbb9d
Revert 787dee24 and initialize calculator in HUDOverlay 2022-08-14 18:53:00 +02:00
Bartłomiej Dach
05ddfe7522
Merge branch 'master' into editor-setup-no-state-change 2022-08-14 18:21:31 +02:00
Ryuki
e08f71797e
Change displayed metric from "KPS" to "clicks/s" 2022-08-13 04:27:26 +02:00
Ryuki
9b252b1d81
Make KeysPerSecondCalculator dependency in HUDOverlay nullable 2022-08-11 11:58:30 +02:00
Ryuki
d29cba80e9
Remove useless comment in KeysPerSecondCounter 2022-08-11 11:01:16 +02:00
Ryuki
787dee249d
Move KeysPerSecondCalculator instantiation from HUDOverlay to Player
This prevents messing with *future* Skin (de)serialization
2022-08-11 10:37:16 +02:00
Ryuki
3c6461b9e4
Remove KPS acronym usage 2022-08-11 10:01:39 +02:00
Ryuki
0a94fb4039
Make KPS counter strictly depending only on KPS calculator
`KeysPerSecondCounter` now depends on `KeysPerSecondCalculator` via the
`BackgroundDependencyLoaderAttribute` method, making it appear only in a
gameplay context without requiring `GameplayClock` without using it.
2022-08-11 00:46:39 +02:00
Ryuki
46e372cb99
Add more readiness checks in KeysPerSecondCalculator 2022-08-11 00:43:15 +02:00
Ryuki
9e80d3f71c
Re-adjust timespan conditions in KeysPerSecondCalculator 2022-08-11 00:42:22 +02:00
naoei
6e13cf82e8 Don't render statistic header if display string is null 2022-08-10 16:05:34 -04:00
naoei
8cb2e11766 Change most ruleset-accessible string types to Localisable strings 2022-08-10 15:51:11 -04:00
its5Q
2499b7f0cd Add localisation support for beatmap editor setup 2022-08-11 03:53:20 +10:00
Dean Herbert
ac99c1ad69 Migrate the majority of existing file lookups to use new extension methods 2022-08-10 16:01:16 +09:00
Dean Herbert
a5081826b7 Handle cancellation at more points during Player initialisation
As discussed in discord, this will help avoid null references during
cancellation which can otherwise be quite confusing to debug.
2022-08-09 23:25:19 +09:00
Dan Balasescu
41af03dec5
Merge pull request #19597 from frenzibyte/hotfix-multi-spectator-results-screen
Fix multi-spectator potentially getting stuck for passed players (hotfix)
2022-08-09 21:11:10 +09:00
Ryuki
b52a07c16a
Use DI to provide dependencies for KPS Calculator and improve input
gathering

KPS Calculator now uses DI to retrieve the clocks. Using `HUDOverlay` it
is now cached for `KeysPerSecondCounter`s to resolve it. This also
allows to make an "Attach" flow like `KeyCounter`.
2022-08-08 21:54:06 +02:00
BlauFx
0afa3a5ec8
Fix xml doc 2022-08-08 21:20:09 +02:00
BlauFx
f6e65cf1af
Improve implementation 2022-08-08 20:53:05 +02:00
BlauFx
fac2596eee
Change type from BindableBool to IBindable<bool> 2022-08-08 13:38:52 +02:00
BlauFx
cd68134565
Call skip method directly 2022-08-08 13:10:28 +02:00
Dean Herbert
cbe5cb5d03 Merge branch 'master' into carousel-maintain-selection-over-update 2022-08-08 18:01:26 +09:00
Dean Herbert
f1691882e2 Fix incorrect argument passing to ToMod 2022-08-08 12:56:18 +09:00
Dean Herbert
e1189da824 Merge branch 'master' into irenderer-glwrapper 2022-08-08 12:31:53 +09:00
Bartłomiej Dach
839409d7ac
Add preset column to solo mod select overlay 2022-08-07 16:20:31 +02:00
HiddenNode
ed86255e2b Use UprightUnscaledContainer instead of KeepUprightAndUnscaled 2022-08-07 13:20:22 +01:00
BlauFx
bb344e064f
Add xml docs 2022-08-07 13:31:26 +02:00
BlauFx
09230304a4
Improve implementation 2022-08-07 13:20:29 +02:00
Ryuki
b2557a8d2d
Refactor KPS
- Remove '#nullable disable' in KeysPerSecondCalculator and
  KeysPerSecondCounter
- Remove KeysPerSecondCalculator IDisposable implementation
- Make KeysPerSecondCalculator static instance initialized once by
  KeysPerSecondCounters
- Auto transfer dependencies from KeysPerSecondCounter to
  KeysPerSecondCalculator using Resolved properties
- Add internal reset logic to KeysPerSecondCalculator and make it
  independent from Player
- Use GameplayClock.TrueGameplayRate to get real-time rate. If 0 then it
  defaults to the last non 0 rate if no such mod is enabled
2022-08-07 00:53:00 +02:00
Bartłomiej Dach
a0d093be5c
Extract common implementation of delete dialog 2022-08-06 21:04:12 +02:00
BlauFx
bd43a9e96e
Add missing type specification 2022-08-06 18:49:07 +02:00
BlauFx
fa6d55b5b5
Remove redundant lambda signature parentheses 2022-08-06 18:47:11 +02:00
BlauFx
0d418559bc
Skip song intro only in case of a quick restart 2022-08-06 17:02:45 +02:00
BlauFx
e411a2d187
Revert reduced wait time commit 2022-08-06 15:12:36 +02:00
Salman Ahmed
84ef24c341 Fix multi-spectator potentially getting stuck for passed players 2022-08-06 05:41:26 +03:00