1
0
mirror of https://github.com/ppy/osu.git synced 2024-10-01 02:17:25 +08:00
Commit Graph

1047 Commits

Author SHA1 Message Date
Dean Herbert
8f6df5ea0f
Merge branch 'master' into gameplay/key-counter-abstraction 2023-03-07 16:09:45 +09:00
Bartłomiej Dach
d679703fa2
Merge pull request #22659 from peppy/fix-taiko-drum-nested-sample-detection
Fix `GameplaySampleTriggerSource` not considering nested objects when determining the best sample to play
2023-02-22 18:56:59 +01:00
tsrk
1beec71037
refactor(KeyCounterDisplay): apply suggestions
I also took the freedom to add type checking, as we can't limit the
usage of `Add()` since it's a Container. The exception thrown also
advises of using the suggested `AddTrigger()` instead.
2023-02-22 14:58:27 +00:00
Dean Herbert
a8c692a215
Merge pull request #22635 from peppy/use-overlays-container-more
Use `Overlays` container rather than `KeyBindingInputManager` for flashlight
2023-02-22 18:30:21 +09:00
Bartłomiej Dach
ab97b02235
Remove contradictory remark from xmldoc 2023-02-21 21:05:46 +01:00
Dean Herbert
1acc536248 Move DrawableRuleset.Audio to a less generic level 2023-02-21 19:03:52 +09:00
Dean Herbert
5ba6059911 Merge branch 'master' into fix-taiko-drum-nested-sample-detection 2023-02-21 13:58:15 +09:00
Bartłomiej Dach
3183f5cee2
Merge branch 'master' into revert-result-in-playfield 2023-02-19 16:33:10 +01:00
Dean Herbert
19d5293ad1 Change early return to also find the earliest nested object 2023-02-17 18:59:31 +09:00
Bartłomiej Dach
3ee046000e
Merge branch 'master' into revert-result-in-playfield 2023-02-16 21:54:29 +01:00
Bartłomiej Dach
b8084a15eb
Revert ResumeOverlay setter accessibility change 2023-02-16 21:26:01 +01:00
Dean Herbert
affa9507a1 Fix GameplaySampleTriggerSource not considering nested objects when determining the best sample to play 2023-02-16 18:21:33 +09:00
Dean Herbert
ce9ef3bc3c Always create ResumeOverlay, with UseResumeOverlay flag only affecting whether it is displayed or not 2023-02-16 15:47:20 +09:00
Dean Herbert
7afdcb9383 Merge branch 'master' into hide-resume-overlay 2023-02-16 15:42:14 +09:00
tsrk
076eb81b21
refactor: rename trigger classes
Makes it better to understand their purpose
2023-02-15 21:46:13 +00:00
tsrk
157bba7830
refactor: rename Trigger class to InputTrigger 2023-02-15 21:41:36 +00:00
Dean Herbert
da8ab7143b
Merge branch 'master' into maximum-judgement-offset-in-hit-object 2023-02-15 14:48:15 +09:00
Dean Herbert
5ec5222d8a Expose and consume OsuInputManager explicitly 2023-02-14 17:36:07 +09:00
Dean Herbert
970388d4e2 Move Overlays container to accept input and be frame-stable 2023-02-14 17:35:12 +09:00
Dean Herbert
7aaaf7fca2 Combine and attempt to simplify the score import / preparation process further 2023-02-14 16:55:35 +09:00
Dean Herbert
63f3498762 Restructure UseResumeOverlay to correctly handle a value change before BDL load 2023-02-14 15:11:33 +09:00
Pasi4K5
e4b84ebd0b Add UseResumeOverlay and use it for hiding the ResumeOverlay 2023-02-13 23:51:39 +01:00
tsrk
74a58fb674
refactor: separate things in KeyCounter
To implement different different sources of input for KeyCounter, it
is now possible to create a Trigger class (to inherit) instead of
inheriting KeyCounter. This eases the creation of more input sources
(like for tests) while allowing to implement different UI variants.

That way, if another variant of the key counter needs to implemented
(for whathever reason), this can be done by only inheriting KeyCounter
and changing how things are arranged visually.
2023-02-13 01:24:27 +00:00
ekrctb
258de3b2d8 Store RawTime in JudgementResult 2023-02-09 17:15:37 +09:00
ekrctb
5f0636c330 Merge branch 'maximum-judgement-offset-in-hit-object' into revert-result-in-playfield 2023-02-09 16:47:58 +09:00
Bartłomiej Dach
c5e1f54185
Fix sample store creation mutating shared resource store 2023-01-30 20:48:52 +01:00
ekrctb
27578c48f5 Remove JudgementResultEntry
It is not needed anymore as TimeAbsolute is stored raw.
2023-01-27 19:35:44 +09:00
ekrctb
e1702a8ee9 Fix inspection issue 2023-01-24 15:43:57 +09:00
ekrctb
efef97d5be Store Result.TimeAbsolute separately from offset
Calculating from TimeOffset is bad because it loses precision.
The result time won't change anymore
even If `HitObject.GetEndTime()` changes later.
2023-01-24 15:35:06 +09:00
ekrctb
cc87923179 Fix OnRevertResult timing 2023-01-24 14:19:24 +09:00
Pasi4K5
8b47af6503 Remove HidesResumeOverlay and set ResumeOverlay to null in OsuModAutopilot 2023-01-24 00:49:09 +01:00
Pasi4K5
75a1a2ec2f Hide ResumeOverlay when OsuModAutopilot is enabled 2023-01-22 03:44:59 +01:00
ekrctb
d8f9b7d02f Use MaximumJudgementOffset for lifetime 2023-01-19 21:25:21 +09:00
ekrctb
812a4b412a Move judgement result revert logic to Playfield
Previously, some judgement results were not reverted
when the source DHO is not alive (e.g. frames skipped in editor).
Now, all results are reverted in the exact reverse order.
2023-01-19 19:57:13 +09:00
Berkan Diler
08d2fbeb8e Use new ArgumentNullException.ThrowIfNull throw-helper API 2022-12-22 21:27:59 +01:00
Dean Herbert
4a7d7c6ed9 Use MaxBy in all locations that can and update inspection level to match dotnet-build 2022-12-19 16:47:10 +09:00
Dan Balasescu
850931120d
Merge pull request #21479 from peppy/fix-wrong-last-hit-object-time
Fix some components not accounting for final hold notes in osu!mania beatmaps
2022-12-02 18:12:00 +09:00
Dan Balasescu
a39bd634c4
Merge pull request #21405 from LumpBloom7/Editor-DrawableRuleset-Dependencies
Provide DrawableRulesetDependencies from HitObjectComposer
2022-12-02 17:31:31 +09:00
Dean Herbert
809d02cda0 Fix two implementation oversights 2022-12-02 16:05:14 +09:00
Dean Herbert
d8dd7e7e0f Fix test failures when no hitobjects are present in a scrolling ruleset 2022-12-01 21:42:03 +09:00
Dean Herbert
896f2d8f74 Fix multiple instances of last hitobject time being calculated incorrectly 2022-12-01 18:04:06 +09:00
Bartłomiej Dach
6ebde9a747
Annotate Playfield.Mods as maybe-null 2022-11-30 20:00:25 +01:00
Dean Herbert
5ce2d6f54a Hide the game mouse cursor when playing osu!catch with relax mod 2022-11-30 18:13:53 +09:00
Dean Herbert
bb0237d4a9 Fix nullability inspection on disposal path 2022-11-30 17:49:08 +09:00
Dean Herbert
4215f4f5d7 Merge branch 'master' into Editor-DrawableRuleset-Dependencies 2022-11-30 17:42:46 +09:00
Derrick Timmermans
93ba84e5ff
Fix code style 2022-11-27 21:48:44 +01:00
Derrick Timmermans
70c320b2e8
Provide ruleset dependencies only to Compose Placement Blueprints 2022-11-27 21:43:33 +01:00
Dan Balasescu
7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
Bartłomiej Dach
0f382590e6
Remove unnecessary #nullable disable 2022-11-20 15:31:51 +01:00
Salman Ahmed
58296bd4f0 Introduce IDrawableScrollingRuleset for editor consumption 2022-11-20 04:11:10 +03:00
Susko3
56fd1f95b1 Fix FallbackSampleStore.GetAsync fallback logic 2022-11-13 18:47:28 +01:00
Dean Herbert
5c13c443ff Fix incorrect fallback logic
Regressed when attempting to share implementation of binary search.
2022-10-20 23:08:44 +09:00
Dean Herbert
26860a903e Refactor implementation to support hitobjects nested multiple levels deep 2022-10-20 22:30:30 +09:00
Dean Herbert
d237c818f6 Fix nested objects in overlapping scrolling hit object container ruleset not using correct reference time 2022-10-18 16:15:21 +09:00
Dean Herbert
ec3761ced9 Standardise control point search logic in OverlappingScrollAlgorithm
Was using a very local algorithm which I cannot guarantee is correct.
I'd rather it just use the one used everywhere else.
2022-10-18 16:01:05 +09:00
Salman Ahmed
4fb156ef4e Update xmlodc and add nullability attributes 2022-10-13 00:16:42 +03:00
Salman Ahmed
7a6ecaff0d Remove default invisible cursor container from rulesets 2022-10-12 17:50:47 +03:00
Salman Ahmed
9b45a9cf76 Rename various cursor symbols
- `IProvideCursor.MenuCursor` -> `IProvideCursor.Cursor`
 - `MenuCursor` -> `MenuCursorContainer
2022-10-11 16:21:01 +03:00
Salman Ahmed
2d4f390372 Remove non-smoke key bindings on "Relax" mod instead 2022-10-09 17:14:16 +03:00
ekrctb
1cccd03480 Fix scrolling nested hit object lifetime not set 2022-10-04 15:17:14 +09:00
ekrctb
781f5420b0 Add test for scrolling hit object lifetime 2022-10-04 15:17:11 +09:00
ekrctb
5d80950eaf Compute lifetime from entry in scrolling container 2022-10-04 15:12:28 +09:00
Dan Balasescu
cbed268ac9
Merge pull request #20510 from sw1tchbl4d3r/high_bpm_judgements
Clamp `LifetimeStart` of `HitObject`s to their judgement windows
2022-09-28 17:49:35 +09:00
sw1tchbl4d3
0cffbb7562 Clamp LifetimeStart of HitObject's to their judgement windows 2022-09-27 16:54:24 +02:00
o-dasher
feadac1f79 Cleanup all other leftover binding instantiation 2022-09-25 16:02:40 -04:00
ekrctb
c59aa57450 Remove createLifetimeEntry from HitObjectEntryManager 2022-09-14 15:19:33 +09:00
ekrctb
a9eba27129 Factor out pooling logic from Playfield 2022-09-14 15:19:05 +09:00
Dean Herbert
6bf6b7e125 Fix null considerations in DrawableRulesetDependencies 2022-09-13 13:13:38 +09:00
Salman Ahmed
0ca4be5e5b Fix one more inspection 2022-09-13 03:45:31 +03:00
Dean Herbert
d4afc3629c
Merge branch 'master' into kps 2022-09-08 23:00:36 +09:00
Dean Herbert
6729bb3e1a Change FrameStableClock to inherit IGameplayClock 2022-09-08 18:24:18 +09:00
Dan Balasescu
b559d4ecdf Rename GameplayAdjustments -> AdjustmentsFromMods 2022-09-08 17:14:06 +09:00
Dean Herbert
75d0deef72 Apply proposed changes to remove inheritance from MasterGameplayClockContainer 2022-09-07 17:49:05 +09:00
Dean Herbert
bc1212f4e6 Change NonGameplayAdjustments to GameplayAdjustments and convert TrueGameplayRate to extension method 2022-09-06 22:26:46 +09:00
Dean Herbert
44b456e216 Use gameplay clock's TrueGameplayRate in FrameStabilityContainer? 2022-09-05 23:38:22 +09:00
Dean Herbert
7337d4c1aa Merge branch 'master' into kps 2022-08-31 15:41:42 +09:00
Dean Herbert
105aa01e7d Update usages of RemoveInternal 2022-08-29 15:57:40 +09:00
Dean Herbert
a215d009fe Update Remove/RemoveRange/RemoveAll calls in line with framework changes 2022-08-29 15:57:40 +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
ec61a94dc9 Merge branch 'master' into no-gameplay-clock-gameplay-offset 2022-08-23 17:36:06 +09:00
Dean Herbert
19bba143ee Fix editor crashing on mobile releases 2022-08-22 15:57:24 +09:00
Dean Herbert
da407aa827
Merge branch 'master' into kps 2022-08-20 15:24:58 +09:00
Dean Herbert
2c6fd1ec6e Fix `GameplayClockContainer potentially resetting external seeks 2022-08-18 18:54:10 +09:00
Dean Herbert
43442dbf65 Merge branch 'even-less-gameplay-clock' into even-nicer-frame-stability-clock 2022-08-15 20:22:30 +09:00
Dean Herbert
87760bbc06 Fix IsCatchingUp not being in correct state 2022-08-15 20:17:48 +09:00
Dean Herbert
1fc3d005c0 Seal FrameStabilityContainer
No one should ever derive from this class. It is already too complex.
2022-08-15 19:31:02 +09:00
Dean Herbert
fff2b57905 Tidy up and document FrameStabilityContainer 2022-08-15 19:28:12 +09:00
Dean Herbert
9bc2e91de0 Fix incorrect handling of reference clocks when no parent IGameplayClock is available 2022-08-15 19:19:19 +09:00
Dean Herbert
828b6f2c30 Remove unnecessary setClock shenanigans 2022-08-15 19:19:19 +09:00
Dean Herbert
27569e2ed5 Remove FrameStableClock (and redirect usages to FrameStabilityContainer) 2022-08-15 19:19:19 +09:00
Dean Herbert
c8764cb333 Move all usage of GameplayClock to IGameplayClock 2022-08-15 18:30:53 +09:00
Dean Herbert
95c1b488a7 Add non-null assertion to FrameStabilityContainer 2022-08-15 18:08:49 +09: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
9b252b1d81
Make KeysPerSecondCalculator dependency in HUDOverlay nullable 2022-08-11 11:58:30 +02:00
Ryuki
3c6461b9e4
Remove KPS acronym usage 2022-08-11 10:01:39 +02:00
its5Q
abca3d1b2a Prefix common strings for context 2022-08-10 00:35:19 +10: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