Commit Graph

3372 Commits

Author SHA1 Message Date
e6b669db8e Elaborate with example of GameplayClockContainer managing its own Stop state 2022-08-22 14:14:44 +09:00
af2e82d7d5 Move operation of setting GameplayClockContainer.StartTime to Reset call 2022-08-22 14:11:06 +09:00
5cf54a788a Code cleanup for CPS counter 2022-08-21 16:00:58 +02:00
Nao
189a407cb1 Merge branch 'master' into ruleset-localization 2022-08-20 21:39:10 -04:00
8566e93c72 Guard against SubmittingPlayer potentially getting stuck waiting on request forever 2022-08-20 17:19:17 +09:00
da407aa827 Merge branch 'master' into kps 2022-08-20 15:24:58 +09:00
7bf318541c Reword comment to hopefully read better 2022-08-19 20:57:55 +09:00
3f0da14065 Delay start operation by one frame to allow children to see initial start time 2022-08-19 17:39:51 +09:00
3eb1cda6aa Reorganise call order of Start / Reset to make more sense 2022-08-19 01:46:36 +09:00
3de35a1518 Update calculator and tests to match changes on clocks 2022-08-18 18:40:02 +02:00
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
7bc96431a7 Remove unnecessary virtual spec from GameplayClockContainer.Seek 2022-08-19 01:39:01 +09:00
43879633db Ensure setting a StartTime on a GameplayClockContainer always resets to the new time 2022-08-18 18:54:10 +09:00
343efa1d11 Split OffsetCorrectionClock out of MasterGameplayClockContainer 2022-08-18 18:54:10 +09:00
2c6fd1ec6e Fix `GameplayClockContainer potentially resetting external seeks 2022-08-18 18:54:10 +09:00
6003afafc7 Use FramedBeatmapClock in GameplayClockContainer 2022-08-18 18:54:10 +09:00
9735728cf6 Reverse conditionals to better define intent in addSourceClockAdjustments 2022-08-18 15:08:09 +09:00
20256aad11 Merge branch 'master' into no-gameplay-clock 2022-08-17 15:21:20 +09:00
63819648df Fix up flow of actual skip operation 2022-08-16 14:40:02 +09:00
9a1a7bae89 Make test actually test things 2022-08-16 14:40:02 +09:00
6761f869f9 Modify flow to avoid weird bindable and value resetting 2022-08-16 14:17:35 +09:00
c9baadcf88 Merge branch 'master' into improve_retry_behaviour 2022-08-16 13:06:04 +09:00
61a8873266 Ensure GameplayClockContainer's FramedClock is always non-null 2022-08-15 20:22:36 +09:00
1696a905ba Reduce exposed properties in GameplayClockContainer 2022-08-15 20:22:36 +09:00
704568ae3b Remove remaining usage of GameplayClock 2022-08-15 20:22:36 +09:00
27569e2ed5 Remove FrameStableClock (and redirect usages to FrameStabilityContainer) 2022-08-15 19:19:19 +09:00
cc982d374c Cache self rather than GameplayClock 2022-08-15 18:30:53 +09:00
c5f8529d20 Mark unused methods as NotImplemented for safety 2022-08-15 18:30:53 +09:00
f81c7644b4 Make GameplayClockContainer also an IGameplayClock and expose to remaining tests 2022-08-15 18:30:53 +09:00
c8764cb333 Move all usage of GameplayClock to IGameplayClock 2022-08-15 18:30:53 +09:00
6d78218142 Update usages of GameplayClockContainer.GameplayClock to access properties directly 2022-08-15 18:08:49 +09:00
224f3eaa84 Make GameplayClockContainer non-abstract and use in MultiSpectatorPlayer 2022-08-15 18:08:49 +09:00
623e90a7b2 Fix div-by-zero in SongProgress when no object duration could be calculated 2022-08-15 15:05:35 +09:00
2aa3a1b50d Rename all "KeysPerSecond" usages to "ClicksPerSecond" 2022-08-14 20:12:11 +02:00
9dc806506e Make ActionListener and KeysPerSecondCalculator not rely on events to add timestamps 2022-08-14 19:31:14 +02:00
d5f10cbb9d Revert 787dee24 and initialize calculator in HUDOverlay 2022-08-14 18:53:00 +02:00
e08f71797e Change displayed metric from "KPS" to "clicks/s" 2022-08-13 04:27:26 +02:00
9b252b1d81 Make KeysPerSecondCalculator dependency in HUDOverlay nullable 2022-08-11 11:58:30 +02:00
d29cba80e9 Remove useless comment in KeysPerSecondCounter 2022-08-11 11:01:16 +02:00
787dee249d Move KeysPerSecondCalculator instantiation from HUDOverlay to Player
This prevents messing with *future* Skin (de)serialization
2022-08-11 10:37:16 +02:00
3c6461b9e4 Remove KPS acronym usage 2022-08-11 10:01:39 +02:00
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
46e372cb99 Add more readiness checks in KeysPerSecondCalculator 2022-08-11 00:43:15 +02:00
9e80d3f71c Re-adjust timespan conditions in KeysPerSecondCalculator 2022-08-11 00:42:22 +02:00
8cb2e11766 Change most ruleset-accessible string types to Localisable strings 2022-08-10 15:51:11 -04:00
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
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
0afa3a5ec8 Fix xml doc 2022-08-08 21:20:09 +02:00
f6e65cf1af Improve implementation 2022-08-08 20:53:05 +02:00
fac2596eee Change type from BindableBool to IBindable<bool> 2022-08-08 13:38:52 +02:00